已解決。 Tl; dr:將編譯器設置爲xelatex
而不是pdflatex
是不夠的;還必須包括xeCJK
包,但是應該在哪裏,請參閱下文。
編輯:下面也可以通過設置這些pandoc template變量來實現:
---
CJKmainfont: STSong
CJKoptions:
- BoldFont=STHeiti
- ItalicFont=STKaiti
---
Hello 你好
在我的情況下,pandoc
讀取.md
,將其轉換爲一個.tex
,和調用編譯器將其編譯爲.pdf
。 因此,從理論上講,我通常可以使用類似tex的編譯器做的事情,也可以使用pandoc
來完成 - 它只是我必須指定所需的模板。
的pandoc
調用它自己的乳膠的模板,我們可以cat
在由預先寫好的命令終端:
pandoc -D latex > default.latex
這本質上覆制一個新的文件default.latex
到.
(當前目錄)。 這是我現在修改。編譯時 追加此選項pandoc
:
--template=my-directory/my-template.latex
在過去的I型中國字符(或更一般地,中日韓),我用
\documentclass[12pt]{article}
\usepackage{xeCJK}% use Latin font whenever possible
\usepackage{fontspec}% set Chinese fonts, as follows
\setCJKmainfont[BoldFont=STHeiti,ItalicFont=STKaiti]{STSong}
\setCJKsansfont[BoldFont=STHeiti]{STXihei}
\setCJKmonofont{STFangsong}
% .... whatever xeCJK commands you use
的字體開始的模板應該是那些你係統許可證;上面顯示的這些都是隨Mac附帶的。
但是當我簡單地粘貼到pandoc-provied模板這一點,有很多神祕的錯誤消息
option clash for package XXXX....
這是因爲pandoc,保險費可予退回模板已經定義xeCJK
。事實上,搜索這些行:
$if(CJKmainfont)$
\usepackage{xeCJK}
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
$endif$
這些行(引述部分)應該由
\usepackage{xeCJK}
\setCJKmainfont[BoldFont=STHeiti,ItalicFont=STKaiti]{STSong}
% .... and so on, whatever you call from xeCJK
被替換,即,刪除if
,以便總是執行xeCJK
;否則,xeCJK
行不會被複制到中間文件.tex
。 並且還刪除\usepackage{fontspec}
,因爲默認情況下它由pandoc
調用,否則在中間文件.tex
中調用兩次包的錯誤消息。
確認:[1][2][3]
對不起,我沒有跟蹤每一個從我引用的網站,但沒有得到這一切的權利,無論如何,或者已經過時。 最有幫助的是mb21,誰在評論中建議我輸出.tex
來調試,之後我發現xeCJK
沒有包含在內。
我已經在這個問題上花費了10多個小時,但從現在開始,我可以愉快地在降價文件中輸入中文。 我爲了後人的緣故寫下了這篇文章。
字體可能丟失?或者修改生成乳膠的pandoc模板,參見http://tex.stackexchange.com/questions/17611/how-does-one-type-chinese-in-latex(也可以嘗試'-o cjk.tex' ,然後使用'xelatex cjk.tex'來調試問題) – mb21