如何让 Anki 2.1 与 XeTeX 协同工作(+ 编辑 latex 构建过程)?

如何让 Anki 2.1 与 XeTeX 协同工作(+ 编辑 latex 构建过程)?

不幸的是,我没有足够的声誉来评论其他提出完全相同问题的问题,但我想重新发布该问题,因为其他答案似乎都对我有帮助。

我正在使用 Anki (2.1) 为 MCAT 备考,并将卡片自定义为特定的样子。我尝试使用 LaTeX,因为这是 Anki 默认使用的格式,但我的公式并没有按照我想要的方式显示(不同的字体、不同的颜色)。我之前发过一个问题,回复者为我提供了一个使用 LaTeX 和 XeTeX 的模板(如何更改 LaTeX(Anki)中的字体和字体颜色?),我想使用 XeTeX。我安装了“编辑 latex 构建过程”插件,这使我能够使背景透明,但尝试运行 XeTeX 时出现错误:“您安装了 latex 和 dvipng 吗?”

我显然已经安装了 LaTeX(以及 Mactex),并且我尝试使用该插件重新路由命令行以使用 XeTeX(类似于此:http://www.jasoncantarella.com/wordpress/anki-2-022latexmavericks-problems-and-solutions/),但我仍然收到错误。

我唯一能想到的可能是我遇到了与这位 reddit 用户相同的问题:https://www.reddit.com/r/Anki/comments/7t39mc/how_to_change_the_latex_compiler_anki_uses/

我的序言的代码是:

\documentclass[12pt]{article}
\usepackage[paperwidth=5in, paperheight=3in]{geometry}
\usepackage[svgnames, Svgnames, HTML]{xcolor}
\usepackage{mathtools}
\usepackage{unicode-math}
\setmainfont{Anonymous Pro}[Scale = 1.0]
\setmonofont{Anonymous Pro}
\setmathfont{GFS Neohellenic Math}
\setmathfont[range=up]{Anonymous Pro}
\setmathfont[range=it]{Anonymous Pro Italic}
\setmathfont[range=bfup]{Anonymous Pro Bold}
\setmathfont[range=bfit]{Anonymous Pro Bold Italic}
\color{white}
\nopagecolor
\begin{document}

该附加组件的代码是:

{
    "pngCommands": [
        [
            "/Library/TeX/texbin/xelatex",
            "-interaction=nonstopmode",
            "tmp.tex"
        ],
        [
            "/Library/TeX/texbin/dvipng",
            "-D",
            "200",
            "-T",
            "tight",
            "tmp.dvi",
            "-o",
            "-bg",
            "Transparent",
            "tmp.png"
        ]
    ],
    "svgCommands": [
        [
            "/Library/TeX/texbin/xelatex",
            "-interaction=nonstopmode",
            "tmp.tex"
        ],
        [
            "/Library/TeX/texbin/dvisvgm",
            "--no-fonts",
            "-Z",
            "2",
            "tmp.dvi",
            "-o",
            "-bg",
            "Transparent",
            "tmp.svg"
        ]
    ]
}

我完全不知所措。任何帮助都将不胜感激!

答案1

问题

我的英语不好。如果出现任何误解、语法错误或难以理解此答案,敬请谅解。

警告:如果您TeX、命令行等新手,这个答案可能不太详细(对于 Anki 用户来说)。

嗯,你提到了“XeTeX”。我想你的意思是“XeLaTeX”。

XeLaTeX 输出xdv(或pdf) 而不是dvi,因此dvipng无法工作。(并且错误消息“您是否安装了 latex 和 dvipng?”非常模糊。我在正确设置环境时收到此错误。)

我使用这个工作流程:

tex -- xelatex--> xdv -- xelatex--> pdf --A 程序--> png / svg

latexmk也可使用。)

(我认为这不是一种优雅的方式。直接嵌入pdf更好HTML。)

使用ghostscript

工作流程:tex -- xelatex--> xdv -- xelatex--> pdf -- ghostscript--> png

TL;DR(太长;请勿阅读)

  1. 设置ghostscript(不要使用 TeX Live 中的版本,它似乎不能在命令行中使用(或者我错了)。)
  2. 添加ghostscriptPATH
  3. 设置附加组件“编辑 LaTeX 构建过程”

在附加组件“编辑 LaTeX 构建过程”中,json代码​​为

{
  "pngCommands": [
    [
      "xelatex", 
      "-interaction=nonstopmode", 
      "tmp.tex"
    ],
    [
      "gswin32c", // Windows 32bit version 
      "-dNOPAUSE",
      "-sDEVICE=pngalpha",
      "-r300",
      "-dBATCH",
      "-dSAFER",
      "-sOutputFile=\"tmp.png\"",
      "tmp.pdf"
    ]
  ],
  "svgCommands": [ // I don't modify this.
    ["latex", "-interaction=nonstopmode", "tmp.tex"],
    ["dvisvgm", "--no-fonts", "-Z", "2", "tmp.dvi", "-o", "tmp.svg"]
  ]
}

注意:您需要gswin32c在系统中更改为正确的名称。

  1. 我的卡片模板
\documentclass{ctexart} %中文
\usepackage[papersize={2cm,1cm},centering]{geometry} %2cm * 1cm 
\usepackage{amssymb,amsmath}
\pagestyle{empty}
\begin{document}

\begin{center}

        %content


\end{center}

\end{document}
  1. 完毕。

注意力:

  1. 调试的时候需要清理温度。
  2. 您需要重新启动 Anki 才能应用设置。

另一种方法:使用imagemagik

imagemagik也可以转换pdfpng

支持svg

好吧,如果你想使用svg,你可以使用GhostPDL。但是,GhostPDL在使用之前必须进行编译。所以如果你有兴趣,那就继续吧。


太复杂了,我看不懂(针对 Anki 用户)

对于 Anki 用户来说,这相当复杂如果你是 TeX、命令行等的新手,所以如果你不想麻烦,就使用默认设置,因为 Anki 使用 HTML 工作得很好。(如果你想了解TeX、命令行等,那就继续吧。这个简短的回答可能不能让你满意。)


影响:

效果

相关内容