我已经在 TeX.SE、TeX Live 的文档和 TUGBoat 中阅读了很多关于 LaTeX3 的内容,但还有一些我不明白的地方:expl3 语法是否用于文档级命令?
如果能够将字符:
和包含在使用或等效的 LaTeX3 定义构造_
定义的命令名称中\newcommand
,我会非常高兴。这将带来所谓的“文档中的命名空间”,并且通常使命令更具可读性(在我看来)。由于我在职业生涯中总是必须使用 XML 和 HTML,因此我希望使我的 LaTeX 标记更类似于 XML 的元素和属性,至少表面上。
沿着这个思路进一步思考,一个附带的问题是:是否可以在 LaTeX3 命令名称中使用非 ASCII 字母?
附言:是的,我确实追求愚蠢的梦想LaTeX 中的语义标记:-)。
答案1
不,这或多或少完全误解了这个想法:-)“长期愿景”是“机器”被编码expl3
,而一目前,接口使用类似 LaTeX2e 的命令提供。请注意,一个目标是允许由相同代码支持的替代接口层:当然,您可以实现其中之一。
您可以在命令名称中使用非“字母”字符,例如在“经典”TeX 中:
\expandafter\def\csname some-awkward-1-2-3-name\endcsname
或expl3
:
\cs_set:cpn { some-awkward-1-2-3-name }
但要“轻松”地访问这些内容并不容易,因为 TeX 的规则意味着什么是“字母”很重要。这些规则不能被宏包(包括 )改变,expl3
因此它们仍然有效。