我正在维护一个相当简单的类,供我自己和一些同事在公司内部使用。大部分内容都很简单,比如包括徽标、设置纸张格式、调整颜色、设置标题和将文档设置为不同的语言...... - 你明白了。
此外,加载我们同意的所有包并包含有用的宏。这里没什么特别的。
TeX / LaTeX 编程功能总是让我感到困惑,我总是在弄清楚正确的语法方面遇到大问题,并且经常弄巧成拙。
lua 能否帮助提供更“现代”的脚本语言的功能?
因此不要使用类似这样的方法:
[...]
\RequirePackage{ifthen}
\DeclareStringOption{language}
\ifthenelse{\equal{\myclassname@language}{deutsch}}
{
\PassOptionsToClass{ngerman}{scrartcl}
\PassOptionsToPackage{ngerman}{varioref}
[more language specific loading]
}
{
\ifthenelse{\equal{\myclassname@language}{english}}
{
\PassOptionsToClass{english}{scrartcl}
\PassOptionsToPackage{english}{varioref}
[...]
}
{
\ifthenelse{\equal{\myclassname@language}{portuges}}
{
\PassOptionsToClass{portuges}{scrartcl}
\PassOptionsToPackage{portuges}{varioref}
[...]
}
{
[...]
}
}
我只是想将一个字符串变量从 .tex 文件传递到 .cls 文件:
if (\myclassname@language == "deutsch") then
function_deutsch(foo)
elseif (\myclassname@language == "english") then
function_english(bar)
elseif (\myclassname@language == "portuges") then
[...]
end
与 latex / pdflatex / xetex 的兼容性...不是问题,也不是要求
编辑:基于 lua 函数的解决方案不再进一步研究。建议基于 expl3 / latex3 进行重写(例如正如这里所问):