如何将日语的 Markdown 文档转换为 Beamer?
How do I convert a Markdown document with Japanese to Beamer?
例如,我有这个 Markdown 文档:
## Markdown test
Japanese 日本語
我运行:
pandoc mwe.rmd -t beamer -o mwe.pdf --latex-engine=xelatex -V mainfont=MS\ Mincho
日本语字样在生成的文件中完全消失了。如果我不使用 Beamer 模板,那么它可以正常工作。
我不必使用 pandoc
。任何让我在 Mac(使用 MacTex)上从 Markdown 到 PDF(幻灯片)的东西都对我有用。
如果没有简单的解决方案,我可以接受任何导致非 Beamer PDF 幻灯片的方法。
我假设您 do 已经安装了名为 MS Mincho
[=123 的字体=] 在您的系统上,当您启动 Font Book.app
? (看起来,否则你的 "normal" PDF 输出将无法工作,但你说它可以...)
有多种选项可供检查和验证,您应该使用哪个确切的字体名称。
1。 Font Book.app
(GUI申请)
- 开始
Font Book.app
.
- 在右上角的搜索框中输入
mincho
。
- 名称中带有 'Mincho' 的所有已安装字体都会显示。
- 单击列表中的其中一个字体(不是 主要条目!)。
- 将显示字体示例。
- 单击带有小
i
-徽标的按钮。
- 将显示字体的元数据。
从字体的元数据可以推断出字体的 PostScript name
和 Full name
。两者都应该与 XeLaTeX 一起工作。 (我通常在带空格的字体名称周围加上引号:-V mainfont="YuMincho Medium"
这是 Font Book.app
UI 的相关部分以红色突出显示的屏幕截图。抱歉,我没有安装MS Mincho
,只能用另一种字体显示:
2。 fc-list
(命令行实用程序)
fc-list
是一个命令行实用程序,可通过 MacPorts fontconfig
程序包获得。
- 如果您安装了它,请使用它。
要获得 XeTeX 可用的字体名称列表,您可以简单地 运行:
fc-list -f "%{family}\n"
fc-list :outline -f "%{family}\n"
第二个命令禁止列出仅位图字体。这样的字体不能用于 TeX。 -- 对于更冗长的信息和更好的信息格式,您还可以 运行:
fc-list :outline -f " family: %{family}\nfullname: %{fullname}\n file: %{file}\n\n"
获取包含'Mincho',运行:
的名字列表
fc-list -f "%{family}\n" | grep -i mincho
更改您的设置
现在这个小问题 ("Which font names should I use?") 已经解决了,让我们来处理你的主要问题:
- Pandoc Beamer 模板(和标准 Beamer 本身)不使用
\setmainfont
命令。 因此将 -V mainfont=...
放到 Pandoc 命令行上不会做任何事情。
您可以通过查询 Pandoc 用于生成 beamer 输出的默认内部模板来检查这一点:
$ pandoc -D beamer | less
在那里搜索 $mainfont$
变量,您会找到 none!
您必须稍微修改一下设置才能成功:
首先,创建一个名为mincho.tex
的简单文本文件,内容如下两行(我用的是 我的 Mincho 字体名称在这里,所以我可以真正测试我的建议是否有效):
\usepackage{xeCJK}
\setCJKmainfont{YuMincho Medium}
XeLaTeX 需要 xeCJK
包来支持日文(和中文+韩文)字体。
其次,将-H mincho.tex
添加到命令行,这样上面的代码片段就包含在Pandoc生成的LaTeX代码中了。
这是将 Markdown 转换为 Beamer-PDF 的完整命令:
pandoc \
mwe.rmd \
-t beamer \
-o mwe.pdf \
--latex-engine=xelatex \
-H mincho.tex
结果(截图):
Beamer-PDF 使用的字体是:
$ pdffonts mwe.pdf
name type encoding emb sub uni objID
----------------------------------- ------------ ----------- --- ----- ---- -----
TZVOMD+LMSans8-Regular-Identity-H CID Type 0C Identity-H yes yes yes 7 0
WMSBXQ+LMSans12-Regular-Identity-H CID Type 0C Identity-H yes yes yes 30 0
FXCTKJ+LMSans10-Regular-Identity-H CID Type 0C Identity-H yes yes yes 32 0
NXJKDD+YuMin-Medium-Identity-H CID Type 0C Identity-H yes yes no 34 0
例如,我有这个 Markdown 文档:
## Markdown test
Japanese 日本語
我运行:
pandoc mwe.rmd -t beamer -o mwe.pdf --latex-engine=xelatex -V mainfont=MS\ Mincho
日本语字样在生成的文件中完全消失了。如果我不使用 Beamer 模板,那么它可以正常工作。
我不必使用 pandoc
。任何让我在 Mac(使用 MacTex)上从 Markdown 到 PDF(幻灯片)的东西都对我有用。
如果没有简单的解决方案,我可以接受任何导致非 Beamer PDF 幻灯片的方法。
我假设您 do 已经安装了名为 MS Mincho
[=123 的字体=] 在您的系统上,当您启动 Font Book.app
? (看起来,否则你的 "normal" PDF 输出将无法工作,但你说它可以...)
有多种选项可供检查和验证,您应该使用哪个确切的字体名称。
1。 Font Book.app
(GUI申请)
- 开始
Font Book.app
. - 在右上角的搜索框中输入
mincho
。 - 名称中带有 'Mincho' 的所有已安装字体都会显示。
- 单击列表中的其中一个字体(不是 主要条目!)。
- 将显示字体示例。
- 单击带有小
i
-徽标的按钮。 - 将显示字体的元数据。
从字体的元数据可以推断出字体的 PostScript name
和 Full name
。两者都应该与 XeLaTeX 一起工作。 (我通常在带空格的字体名称周围加上引号:-V mainfont="YuMincho Medium"
这是 Font Book.app
UI 的相关部分以红色突出显示的屏幕截图。抱歉,我没有安装MS Mincho
,只能用另一种字体显示:
2。 fc-list
(命令行实用程序)
fc-list
是一个命令行实用程序,可通过 MacPortsfontconfig
程序包获得。- 如果您安装了它,请使用它。
要获得 XeTeX 可用的字体名称列表,您可以简单地 运行:
fc-list -f "%{family}\n" fc-list :outline -f "%{family}\n"
第二个命令禁止列出仅位图字体。这样的字体不能用于 TeX。 -- 对于更冗长的信息和更好的信息格式,您还可以 运行:
fc-list :outline -f " family: %{family}\nfullname: %{fullname}\n file: %{file}\n\n"
获取包含'Mincho',运行:
的名字列表fc-list -f "%{family}\n" | grep -i mincho
更改您的设置
现在这个小问题 ("Which font names should I use?") 已经解决了,让我们来处理你的主要问题:
- Pandoc Beamer 模板(和标准 Beamer 本身)不使用
\setmainfont
命令。 因此将-V mainfont=...
放到 Pandoc 命令行上不会做任何事情。
您可以通过查询 Pandoc 用于生成 beamer 输出的默认内部模板来检查这一点:
$ pandoc -D beamer | less
在那里搜索 $mainfont$
变量,您会找到 none!
您必须稍微修改一下设置才能成功:
首先,创建一个名为
mincho.tex
的简单文本文件,内容如下两行(我用的是 我的 Mincho 字体名称在这里,所以我可以真正测试我的建议是否有效):\usepackage{xeCJK} \setCJKmainfont{YuMincho Medium}
XeLaTeX 需要
xeCJK
包来支持日文(和中文+韩文)字体。其次,将
-H mincho.tex
添加到命令行,这样上面的代码片段就包含在Pandoc生成的LaTeX代码中了。这是将 Markdown 转换为 Beamer-PDF 的完整命令:
pandoc \ mwe.rmd \ -t beamer \ -o mwe.pdf \ --latex-engine=xelatex \ -H mincho.tex
结果(截图):
Beamer-PDF 使用的字体是:
$ pdffonts mwe.pdf
name type encoding emb sub uni objID
----------------------------------- ------------ ----------- --- ----- ---- -----
TZVOMD+LMSans8-Regular-Identity-H CID Type 0C Identity-H yes yes yes 7 0
WMSBXQ+LMSans12-Regular-Identity-H CID Type 0C Identity-H yes yes yes 30 0
FXCTKJ+LMSans10-Regular-Identity-H CID Type 0C Identity-H yes yes yes 32 0
NXJKDD+YuMin-Medium-Identity-H CID Type 0C Identity-H yes yes no 34 0