![MikTeX 2.9 / XeLaTeX - 如何显示软连字符(0x00ad)](https://linux22.com/image/367404/MikTeX%202.9%20%2F%20XeLaTeX%20-%20%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E8%BD%AF%E8%BF%9E%E5%AD%97%E7%AC%A6%EF%BC%880x00ad%EF%BC%89.png)
我想请教如何显示字符 0x00ad。
我需要显示.ttf
字体中的字符,并且所需字符之一 - 0x00ad
- 被处理为控制命令。它选择单词中的连字点而不是显示它。
如何强制显示这个字符?
- 直接将其放入源代码中不起作用
\symbol{"00ad}
不起作用\char"00ad
不起作用^^^^00ad
不起作用
显然,它应在预处理阶段后以某种方式放入文本中,否则它会将单词连字符化,而不是显示字体指定的字符。
也许还有其他解决方案,例如以某种方式修补生成的 PDF?欢迎提出任何想法 :-)
我使用发行版 MikTeX(最近更新的版本)、XeLaTeX 编译器。
答案1
您可以将其激活并为其赋予定义。但我不知道您想要哪种外观,所以我在这里使用了 XXX:
\documentclass{article}
\begin{document}
{\catcode`\^^^^00ad=13 \def^^^^00ad{XXX}^^^^00ad}
\end{document}
编辑
显示“真实字形”并不容易。harfbuzz——xetex 用于字体塑造的库——在相当低的级别替换了字符。但对于默认字体 latin modern,以下方法对我有用:
\documentclass{article}
\begin{document}
\XeTeXglyph 542
\end{document}
它显示一个连字符并以 00AD 的形式复制到 babelpad。
数字“542”是字形槽,它依赖于字体。我通过查找lmroman10-regular.lua
位置 173 (=AD) 的索引号找到了该数字:
[173]={
["boundingbox"]=3,
["index"]=542,
["unicode"]=173,
["width"]=333,
},
另一种方法是使用 lualatex。它不会替换软连字符:
\documentclass{article}
\begin{document}
x^^^^00adx
\end{document}
给出
而 xetex 输出是