![如何让 Anki 2.1 与 XeTeX 协同工作(+ 编辑 latex 构建过程)?](https://linux22.com/image/389917/%E5%A6%82%E4%BD%95%E8%AE%A9%20Anki%202.1%20%E4%B8%8E%20XeTeX%20%E5%8D%8F%E5%90%8C%E5%B7%A5%E4%BD%9C%EF%BC%88%2B%20%E7%BC%96%E8%BE%91%20latex%20%E6%9E%84%E5%BB%BA%E8%BF%87%E7%A8%8B%EF%BC%89%EF%BC%9F.png)
不幸的是,我没有足够的声誉来评论其他提出完全相同问题的问题,但我想重新发布该问题,因为其他答案似乎都对我有帮助。
我正在使用 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(太长;请勿阅读)
- 设置
ghostscript
(不要使用 TeX Live 中的版本,它似乎不能在命令行中使用(或者我错了)。) - 添加
ghostscript
PATH
- 设置附加组件“编辑 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
在系统中更改为正确的名称。
- 我的卡片模板
\documentclass{ctexart} %中文
\usepackage[papersize={2cm,1cm},centering]{geometry} %2cm * 1cm
\usepackage{amssymb,amsmath}
\pagestyle{empty}
\begin{document}
\begin{center}
%content
\end{center}
\end{document}
- 完毕。
注意力:
- 调试的时候需要清理温度。
- 您需要重新启动 Anki 才能应用设置。
另一种方法:使用imagemagik
imagemagik
也可以转换pdf
为png
。
支持svg
好吧,如果你想使用svg
,你可以使用GhostPDL
。但是,GhostPDL
在使用之前必须进行编译。所以如果你有兴趣,那就继续吧。
太复杂了,我看不懂(针对 Anki 用户)
对于 Anki 用户来说,这相当复杂如果你是 TeX、命令行等的新手,所以如果你不想麻烦,就使用默认设置,因为 Anki 使用 HTML 工作得很好。(如果你想了解TeX、命令行等,那就继续吧。这个简短的回答可能不能让你满意。)
影响: