数学中的文本连字符

数学中的文本连字符

我想要这样的文字

\((\abcdefghij,\abcdefghij)\)-pair

\abcdefghij定义为\textit{abc\-defg\-hij})连字符为

(abc·defg·hij,·abc·defg·hij)-·pair

(“·” 表示所有可能的换行点;如果两边相邻的字符都是字母,当然需要连字符)。假设我需要一个宏,就像\abcdefghij文档中的许多地方一样。我该如何实现预期的连字符?

答案1

只要您不在{}本质上是\hbox数学模式的组内,连字符就可以在数学中起作用。 \begingroup但是组是可以的。

由于您没有提供 MWE(抱怨),我从 Hendrik 的回答中偷了一个。

在此处输入图片描述

\documentclass{article}
\newcommand*\abcdefghij{%
  \begingroup\mathit{\xdef\tmp{\fam\the\fam\relax}}\tmp
  abc\-defg\-hij\endgroup}

\begin{document}
\noindent
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and to end with, one last
\((\abcdefghij,\abcdefghij)\)-pair.
\end{document}

答案2

实现预期连字的一种方法是将“音节”放入单独的\textit命令中,并用自由分隔符分隔\-。(这会干扰abcdefghij,但效果相当好。)要在逗号后允许换行,您可以使用以下代码egreg 的这个答案

输出

\/请注意,我在后面添加了斜体更正,j以便它不再靠近右括号。

\documentclass{article}
\newcommand*\abcdefghij{\textit{abc}\-\textit{defg}\-\textit{hij\/}}
\AtBeginDocument{%
  \mathchardef\mathcomma\mathcode`\,
  \mathcode`\,="8000 
}
{\catcode`,=\active
  \gdef,{\mathcomma\discretionary{}{}{}}
}
\begin{document}
\noindent
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and a 
\((\abcdefghij,\abcdefghij)\)-pair and to end with, one last
\((\abcdefghij,\abcdefghij)\)-pair.
\end{document}

相关内容