如何在科学或技术文档中输入不间断连字符(破折号,“-”字符)

如何在科学或技术文档中输入不间断连字符(破折号,“-”字符)

我正在用 LaTeX 撰写科学或技术文档。我经常需要输入不间断空格,例如在使用公式引用时:

Equation~\eqref{eq:equation1example} shows blaa...

有没有办法插入不间断的连字符?

例如,这对于通常不会分行的技术术语(如Runge-Kutta、或)可能很有用。non-linearnon-convergingVan-der-Pol Oscillator

此外,这对于引用和作者姓名或出版商名称可能是理想的。

答案1

如果你使用数学包,您可以使用其\nobreakdash宏来插入破折号或短破折号,之后不允许换行。

三个示例(均来自该包的用户指南amsmath):

$p$\nobreakdash-adic
$n$\nobreakdash-dimensional
pages 1\nobreakdash--9

-基本上,在输入文件中您通常会写 (“dash”) 的地方,现在您会写\nobreakdash-,而在输入文件中您通常会写--(“en-dash”) 的地方,现在您会写\nobreakdash--

连接起来的表达式$n$\nobreakdash-dimensional很长,可能会产生错误的换行符。为了避免这种情况发生,同时仍然禁止在 之后换行$n$-,您可以编写

$n$\nobreakdash-\hspace{0pt}dimensional

这样,如果需要,LaTeX 可以在“Dimensional”子字符串的某个地方找到换行符。大概,你可以接受$n$-dimen-一行的末尾和sional下一行的开头。如果你的文档中有很多“n-Dimensional”的实例,那么设置一个宏可能是有意义的,例如

\newcommand\ndim{$n$\nobreakdash-\hspace{0pt}dimensional}

在序言中以及\ndim{}文件正文的各处写入。

答案2

随着babel已加载的软件包\babelhyphen{nobreak}可用(与 和一些其他软件包一起)。虽然它禁止在破折号后换行,但以下单词仍可使用连字符\babelhyphen{soft}\babelhyphen{hard}

$n$\babelhyphen{nobreak}dimensional

该语言ngerman(也许其他语言也是如此)定义了不间断连字符的简写形式:"~。例如,可以将\addto\extrasenglish{\languageshorthands{ngerman}}其(和其他ngerman简写形式)添加到。(可能必须使用 来激活。与 相对,不允许对以下单词进行连字符连接。english\useshorthands{"}\babelhyphen{nobreak} "~

% preamble
\usepackage[ngerman,english]{babel}
\addtoextrasenglish{\languageshorthands{ngerman}\useshorthands{"}}
...
% document
$n$"~dimensional

你也可以自己定义简写——无论是通用的

\defineshorthand{"~}{\babelhyphen{nobreak}}
\useshorthands{"}

或者明确针对一种语言(english例如):

\defineshorthand[english]{"~}{\babelhyphen{nobreak}}
\addto\extrasenglish{
  \languageshorthands{english}
  \useshorthands{"}
}

完整示例:

\documentclass{article}

\usepackage[ngerman,english]{babel}

\defineshorthand[english]{"~}{\babelhyphen{nobreak}}
\addto\extrasenglish{
  \languageshorthands{english}
  \useshorthands{"}
}

\begin{document}

% default:
\parbox{3em}{$n$-dimensional}

\bigskip
% \babelhyphen{nobreak}:
\parbox{3em}{$n$\babelhyphen{nobreak}dimensional}

\bigskip
% new `english' shorthand:
\parbox{3em}{$n$"~dimensional}

\bigskip\selectlanguage{ngerman}
% `ngerman' shorthand:
\parbox{3em}{$n$"~dimensional}

\end{document}

在此处输入图片描述

答案3

还可以换行部分不应换行的文本或仅换行中的破折号\mbox{…}

\mbox{non-linear}
non\mbox{-}linear

答案4

包裹extdash提供了几种排版连字符和破折号的选项,包括通过以下方式禁用连字符和破折号后的换行符:

  1. 在写出的命令中添加星号
something\Hyphdash* something
something\Endash* something
  1. 加载选项后shortcuts,使用等号代替连字符:
something\=/something
something\==/something

(来自包文档的示例)

相关内容