lualatex:为什么 \textbar̈ 可以工作,而 \textbar̙ 却不工作?

lualatex:为什么 \textbar̈ 可以工作,而 \textbar̙ 却不工作?

如果使用 lualatex 进行编译,为什么第 b) 行可以运行,而第 d) 行却不行?

在 b) 行中,r (U+0072) 后面跟着 ̈ (U+0308)。编译时没有错误。

在 d) 行中,r (U+0072) 后面跟着 ̙ (U+0319)。这会产生%错误(如果删除的话)“\textbar̙ … 未定义的控制序列……”

\documentclass{article}
\usepackage{fontspec}
\usepackage{dejavu-otf}
\begin{document}
a) r̙ r̈ \$̈ \$̙
b) \textbar̈
c) \textbar{}̙
d) % \textbar̙
\end{document}
This is LuaHBTeX, Version 1.12.0 (TeX Live 2020/Debian)

答案1

这似乎是软件包的一个问题,它使组合分音符 catcode12(标点符号)不能成为命令名称的一部分 dejavu-otf unicode-math


\showthe\catcode"0308
\documentclass{article}
\usepackage{fontspec}
\showthe\catcode"0308
%\usepackage{dejavu-otf}
\showthe\catcode"0308
\begin{document}
\showthe\catcode"0308

a) r̙ r̈ \$̈ \$̙
b) \show\textbar̈
c) \textbar{}̙
d)  \show\textbar̙
\end{document}

添加\catcode"0308=11将恢复正常行为。


这似乎是unicode-math(我会在那里提出)的一个特点

\documentclass{article}

\RequirePackage{unicode-math}
\showthe\catcode"0308
\setmathfont{TeXGyreDejaVuMath-Regular}
\showthe\catcode"0308
\begin{document}

\end{document}


只需设置数学字体即可改变文本变音符号的 catcode,这似乎……出乎意料

相关内容