方括号内的命令调用

方括号内的命令调用

如果我在这里没有使用正确的词汇,请原谅。

我目前在 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}

相关内容