带变音符号的 LaTeX3 字符串

带变音符号的 LaTeX3 字符串

我想知道如何正确使用 LaTeX3 字符串。请考虑以下代码:

\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \l_foo
\tl_set:Nn \l_foo {\"a}
\str_new:N \l_bar
\str_set:Nn \l_bar {\"a}
foo = \tl_use:N \l_foo \\
bar = \str_use:N \l_bar
\ExplSyntaxOff
\end{document}

我期望得到以下输出

foo=ä
bar=ä

但实际上我得到了以下

foo=ä
bar=“”a

我是否必须在 LaTeX3 字符串中对变音符号进行一些特殊处理?除此之外,何时使用 astr和何时使用有什么建议tl?两者有什么好处吗?我的背景是,我正在开发一个包,其中的一些变量留给用户以自定义输出。

答案1

在 TeX 中,因此在 中expl3,字符串具有非常具体的含义。字符串是标记的集合,其中空格(字符代码 32)属于类别空间(类别代码 10),而所有其他标记都属于类别“其他”(类别代码 12)。这是标记列表这一更一般概念的一个特例,它是任意类别代码的标记的集合。

我们有 atl和 astr数据类型,expl3因为后者对于“标记”字符串值很重要的程序化用途很有用。然而,从技术层面上讲,没有理由不能将它们称为tls。对于存储文本为了排版你总是想保留意义,所以str不合适:你想要tl

相关内容