gpt4 book ai didi

markdown - pandoc不识别汉字

转载 作者:行者123 更新时间:2023-12-04 05:51:17 28 4
gpt4 key购买 nike

我想用 pandoc 编译一个包含 CJK 元素(实际上是中文)的 Markdown 文档。据说there --latex-engine=xelatex 选项允许 pandoc 编译 Unicode 字符。

不过,我试过了
cjk.md:

Hello
你好

用(在 bash 中)编译

pandoc -s -o cjk.pdf --latex-engine=xelatex cjk.md

但是生成的 .pdf 只显示了 Hello,而 你好 不见了。我错过了什么吗?pandoc 已更新;我正在使用更新到 Sierra 的 Macbook Air(2012 年购买)。我已经正确安装了 xelatex(我想是在 MacTex 中),因为当我使用 texstudio 编译 xelatex 时,没有问题。

最佳答案

解决了。 Tl; dr:将编译器设置为 xelatex 而不是 pdflatex 是不够的;还必须包含包 xeCJK,但它应该在哪里,见下文。


编辑:下面也可以通过设置这些pandoc template来实现变量:

---
CJKmainfont: STSong
CJKoptions:
- BoldFont=STHeiti
- ItalicFont=STKaiti
---

Hello 你好

在我的例子中,pandoc 读取 .md,将其转换为 .tex,然后调用编译器将其编译为.pdf。因此,理论上,我可以使用类似 tex 的编译器正常执行的操作,也可以使用 pandoc 完成 --- 只是我必须指定所需的模板。

pandoc 调用自己的latex 模板,我们可以在终端中通过预先编写的命令cat:

pandoc -D latex > default.latex

这实际上将一个新文件 default.latex 复制到 .(当前目录)。这就是我现在修改的。编译时将此选项附加到 pandoc:

--template=my-directory/my-template.latex

过去我输入汉字(或者更一般地,CJK),我使用以

开头的模板
\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 提供的模板中时,有许多神秘的错误消息

option clash for package XXXX....

这是因为 pandoc-proviede 模板已经定义了 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<中两次调用packages会报错 文件。


致谢:[1] [2] [3]

抱歉,我没有跟踪我引用的每个网站,但无论如何没有一个网站是正确的,或者已经过时了。最大的帮助是mb21 ,谁在评论中建议我输出 .tex to debug,之后我发现 xeCJK 不包括在内。

我在这个问题上花了大约 10 多个小时,但从现在开始,我可以愉快地在 markdown 文件中输入中文了。为了可怜的后人,我把它写下来了。

关于markdown - pandoc不识别汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40892725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com