我正在尝试在 VScode 中构建一个 tex 项目。我遇到的一个问题是我需要用中文编写,因此我需要将编译器指定为 xelatex 而不是 pdflatex。当我使用 texshop(我之前使用的默认 IDE)时,这不是问题,因为它允许您手动选择首选编译器。但我不知道如何在 VScode 中做到这一点。所以我所做的是在根文件中添加了一个神奇的注释
% !TEX 程序 = xelatex
这应该可以工作,如果我没记错的话,它以前似乎可以工作。但不知何故,它不再起作用了。当我尝试运行我的 tex 文件时,它抛出了一堆 122(!) 错误,例如
包 inputenc:Unicode 字符 学 (U+5B66) (inputenc) 未设置为用于 LaTeX。
我不确定我的魔术注释出了什么问题,更重要的是,如何强制 VScode 使用 xelatex。
在此链接,你可以看到 latex workshop extension 的作者推荐使用 recipe,但说实话我最困惑的是在 FAQ 页面中提到的 recipe 在哪里可以找到以及如何编辑它。
作者还提到魔术注释也应该起作用。
假设根文件中有一行 % !TEX program = xelatex。在构建项目时,LaTeX Workshop 将解析根文件并确定应使用 xelatex。
我在 2014 年中期的 Macbook 上安装了 texlive 2020。如果这有相关性的话。
另外,这是我的源代码。我认为这不太相关,因为我曾尝试使用 texshop 编译源文件,并且它运行良好。所以我确信这是因为我选择的编译器。
% !TEX program = xelatex
\documentclass{article}
\usepackage{ctex}
\usepackage{xcolor}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{tikz}
\usepackage{adjustbox}
\usepackage[printwatermark]{xwatermark}
\usepackage{biblatex}
%\addbibresource{My literature.bib}
\usepackage{calc}
\begin{document}
\title{学会学习}
\date{}
\maketitle
\newsavebox\watermarkbox
\lhead{BeyondWorld Education}
\rfoot{学会学习}
\renewcommand{\footrulewidth}{2pt}
\pagestyle{fancy}
\section{前言}
\input{./section/preface}
\section{学习的生物学基础}
\section{如何学习}
\section{如何学习英语}
\subsection{单词本}
\input{./section/单词本}
\section{应试技巧}
\end{document}
编辑:reddit 上有人向我指出这个帖子 但是 VScode 仍然会抛出错误,而且我认为我没有成功强制 VScode 使用 xelatex。 这是我认为需要编辑的 VScode settings.json 文件。
答案1
由于存在安全风险,魔术评论自 2021 年 12 月 29 日起默认禁用。通过设置启用它:
latex-workshop.latex.build.forceRecipeUsage: false