答案1
跟进@Ingmar 的评论:请考虑使用该fontspec
软件包——并且,如果有必要,切换到 LuaLaTeX 或 XeLaTeX——并使用选项加载感兴趣的等宽字体Ligatures=TeX
。 (TeX 将 endashes 和 emdashes 实现为连字。)并且,一定要使用等宽字体,这样,endash 和 emdash 之间的差异-
实际上是可以视觉检测到的——那就是不是拉丁现代单音节的情况,如下面的屏幕截图中间三分之一所示。
\documentclass{book}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\begin{document}
\obeylines % just for this test document
Latin Modern Roman
--- -- -
\bigskip
\setmonofont{Latin Modern Mono}[Ligatures=TeX,Scale=MatchLowercase]
\texttt{Latin Modern Mono}
\texttt{--- -- -}
\bigskip
\setmonofont{Consolas}[Ligatures=TeX,Scale=MatchLowercase]
\texttt{Consolas}
\texttt{--- -- -}
\end{document}