我正在编写一个类文件,如果编译器是或,我想使用fontspec
和。如果编译器是 ,我想定义默认字体,如和。我试图在-file 中使用,但出现错误:系统未定义或类似错误。我可以解决这个问题吗?unicode-math
luatex
xetex
pdftex
cmr
phv
\sys_if_engine*
cls
答案1
我意识到这些包没有使用\ProvidesPackage
但是\ProvidesExplPackage
所以我研究了这一点并找到了这个解决方案:
\newif \if@luatex
\newif \if@xetex
\@luatexfalse
\@xetexfalse
\ExplSyntaxOn
\sys_if_engine_luatex:T {\@luatextrue}
\sys_if_engine_xetex:T {\@xetextrue}
\ExplSyntaxOff
...
\ifthenelse{\boolean{@luatex} \OR \boolean{@xetex}}{
\RequirePackage{unicode-math}
\RequirePackage{fontspec}
\setmainfont{Times New Roman}
\newfontfamily \arial {Arial}
\setmathfont{Cambria Math}
}{
% Have not solved this part yet.
}