![如何在 TextMate 中将 PSTricks 与 XeLaTeX 结合使用?](https://linux22.com/image/348844/%E5%A6%82%E4%BD%95%E5%9C%A8%20TextMate%20%E4%B8%AD%E5%B0%86%20PSTricks%20%E4%B8%8E%20XeLaTeX%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我正在尝试编译使用“pstricks”和“fontspec”包的以下文件,使用 TextMate 中的 XeLaTeX,点击软件包 → LaTeX → 排版与查看 (PDF)。在我的偏好设置(Bundles → LaTeX → Preferences...)中,我已将其设置xelatex
为默认排版引擎,但看起来 TextMate 仍然使用 pdfLaTeX。
\documentclass{article}
\usepackage{fontspec}
\usepackage{pstricks}
\begin{document}
\psline(0, 0)(1, 1)
\end{document}
这会导致以下错误消息:
Package: fontspec 2016/02/01 v2.5a Font selection for XeLaTeX and LuaLaTeX
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
/usr/local/texlive/2016basic/texmf-dist/tex/latex/fontspec/fontspec.sty:28: Fat
al fontspec error: "cannot-use-pdftex"
!
! The fontspec package requires either XeTeX or LuaTeX.
!
! You must change your typesetting engine to, e.g., "xelatex" or
! "lualatex"instead of plain "latex" or "pdflatex".
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.28 \msg_fatal:nn {fontspec} {cannot-use-pdftex}
|'''''''''''''''''''''''''''''''''''''''''''''''
| This is a fatal error: LaTeX will abort.
|...............................................
答案1
每当 TextMate 检测到您正在导入 PSTricks 包时,它都会自动切换回默认pdflatex
命令来编译您的 LaTeX 文件——无论您在“首选项”中如何设置“默认引擎”。这是因为 PSTricks 与 XeLaTeX 不完全兼容;因此 TextMate 认为这表明您宁愿使用 pdfLaTeX。但是 pdfLaTeX 不能与 Fontspec 一起使用,这会破坏您的文档。
解决此问题的简单方法是根据每个文档设置首选的 LaTeX 编译命令。为此,请转到软件包 → LaTeX → 文件偏好设置 → 设置排版引擎并选择赛莱特。这样,即使您导入 PSTricks 包,TextMate 也会使用 XeLaTeX 命令。
如果您不想对每个文档都执行此操作,那么唯一的其他解决方案就是编辑 TextMate-LaTeX-bundle 的源代码。1要执行此操作,请访问捆绑包 → 编辑捆绑包……,在左侧窗格中选择 LaTeX-bundle,然后导航至支持 → 垃圾桶. 右击文件文本编辑器并点击在 Finder 中显示“texmate.py”。然后,在 Finder 中,打开文件“texmate.py”,转到第 658 行并从列表中删除项目“pstricks”,使其显示为:
latex_indicators = {'xyling', 'pst-asr', 'OTtablx'}
保存文件后,导入 PSTricks 包将不再导致 TextMate 切换到 pdfLaTeX 编译器。
您可能仍会收到以下错误:
xdvipdfmx:fatal: File ended prematurely
Output file removed.
Error 256 (driver return code) generating output;
file test.pdf may not be valid.
导致我出现此错误的原因是该命令ps2pdf
不在PATH
TextMate 中。转到TextMate → 偏好设置... → 变量。确保变量PATH
旁边有一个复选标记。如果不存在,请打开终端,输入which ps2pdf
,然后添加一个名为PATH
TextMate 的变量,其中包含应在终端中显示的路径,例如$PATH:/opt/local/bin:/usr/local/bin:/usr/texbin
。