xelatex -synctex=1 -interaction=nonstopmode %.tex
当我尝试通过 TexStudio 使用 XeLaTex 编译我的文档(使用的命令:)时,我在日志开头连续五次收到标题中显示的错误。
我正在编写此文档:
%%% demothesis.tex ---
\documentclass[msc,lith,english]{liuthesis}
%% Settings go in settings.tex
\include{settings}
\usepackage{rotating}
\usepackage{color}
\usepackage{multicol}
% \usepackage{changebar}
\department{Institutionen för datavetenskap}
\departmentenglish{Department of Computer and Information Science}
\departmentshort{IDA}
\externalsupervisor{Anonymous}
\supervisor{Anonymous}
\examiner{Anonymous}
\titleenglish{Something}
%\subtitleenglish{with a subtitle}
\titleswedish{En himla bra svensk titel}
\thesissubject{Datateknik}
\publicationyear{2018}
\currentyearthesisnumber{001}
\dateofpublication{2018-06-29}
\author{Anonymous}
\begin{document}
\chapterstyle{VZ43}
\include{intro}
\include{theory}
\include{method}
\include{results}
\include{discussion}
\include{conclusion}
\printbibliography
\include{appendix}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% demothesis.tex ends here
可以注意到,我正在使用自定义类,断层。文件 liuthesis.cls 与我尝试编译的文件位于同一文件夹中。此 cls 文件中唯一设置 bodyfont 的地方是:
\def\tryfonts#1#2{
\ifxetex
\def\primaryfont{"#1"} % first preferred font
\def\secondaryfont{"#2"} % if first font not avaliable
\count255=\interactionmode
\batchmode
\font\bodyfont=\primaryfont\space at 10pt
\ifx\bodyfont\nullfont
\font\bodyfont=\secondaryfont\space at 10pt
\ifx\bodyfont\nullfont
\errorstopmode
\errmessage{Neither #1 or #2 fonts installed, quitting..}
\else
\fontspec{#2}
\setmainfont{#2}
\fi
\else
\fontspec{#1}
\setmainfont{#1}
\fi
\interactionmode=\count255
\else
\typeout{ **** Please use XeTeX and install Calibri for correct typesetting ***}
\fi
}
所有tryfonts命令如下:\tryfonts{Calibri}{Carlito}
该错误未出现在完整日志(TexStudio 中的消息选项卡)中,而仅出现在汇总版本(TexStudio 中的日志选项卡)中。它说它发生在\begin{document}
第 65 行。
这是日志输出,由于太大,无法在帖子中显示:日志
遇到此错误时,大多数人通过安装解决了问题texlive-fonts-recommended
。但是,使用这个脚本显示它已经安装(当我尝试安装它时由 apt-get 确认)。
我找不到任何解决方案。你们有人有想法吗?提前感谢你们的帮助!
答案1
Calibri 是 Microsoft 的一种字体,在 Linux 上不可用(除非您购买了它)。
您没有显示\tryfonts
命令的使用方法,但据推测,您的文档会先尝试 Calibri,然后再尝试其他字体。在 Linux 上,Calibri 测试将失败,它将改用您指定的任何字体#2
。测试本身将在日志中发出警告,表示未找到字体,但这实际上不是问题,这是测试的预期行为。