在加载 fontenc 包时,如何阻止 LaTeX 将两个连字符转换为一个连字符?

在加载 fontenc 包时,如何阻止 LaTeX 将两个连字符转换为一个连字符?

在以下最小测试文档中,我可以让两个连字符显示为两个连字符(这正是我想要的):

\documentclass[letterpaper]{article}

\begin{document}
A hyphen: \texttt{-}

Two hyphens: \texttt{--}

Three hyphens: \texttt{---}

\end{document}

在我加载包的第二个测试文档中fontenc,我得到了不同的行为;显示单个连字符;双连字符折叠为单个连字符,三重连字符折叠为双连字符:

\documentclass[letterpaper]{article}
\usepackage[T1]{fontenc}

\begin{document}
A hyphen: \texttt{-}

Two hyphens: \texttt{--}

Three hyphens: \texttt{---}
\end{document}

我读到加载fontenc是个好主意,所以我想这样做;但我也想要双连字符。我是否错过了一些非常明显的东西?

系统:Windows XP Pro 上的 MiKTeX 2.8。

答案1

--是所谓的 TeX-Ligature,它转换为 n-dash。-{}-破坏此组合。

\documentclass[letterpaper]{article}
\usepackage[T1]{fontenc}

\begin{document}
A hyphen: \texttt{-}

Two hyphens: \texttt{-{}-}

Three hyphens: \texttt{-{}-{}-}
\end{document}

或者为此定义自己的宏

答案2

这种方法对我来说在参考书目中不起作用,如果您遇到同样的问题,只需插入其中一个幻影命令:

@article{Foo,
  title = {Hello -\phantom{}- World},
}

这将按预期工作。

答案3

对我来说,-{}-无法断开 中的连字符--。这个技巧-\phantom{}-很管用,但有点冗长。我发现斜体校正命令可能是这种特殊情况下的最佳选择:这-\/-在任何情况下都对我有用。

请参见{} 和 / 在断开连字符方面的区别了解更多详情。

答案4

如果您拥有良好的现代 Unicode 设置,双Minus Sign字符(“−−”)可能不会被破坏。(在我的例子中,LuaLaTeX 带有 fontspec 和可选的 unicode-math。)

相关内容