我正在尝试以内联方式打印集合列表来说明一些定义。我的代码如下:
$\descendantsplus{\texttt{A}} = \{ \texttt{A}, \texttt{B}, \texttt{C} \},\ \descendantsplus{\texttt{B}} = \{ \texttt{B} \}$
并产生:
我不喜欢将其descendants(C) = { C }
分成两行。我尝试像这样添加 $~$:
$\descendantsplus{\texttt{A}}~=~\{~\texttt{A},~\texttt{B},~\texttt{C}~\},\ \descendantsplus{\texttt{B}}~=~\{~\texttt{B}~\}$
结果如下:
因此该线根本不会中断并且会创建一条无限长的线。
我读了这个问题的答案:波浪符号(~)在数学模式下起什么作用?,而且似乎 ~ 不是我想要用作分隔符的,但是我发现答案提供的正确分割线的解决方案并不令人满意:
然而,
the set $N_n(R)=\{\,x\in R: x^{n-1}\ne 0\ \text{and}\ x^{n}=0\,\}$
更正确的写法是
the set $N_n(R)=\{\,x\in R: x^{n-1}\ne 0$ and~$x^{n}=0\,\}$
以便给 TeX 更多的机会正确地断线。
有没有什么巧妙的方法可以处理数学模式下的不间断空格?
答案1
我可以用
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[sc]{mathpazo}
\usepackage{microtype}
\usepackage{showframe} % just for the example
\newcommand{\ancestorplus}[1]{\mathit{ancestor}^{+}(#1)}
\newcommand{\descendantsplus}[1]{\mathit{descendants}^{+}(#1)}
\begin{document}
\noindent
we have:
$\descendantsplus{\mathtt{A}} = \{ \mathtt{A}, \mathtt{B}, \mathtt{C} \}$,
$\descendantsplus{\mathtt{B}} = \{ \mathtt{B} \}$,
$\descendantsplus{\mathtt{C}} = \{ \mathtt{C} \}$,
$\ancestorplus{\mathtt{A}} = \{ \mathtt{A} \}$,
$\ancestorplus{\mathtt{B}} = \{ \mathtt{A,B} \}$,
$\ancestorplus{\mathtt{C}} = \{ \mathtt{A,C} \}$.
\end{document}
使用microtype
会产生较少的溢出量。请注意,与您的代码不同,这是六不同的公式。只有一个公式是错误的,并且会使 TeX 更少有机会分割一行,因为公式内部的逗号处不允许断行,因此只有二元关系才是可行的断点。
无论如何,如果不拆分,就很难排版此段落=
,除非您能够将“我们有:”移至上面的行。
=
您可以使用以下方式禁止在特定符号后中断
=\nolinebreak
但这在以下测试的前两种情况下没有帮助,因为没有办法放\{\mathtt{C}\}
进行线。在第二个示例中尝试一下。
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[sc]{mathpazo}
\usepackage{microtype}
\usepackage{showframe} % just for the example
\newcommand{\ancestorplus}[1]{\mathit{ancestor}^{+}(#1)}
\newcommand{\descendantsplus}[1]{\mathit{descendants}^{+}(#1)}
\begin{document}
\noindent
we have:
$\descendantsplus{\mathtt{A}} = \{ \mathtt{A}, \mathtt{B}, \mathtt{C} \}$,
$\descendantsplus{\mathtt{B}} = \{ \mathtt{B} \}$,
$\descendantsplus{\mathtt{C}} = \{ \mathtt{C} \}$,
$\ancestorplus{\mathtt{A}} = \{ \mathtt{A} \}$,
$\ancestorplus{\mathtt{B}} = \{ \mathtt{A,B} \}$,
$\ancestorplus{\mathtt{C}} = \{ \mathtt{A,C} \}$.
\bigskip
\noindent
have:
$\descendantsplus{\mathtt{A}} = \{ \mathtt{A}, \mathtt{B}, \mathtt{C} \}$,
$\descendantsplus{\mathtt{B}} = \{ \mathtt{B} \}$,
$\descendantsplus{\mathtt{C}} = \{ \mathtt{C} \}$,
$\ancestorplus{\mathtt{A}} = \{ \mathtt{A} \}$,
$\ancestorplus{\mathtt{B}} = \{ \mathtt{A,B} \}$,
$\ancestorplus{\mathtt{C}} = \{ \mathtt{A,C} \}$.
\bigskip
\noindent
$\descendantsplus{\mathtt{A}} = \{ \mathtt{A}, \mathtt{B}, \mathtt{C} \}$,
$\descendantsplus{\mathtt{B}} = \{ \mathtt{B} \}$,
$\descendantsplus{\mathtt{C}} = \{ \mathtt{C} \}$,
$\ancestorplus{\mathtt{A}} = \{ \mathtt{A} \}$,
$\ancestorplus{\mathtt{B}} = \{ \mathtt{A,B} \}$,
$\ancestorplus{\mathtt{C}} = \{ \mathtt{A,C} \}$.
\end{document}
顺便说一句,\texttt
这是错误的,因为它只改变字体系列,而不改变其他属性,所以你会在定理陈述中得到斜体字母。