Macos 如何将日语降价文档转换为Beamer?

Macos 如何将日语降价文档转换为Beamer?,macos,pdf,markdown,pandoc,beamer,Macos,Pdf,Markdown,Pandoc,Beamer,例如,我有一个降价文档: ## Markdown test Japanese 日本語 我运行: pandoc mwe.rmd -t beamer -o mwe.pdf --latex-engine=xelatex -V mainfont=MS\ Mincho 文字日本語 只是在结果文件中消失了。如果我不使用Beamer模板,那么它可以正常工作 我不必使用pandoc。任何能让我在Mac上(使用MacTex)从降价到PDF(幻灯片)的东西都适合我 如果没有简单的解决方案,我会接受任何导致PD

例如,我有一个降价文档:

## Markdown test

Japanese 日本語
我运行:

pandoc mwe.rmd -t beamer -o mwe.pdf --latex-engine=xelatex -V mainfont=MS\ Mincho
文字日本語 只是在结果文件中消失了。如果我不使用Beamer模板,那么它可以正常工作

我不必使用
pandoc
。任何能让我在Mac上(使用MacTex)从降价到PDF(幻灯片)的东西都适合我


如果没有简单的解决方案,我会接受任何导致PDF幻灯片无法播放的内容。

我假设您确实在您的系统上安装了名为
MS Mincho
的字体,并且在启动
font Book.app
时会显示该字体?(看起来,否则您的“正常”PDF输出将无法工作,但您说它可以工作…)

有多种选项可供检查和验证,您应该使用哪种确切的字体名称

1. <代码>字体书籍.app(GUI应用程序)
  • 启动
    Font Book.app
  • 在右上角的搜索框中键入
    mincho
  • 所有已安装的字体名称中都会显示“Mincho”
  • 单击列表中的一个字体面(不是主条目!)
  • 将显示字体示例
  • 单击带有小标志的按钮
  • 将显示字体的元数据
  • 从字体的元数据可以推断出字体的
    PostScript名称
    全名
    。两者都应该与Xeletex一起使用。(我通常在字体名称周围加引号,并加空格:
    -V mainfont=“YuMincho Medium”

    这是一个屏幕截图,显示了
    字体手册的相关部分。应用程序
    UI以红色突出显示。很抱歉,我没有安装
    MS Mincho
    ,我只能用另一种字体显示它:

    2.
    fc列表
    (命令行实用程序)
  • 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”的名称列表,请运行:

  • 更改您的设置 现在这个较小的问题(“我应该使用哪种字体名称?”)已经解决了,让我们来处理您的主要问题:

    • Pandoc Beamer模板(以及标准Beamer本身)不使用
      \setmainfont
      命令。
      因此,将
      -V mainfont=…
      放在Pandoc命令行上没有任何作用
    您可以通过查询Pandoc用于生成光束器输出的默认内部模板来检查这一点:

    $ pandoc -D beamer | less
    
    在那里搜索
    $mainfont$
    变量,您将找不到任何变量

    您必须稍微修改一下设置才能获得成功:

  • 首先,创建一个名为
    mincho.tex
    的简单文本文件,其中包含以下两行内容(我在这里使用的是mymincho字体名称,因此我可以真正测试我的建议是否有效):

    Xeletex需要
    xeCJK
    软件包来支持日文(以及中文+韩文)字体

  • Second,将
    -H mincho.tex
    添加到命令行中,以便上述代码片段包含在由Pandoc生成的LaTeX代码中

    这是将标记转换为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
    

    非常感谢您的详细介绍!对我来说,还有一个小小的进步,那就是我没有
    everypage.sty
    。在得到它之后,
    pandoc
    工作得非常好。我有
    MS Mincho
    btw.@KurtPfeifle btw,最近的pandoc默认模板确实有
    cjkmainnt
    变量。。。
    pandoc                   \
       mwe.rmd               \
      -t beamer              \
      -o mwe.pdf             \
      --latex-engine=xelatex \
      -H mincho.tex
    
    $ 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