有没有办法自定义内联数学方程式之间的自动间距?

有没有办法自定义内联数学方程式之间的自动间距?

除了使用负空格外,还有什么方法可以自动修复行内方程式中所有数学字符之间的间距?在示例中,“x \in U”、“x \in A”和“x \in B”中的间距很大,但除了手动添加负空格外,我希望将其减小到正常间距。

我的代码是:

对于两个集合 $A$ 和 $B$,$A$ 和 $B$ 的 \textbf{并集}(表示为 $A \cup B$)是所有 $x \in U$ 的集合,其中 $x \in A$ 或 $x \in B$。这表示为:

答案1

当出现印刷或其他问题时,重要的是要区分原因症状以便有机会找到令人满意的解决方案。

您发现,默认情况下,TeX 允许在状态为 的运算符周围插入的空格具有相当大的可伸缩性\mathrel。 ( 的默认数学状态为\inmathrel)空格的基本量和额外的可伸缩性由参数 给出\thickmuskip;许多(大多数?)LaTeX 文档类将此长度参数定义为5mu plus 5mu,这意味着最小值和最大值分别由 5mu 和 10mu 给出。

当我看到你发布的截图时,我注意到的第一件事是不是第 2 行中三个符号周围的空白(可能过多)\in。相反,我注意到(a)全部第 2 行中的单词间距比第 1 行中的单词间距大得多,并且 (b) 靠近第 2 行末尾的句子句号 (又称句号) 后的空白量也异常大。这种视觉不平衡的主要原因很快就被识别出来:事实上,“expressed” 这个词只有一个有效的连字符点。(TeX 也不想在段落的倒数第二行创建连字符。)

该怎么办?

  • 由于印刷问题的深层原因是没有很好的方法在真正需要的地方用连字符连接“expressed”这个词,因此可以尝试重写句子的开头,例如,从“This is”改为“This may be”。

  • 或者,可以发出指令\setlength{\thickmuskip}{5mu}来删除默认的拉伸组件。

在下面的截图中,第一个枚举项成功复制了您发布的截图。第二个项显示了将第二句的开头修改为“这可能是”的结果……第三个项显示了如果\thickmuskip取消可拉伸性会发生什么。

在此处输入图片描述

请注意,第 3 项第 2 行中的多余间距已消失。然而,这需要付出严重代价,因为 TeX 必须减少第 1 行和第 2 行中的单词间距,从而产生非常“压缩”的外观。相比之下,第 2 项中不存在这样的问题。

对我来说,修改\thickmuskip相当于处理症状问题。为了处理实际原因,值得尝试重写选定的句子。

\documentclass{article}
\usepackage{enumitem}
\setlength\textwidth{4in}
\begin{document}
\sffamily

\begin{enumerate}[wide=0pt]
\item 
For two sets $A$ and $B$, the \textbf{union} of $A$ and $B$, 
denoted by $A \cup B$, is the set of all $x \in U$ such that 
either $x \in A$ or $x \in B$. This is expressed as 

\item 
For two sets $A$ and $B$, the \textbf{union} of $A$ and $B$, 
denoted by $A \cup B$, is the set of all $x \in U$ such that 
either $x \in A$ or $x \in B$. This may be expressed as 

\setlength{\thickmuskip}{5mu}
\item 
For two sets $A$ and $B$, the \textbf{union} of $A$ and $B$, 
denoted by $A \cup B$, is the set of all $x \in U$ such that 
either $x \in A$ or $x \in B$. This is expressed as 

\end{enumerate}
\end{document}

相关内容