MikTeX 2.9 / XeLaTeX - 如何显示软连字符(0x00ad)

MikTeX 2.9 / XeLaTeX - 如何显示软连字符(0x00ad)

我想请教如何显示字符 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 输出是

在此处输入图片描述

相关内容