_
我可以告诉 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}
如您所见,它在下划线后和单词内都进行连字符连接。