Я пытаюсь создать 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