Ubuntu

Pandoc 語言環境問題

  • September 4, 2010

我正在嘗試使用 pandoc 的 markdown2pdf 生成文件 pdf 文件。我的源文件包含一些西里爾字母 UTF-8 符號。我的系統語言環境是 en_US.UTF-8。

在預設語言環境下執行時,markdown2pdf 無法載入文件:

$ markdown2pdf doc.md -o doc.pdf

markdown2pdf:/tmp/pandoc/doc.log:hGetContents:無效參數(無效或不完整的多字節或寬字元)

如果我設置 LANG=ru_RU.UTF-8,markdown2pdf 載入文件正常,啟動 pandoc 和 pandoc 中斷(注意不同的錯誤文本):

$ LANG=ru_RU.UTF-8 markdown2pdf doc.md -o doc.pdf
markdown2pdf:pandoc:doc.md:hGetContents:無效參數(無效或不完整的多字節或寬字元)

我不想更改我的系統區域設置。我該如何解決這個問題?

系統資訊:

$ lsb_release -a
沒有可用的 LSB 模組。
經銷商編號:Ubuntu
說明:Ubuntu 10.04.1 LTS
發布:10.04
代號:清醒

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

$ pandoc --版本
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

引用自:https://serverfault.com/questions/163755