在数学文本中,通常会引入遵循以下格式的特殊术语
$math$-word
一个例子:$\alpha$-conversion
,$k$-clique
。
现在,使用此模式时遇到的第一个问题是word
连字算法不再识别。一个简单的解决方法是在单词前插入一个 0 长度的空格:
$math$-\hskip0pt word
通过此技巧,连字符模式可以word
再次正确使用。
问题是我想避免出现以下换行符:
$math$-
lengthyword
$math$
-lengthyword
并且只允许使用连字符lengthyword
$math$-len-
gthyword
我尝试过,但$math$\nobreak-\nobreak\hskip0pt word
无济于事。指导连字符的正确方法是什么?
答案1
在中放置连字符\mbox
将阻止其作为断点使用。
编辑:感谢芭芭拉提供了神奇的咒语,避免了需要手动将 后面的单词连字符$math$\mbox{-}
。特别是,策略性地放置\nobreak
,以及 ,\hspace{0pt}
提供了概括:$math$\mbox{-}\nobreak\hspace{0pt}lengthyword
。
\documentclass{article}
\textwidth1pt
\parindent 0pt
\parskip 1ex
\begin{document}
\mbox{Not this:}
$math$-\hspace{0pt}lengthyword
\mbox{But this:}
$math$\mbox{-}\nobreak\hspace{0pt}lengthyword
\end{document}
答案2
答案3
使用 UTF8 输入时,会出现‑
(U+2011 非中断连字符)。我还显示 U+2013 EN DASH 不允许中断
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}
\parbox{0pt}{\hspace{0pt}% force hyphenation everywhere possible
$p$\nobreakdash-dimensional
$p$‑dimensional % non breaking hyphen
1\nobreakdash--9
1–9 % en-dash
}
\end{document}
可以更改 U+2011 的定义以允许在以下单词中使用连字符:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{newunicodechar}
\newunicodechar{‑}{\mbox{-}\nobreak\hspace{0pt}}
\begin{document}
\parbox{0pt}{\hspace{0pt}% force hyphenation everywhere possible
$p$\nobreakdash-dimensional
$p$‑dimensional % non breaking hyphen
1\nobreakdash--9
1–9 % en-dash
}
\end{document}