允许换行,但不插入破折号

允许换行,但不插入破折号

我有一个句子,其中包含许多较长的数据集名称。我想让 LaTeX 在某些位置中断这些名称,我希望以某种方式指定这些名称,就像我可以使用\-中断单词一样。但是:我希望 LaTeX不是插入破折号(可能会被误认为属于数据集名称)。我该怎么做?

(包中实现了类似的东西url,所以我想我可以读一下代码:)我不想url在这里使用包来在 url 和数据集名称之间产生语法(和印刷)差异。)

答案1

您可以\allowbreak在允许不带连字符的任何地方插入,例如

long\allowbreak word

答案2

除了Stefan的回答之外:

您也可以写long""word,但这是一个babel- 快捷方式(如以下大多数)。正如 Herbert 指出的那样,这些快捷方式是特定于语言的。该列表取自德语主页,位于babels手册的德语部分。

-连字符,此单词中没有其他符号 ( hy-phenation> hy-|phenation)
"=允许其他断行的连字符 ( h"=yphenation> h-|y|phen|a|tion)
"~不换行的连字符 ( hy"~phenation> hy-phenation)
\-可以使用符号进行连字 ( h\-yphenation> h|y|phen|a|tion)
""可以使用不带符号的连字 ( (super"~)""hyphenation> (super-)*hy|pen|a|tion)
"|断开连字符并允许连字

[(code> 输出);管道符表示可能出现带有连字符的换行符;星号表示可能出现不带符号的换行符。]

来源:德文主页。

答案3

也可以允许字符连字

\documentclass{article}                 
\usepackage[hyphens]{url} 
\textwidth=10cm% only for demo
\DeclareUrlCommand\Code{\urlstyle{rm}}
\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks  
\do\/\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k
\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v
\do\w\do\x\do\y\do\z
\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K
\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V
\do\W\do\X\do\Y\do\Z}
\begin{document}            
\noindent\rule{\textwidth}{1pt}
some very long text before the hyphenated code
\Code{someverylongtextbeforethehyphenatedcode}

some very long text before the hyphenated code
\Code{some-long-command-name-with-a-lot-of-dases}
\end{document}    

答案4

来自 TeXbook:

\discretionary{<pre-break text>}{<post-break text>}{<no-break text>}

您可以尝试以下方法:

\newcommand{\sep}{\discretionary{}{}{}}
\newcommand{\datasetname}{My\sep long\sep data\sep set\sep name}

相关内容