Назад | Перейти на главную страницу

Проблемы с локалью Pandoc

Я пытаюсь создать PDF-файл документации с помощью pandoc markdown2pdf. Мой исходный файл содержит некоторые кириллические символы UTF-8. Мой системный языковой стандарт - en_US.UTF-8.

При запуске в локали по умолчанию markdown2pdf не может загрузить документ:

$ markdown2pdf doc.md -o doc.pdf

markdown2pdf: /tmp/pandoc/doc.log: hGetContents: invalid argument (Invalid or incomplete multibyte or wide character)

Если я установил LANG = ru_RU.UTF-8, markdown2pdf загружает документ нормально, запускает pandoc и pandoc break (обратите внимание на другой текст ошибки):

$ LANG=ru_RU.UTF-8 markdown2pdf doc.md -o doc.pdf
markdown2pdf: pandoc: doc.md: hGetContents: invalid argument (Invalid or incomplete multibyte or wide character)

Я не хочу менять языковой стандарт моей системы. Как я могу исправить эту проблему?

Системная информация:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.1 LTS
Release:    10.04
Codename:   lucid

$ uname -a
Linux localhost 2.6.32-24-generic #38-Ubuntu SMP Mon Jul 5 09:20:59 UTC 2010 x86_64 GNU/Linux

$ pandoc --version
pandoc 1.5.1.1

Мне пришлось вручную обновить до pandoc 1.6, который исправляет эту ошибку:

  # Install and update cabal (Haskell's package manager)
  sudo apt-get install cabal
  cabal update
  cabal install cabal-install
  # Put cabal's executables to path
  echo "PATH=${PATH}:${HOME}/.cabal/bin" >> ${HOME}/.bashrc
  source ${HOME}/.bashrc
  # Reset bash's path cache
  hash -r

  cabal install -fhighlighting pandoc