如果我在这里没有使用正确的词汇,请原谅。
我目前在 tex 文件中使用 Polyglossia。要设置主要语言,我使用:
\setmainlanguage[variant=usmax]{english}
我想将语言和变体分解成可以在其他地方更改的变量,因此我修改代码如下:
\newcommand{\customlang}{english}
\newcommand{\customlangvariant}{usmax}
\setmainlanguage[variant=\customlangvariant]{\customlang}
但这次,当我构建时,出现了错误
Package polyglossia Warning: Unknown English variant `usmax' on input line 125.
显然usmax
是正确的变体,因此在调用命令时我遗漏了一些基本知识\setmainlanguage
。使用\customlang
似乎有效,但\customlangvariant
实际上无效。
我哪里做错了?
谢谢
Windows 10,LuaTeX,版本 1.11.2(MiKTeX 2.9.7250 64 位)
答案1
当键的值被吸收时,不会进行任何解释。
因此 Polyglossia 正确地告诉你,它不知道变体\customlangvariant
,因为它与唯一接受的变体不同,即
uk british us american usmax australian newzealand canadian
您会收到一条令人费解的错误消息,因为 Polyglossia 传递\customlangvariant
给了 LaTeX 的错误管理,后者最终会将其扩展为usmax
。
我不确定这种方法是否真的能给你带来什么好处。但是,如果你愿意,你可以这样做:
\documentclass{article}
\usepackage{polyglossia}
\newcommand{\customlang}{english}
\newcommand{\customlangvariant}{usmax}
\expandafter\setmainlanguage\expanded{[variant=\customlangvariant]}{\customlang}
\begin{document}
x
\end{document}