通过最小工作示例演示问题
我在文件中保存了以下 LaTeX 代码~/Test.tex
。
\documentclass{article}
\usepackage{ifthen}
\begin{document}
\the\textdir =%
\ifthenelse{\equal{\the\textdir}{TLT}}{TLT}{TRT}
\end{document}
代码打印出 LuaTeX 原始\textdir
寄存器的内容、一个等号,然后打印出TLT
如果所述寄存器的内容为 则为字符串TLT
,并且TRT
否则打印出字符串。
然后我在终端中执行了以下命令。
> cd ~
> lualatex Test
结果文件~/Test.pdf
就创建了。在 PDF 查看器中打开时,它显示“TLT=TRT”。
问题
如果
\the\textdir
扩展为字符串“TLT”,那么为什么条件表达式求值为别的案例“TRT”?如何查询
\textdir
寄存器的值?
答案1
\jobname
它与和相同\string
,它返回 catcode 12 个字符而不是 catcode 11
\documentclass{article}
\usepackage{ifthen}
\begin{document}
\the\textdir =%
\ifthenelse{\equal{\the\textdir}{\detokenize{TLT}}}{TLT}{TRT}
\end{document}