Pandoc 区域设置问题

Pandoc 区域设置问题

我正在尝试使用 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 模块。
分销商 ID:Ubuntu
描述:Ubuntu 10.04.1 LTS
版本:10.04
代号:lucid

$ uname -a
Linux localhost 2.6.32-24-generic #38-Ubuntu SMP 星期一 7 月 5 日 09:20:59 UTC 2010 x86_64 GNU/Linux

$ pandoc --version
pandoc 1.5.1.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

相关内容