Lualatex 和 UTF-8 NonBreaking 空格

Lualatex 和 UTF-8 NonBreaking 空格

我正在使用Version 1.15.0 (TeX Live 2022/TeX Live for SUSE Linux)并且需要使用 UTF-8 字符U+00A0作为不间断空格。我找到了一个解决方案回答

我知道 lualatex 使用 UTF-8 作为输入编码。因此,是否仍然需要这种映射,或者我可以依赖 lualatex 的内部机制?

答案1

默认情况下,字符 U+00A0 是 catcode 12 标点符号,没有特殊行为,因此它的行为就像.不添加换行点一样,但其外观取决于字体,并且具有固定的字体相关宽度,并且与普通空格或活动空格不同~,不会被 TeX 弹性胶水取代。

在此处输入图片描述

显示了一些空格、U+00A0 和空格行为不同的上下文~。你会看到,~除了不允许换行之外,U+00A0 的行为与空格完全不同。

答案2

感谢 Ulrike,我想出了以下示例

\documentclass[a4paper,11pt,english]{article}
\begin{document}
\fbox{  
    \parbox{2cm}{We have 10 \% rest ammount} % encoded UTF-8 character U+A00
}
\fbox{  
    \parbox{2cm}{We have 10 \% rest ammount}
}
\fbox{  
    \parbox{2cm}{We have 10~\% rest ammount}
}
\end{document}

在此处输入图片描述

结论:使用 lualatex 就不再需要使用 进行编码\newunicodechar

相关内容