如何强制将“(near-)uniform”正确连字符为“(near-)”+“uniform”,而不是“(near-”+“)uniform”?

如何强制将“(near-)uniform”正确连字符为“(near-)”+“uniform”,而不是“(near-”+“)uniform”?

如何强制使用(near-)uniformas(near-) uniform而不是进行正确连字(near- )uniform

答案1

您可以使用\discretionary。它需要三个参数:

\discretionary{at line end}{at next line begin}{if not hyphened}

在你的情况下,所有参数都必须为空。我建议为此定义一个新命令,如下所示。

\documentclass{article}

\newcommand{\myhyph}{\discretionary{}{}{}}

\begin{document}
\begin{minipage}{1.5cm}
(near-)\myhyph uniform
\end{minipage}
\end{document}

酌情

在此示例中,仅用于{minipage}获得窄线。

\newcommand{\nbhyph}{\mbox{-}}

您还可以定义不可断开的连字符:

(near\nbhyph)\myhyph uniform

我确信可以使用活动字符来使宏更短。

请注意,babelwith(n)german定义了几种用于连字符的简写形式。请参阅第 81 页的手册。


您可以在新的宏中扭曲它以获得短暂的访问:

[更新:正如 egreg 所说,定义可能更容易\newcommand{\sh}[1]{(#1\mbox{-})\discretionary{}{}{}}。我修改了它]

\documentclass{article}

\newcommand{\sh}[1]{% s = special, h = hyphen ...
    (#1\mbox{-})\discretionary{}{}{}%
}

\begin{document}
\begin{minipage}{1cm}
   \sh{near}uniform
\end{minipage}

\end{document}

答案2

您可以使用德语简写:

\documentclass{article}
\usepackage[ngerman,english]{babel}

\useshorthands{"}
\addto\extrasenglish{\languageshorthands{ngerman}}
\begin{document}
\begin{minipage}{1.5cm}
(near"~)""uniform
\end{minipage}
\end{document}

相关内容