公式后出现奇怪的小凹痕

公式后出现奇怪的小凹痕

通常情况下,当你在数学模式之后立即输入文本时,它会打印出来没有缩进(这是理想的外观),但是在接下来的 MWE 中,会出现一个小的缩进

在此处输入图片描述

\documentclass{article}

\usepackage{mathtext}
\usepackage[ukrainian]{babel}

\usepackage{amsmath,amsfonts}
\usepackage{mathabx}
\usepackage{euscript}
\usepackage{hyperref}

\begin{document}

$\EuScript{F}$

$$
123
$$
test
\\
test

test

\end{document}

请注意,基本上注释掉任何现有包都可以解决问题,并删除$\EuScript{F}$数学模式公式前面的123公式。

什么原因导致数学模式后出现这种意外的缩进?

如何在不删除任何已加载的包且不在每个数学模式块后添加\noindent或注释符号( )的情况下修复该问题?%

答案1

David 指出,问题出在localmathalphabets处理上。它将代码放在显示之后(via \aftergroup),这样就无法$$看到后面的任何空格,也无法将其删除。因此它们会显示出来。

如果使用 LaTeX 数学显示(如\[...\]\begin{equation}等),情况就不是如此。

回答备注中的评论:并非所有 TeX 原语都受到 LaTeX 的官方支持,即使在内部代码中使用它们(但要特别小心,例如,在必要时在 LaTeX 代码中$$...$$遵循构造)。\ignorespaces

  • $$...$$不受官方支持 LaTeX
  • 它可能会导致问题,举一个简单的例子,应用fleqn类选项
  • 我们确实知道人们会使用它们,因此 LaTeX 会尽力使原始$$...$$作品尽可能地
  • 但建议是:不要使用它

在 LaTeX 中的问题得到解决之前,你可以使用以下快速解决方法

\setcounter{localmathalphabets}{0}

(或不$$...$$按建议使用)。为了得到最终解决方案,我在我们的错误跟踪器中打开了一个问题:https://github.com/latex3/latex2e/issues/886

答案2

空格不是缩进,而是行尾之后的单词空格$$。通常,空格会被忽略,$$但 aftergrouped 标记会干扰。

这是为避免数学组用尽而添加的新代码的问题。恢复数学字体的 aftergrouped 标记阻止了通常隐式的\igorespacesafter $$。我们可能会在格式中修复此问题,但请注意这不是错误:$$从未在 LaTeX 中支持语法,并且任何 LaTeX 显示数学形式(例如\[...\]或)\begin{equation}..\end{equation}都不会显示此行为。

此答案的早期版本通过在内部 LaTeX 代码中添加某个点来修复所示示例\igorespaces。这并不完全正确,因为它需要以显示数学为条件,这样您就不会在 中丢失空间$x$ and...。使该条件成为条件有点棘手:需要在其他地方进行更改,因此这里不显示。

如果您选择继续使用,$$则可以通过声明禁用新的数学字母功能来避免此问题:

\setcounter{localmathalphabets}{0}

直到底层问题得到解决,但请注意,如果您的文档使用超过 16 种数学字体(并且必须已经使用至少 14 种才能触发此问题),您将(与早期的 LaTeX 版本一样)收到错误。


您的文档使用如此多数学字体的原因之一是它们mathtext与 hyperref 的交互效果不佳。您的示例(如果添加\showoutput调试信息)显示,数学是使用PU仅适用于 PDF 书签的编码设置的。

.....\PU/pdf/m/n/10 1
.....\PU/pdf/m/n/10 2
.....\PU/pdf/m/n/10 3

您或许应该向软件包维护人员报告问题mathtext,并且不要将其与 hyperref 结合使用,除非问题已得到解决。

相关内容