上标和连字问题

上标和连字问题

我正在使用LuaLaTeX带有类的编译器KOMA-scrbook

我需要定义一个带有上标文本的命令,但我不知道为什么 LaTeX 禁用带有上标文本的单词的连字符。

\documentclass{scrbook}

\usepackage[USenglish]{babel}

\begin{document}

\parbox{0.1cm}{
  advanced, however}

\parbox{0.1cm}{
  advanced,\textsuperscript{1} however\textsuperscript{2}, maybe\textsuperscript{†}}




\end{document}

为什么“advanced”和“however”这两个词与一起使用时没有连字符\textsuperscript

答案1

\textsuperscript是使用 TeX 的数学模式实现的,因此however\textsuperscript{1}其行为类似于however$abc$。由于内联数学公式未与单词分开,并且部分由数学表达式组成的“单词”的连字符定义并不明确,因此 TeX 不会尝试对此类结构进行连字符处理。

您可以通过添加显式的 来告诉 LuaTeX 前一个单词已结束\wordboundary

\documentclass{scrbook}

\usepackage[USenglish]{babel}

\begin{document}

\parbox{0.1cm}{
  advanced, however}

\parbox{0.1cm}{
  advanced,\wordboundary\textsuperscript{1} however\wordboundary\textsuperscript{2}, maybe\wordboundary\textsuperscript{†}}
\end{document}

在此处输入图片描述

答案2

另一个解决方法是使用具有真实的上标,如 Libertinus、EBGaramond、Erewhon 等,与realscript包一起。然后您的示例就可以开箱即用。

\documentclass{scrbook} 
\usepackage[USenglish]{babel}
\usepackage{realscripts} % loads fontspec
\setmainfont{erewhon}

\begin{document}
\parbox{0.1cm}{%
  advanced, however, maybe}

\parbox{0.1cm}{%
  advanced,\textsuperscript{1} however\textsuperscript{2},
  maybe\textsuperscript{†}}
\end{document}

输出

相关内容