带下划线的单词的连字符

带下划线的单词的连字符

_我可以告诉 LaTeX,它可以在下划线之前始终对包含下划线的单词进行连字符处理吗?

我在文本中有很多代码示例,例如is_error_condition_enum我想告诉 LaTeX 它可以将其连字符如下:

Lorem ipsum is_error_-
condition_enum lorem.

总是。

如果这在全球范围内不可能实现,那么我该如何输入一些下划线词,例如:

\hyphenation{is_-error_-condition_-enum}

因为该条目显然被拒绝了。

在源代码中,我写下了类似这样的单词\gpmono{is\gpus{}error\gpus{}condition\gpus{}enum}

答案1

\newcommand{\gpus}{\_\discretionary{-}{}{}}

如果\gpus在其他不需要连字符的地方使用,则只能在的参数中修改其定义\gpmono

\newcommand{\gpmono}[1]{\begingroup
   \renewcommand{\gpus}{\_\discretionary{-}{}{}}%
   \ttfamily#1\endgroup}

当然,在不知道您对\gpmono和的原始定义的情况下\gpus,我尝试猜测。

答案2

underscore包提供了一种自动执行此操作的方法:它修改\_命令的定义,以便允许在下划线后使用连字符。此外,它允许您简单地书写_而不是\_在文本模式下生成下划线。您所要做的就是使用

\usepackage{underscore}

答案3

包裹连字符在包含下划线的单词中启用连字符。

例如以下 TeX:

\documentclass{article}
\usepackage{hyphenat}
\begin{document}
Lorem\_ipsum\_dolor\_sit\_amet,\_consetetur\_sadipscing\_elitr,\_sed\_diam\_nonumy\_eirmod\_tempor\_invidunt\_ut\_labore\_et\_dolore\_magna\_aliquyam\_erat,\_sed\_diam\_voluptua.\_At\_vero\_eos\_et\_accusam\_et\_justo\_duo\_dolores\_et\_ea\_rebum.\_Stet\_clita\_kasd\_gubergren,\_no\_sea\_takimata\_sanctus\_est\_Lorem\_ipsum\_dolor\_sit\_amet.\_Lorem\_ipsum\_dolor\_sit\_amet,\_consetetur\_sadipscing\_elitr,\_sed\_diam\_nonumy\_eirmod\_tempor\_invidunt\_ut\_labore\_et\_dolore\_magna\_aliquyam\_erat,\_sed\_diam\_voluptua.\_At\_vero\_eos\_et\_accusam\_et\_justo\_duo\_dolores\_et\_ea\_rebum.\_Stet\_clita\_kasd\_gubergren,\_no\_sea\_takimata\_sanctus\_est\_Lorem\_ipsum\_dolor\_sit\_amet.
\end{document}

产生以下输出: 在此处输入图片描述

如您所见,它在下划线后和单词内都进行连字符连接。

相关内容