我有一个句子,其中包含许多较长的数据集名称。我想让 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}