将“-”更改为 \textendash

将“-”更改为 \textendash

我有一个很大的 LaTeX 文档,其中连字符都用单破折号(“-”)排版。在我的字体中,这显示为粗体且垂直方向略微偏离中心的斑点,但我希望它看起来像\textendash

我尝试定义-一个命令,将其转换为\textendash(通过插入\newcommand{-}{\textendash}序言),但当然没有成功。但是我希望它能够使用当前的“-”,因为 1) 我不想浏览整个文档来替换正确的内容,2) 不想依赖下一个编辑文档的人避免使用“-”而使用其他内容。

有没有什么办法可以让“-”以更好的方式呈现?

澄清:

  • 我没有必要特别使用- 我主要担心的是,源代码中的破折号和 LaTeX 的换行符连字符\textendash产生的破折号都很丑陋。我想要更好的渲染效果,但我对应该使用哪个字符没有具体要求。-
  • 文档可以包含数学减号,并且肯定会在文件名的引用中包含连字符。我only想更改实际的连字符 - 基本上,更改 TeX-在源代码中看到的字符,并在每个地方该字符将在文档中使用。

答案1

好吧,您可以激活 - 然后定义它。但这会影响所有连字符:真正的连字符、数学减号、文件名中的连字符。总的来说,我会说:不要这样做。您遇到的麻烦会比更改文档花费更多的时间。

\documentclass{article}
\begin{document}
\catcode`\-=\active
\newcommand-{hallo}

a - b

so-called

$1-1=0$

%\input{test-hyphen} %error
\end{document}

答案2

这是一个比使用活动字符更强大的答案,但它只适用于 XeTeX(而不是 LuaTeX)。它只会影响周围有空格的连字符,因此(正确地)像“co-ordinate”这样的内容仍将使用常规连字符。

\documentclass{article}
\usepackage{xesearch}
\UndoBoundary{-}
\SearchList{dash}{--}{-}
\begin{document}
There is no just ground, therefore, for the charge brought against me by
certain ignoramuses - that I have never written a moral tale, or, in more
precise words, a tale with a moral. They are not the critics predestined
to bring me out, and \emph{develop} my morals: - that is the secret. By and by
the ``North American Quarterly Humdrum'' will make them ashamed of their
stupidity. In the meantime, by way of staying execution - by way of
mitigating the accusations against me - I offer the sad history appended, -
a history about whose obvious moral there can be no question whatever,
since he who runs may read it in the large capitals which form the title
of the tale. I should have credit for this arrangement - a far wiser one
than that of La Fontaine and others, who reserve the impression to be
conveyed until the last moment, and thus sneak it in at the fag end of
their fables.
\end{document}

感谢 Paul Isambert 的优秀 xesearch 包,它为 XeTeX 的 interchar toks 功能提供了便捷的界面。

答案3

一个选择是创建-一个主动角色:

\documentclass{article}
\let\saveminus=-
\catcode`-=\active
\newcommand-{\ifmmode\saveminus\else\textendash\fi}
\begin{document}
well-known $a-b$
\end{document}

在此解决方案中,-在数学模式下, 仍充当正常减号。但激活-可能会导致其他问题,例如,如果您想使用\vspace{-1ex}

更新:要更改自动插入的连字符,请使用

\hyphenchar\font=\textendash

答案4

那么直接使用怎么样--? 这并不那么深奥,因为在 ASCII 格式的媒体中以这种方式书写短划线是很常见的。

相关内容