消除方程中波形符號和字母之間的空格

消除方程中波形符號和字母之間的空格

再見,我有一個情況需要解決,有兩種不同的波浪號行為。第一個看起來很正常,在常規文本中,類似於:

... some text $\sim$A then some text ...

但在方程式模式下(甚至在文本中的方程式美元符號內),波浪號和字母之間有一個空格(請參見下面的螢幕截圖):

... some text $\sim{A}$ then some text ...

在此輸入影像描述

有沒有辦法在方程式模式下消除該空間?

我需要它用於方程模式:

\[ \sim{A} = ... \]

如果相關的話,在序言中我使用該套件lmodern來使用 CM10 字體,以及其他一些處理方程式的內容:mathptmx, amssymb, amsmath, mathspec並使用 xelatex 解析文字。

答案1

預設的“數學類型”\simmathrel,即關係運算符的“數學類型”。 (類型運算符的另一個範例mathrel=。)字母的預設數學類型Amathord(“普通數學”)。正如您「發現」的那樣,TeX 會自動在\thickmuskip類型mathrel和的元素之間分別插入一些空格(數量為) mathord

如果你這樣做不是希望和\sim之間有空格A,只需寫

{\sim}A

此設定將 的數學類型變更\simmathord,TeX 也這樣做不是在 類型的元素之間插入額外的空格mathord

答案2

通常\sim是這樣的關係=。所以需要空間:

\documentclass{article}

\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}
\[ A = B \]
\[ A \sim B \]
\end{document}

\sim 關係

但您也可以將其定義為普通符號:

\documentclass{article}

\usepackage{lmodern}
\usepackage{amsmath}
\mathchardef\simsym"0218
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}

模擬普通

有關數學課程的更多信息,請參閱,例如TeX 按主題第 38.3 和 23.3 節。

除了使用之外,\mathchardef您還可以使用

\newcommand*{\simsym}{\mathord\sim}

定義\simsym為 的普通符號變體\sim

\documentclass{article}

\usepackage{lmodern}
\usepackage{amsmath}
\newcommand*{\simsym}{\mathord\sim}
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}

結果與上面完全相同,並且與

\documentclass{article}

\usepackage{lmodern}
\usepackage{amsmath}
\newcommand*{\simsym}{{\sim}}% note the extra {…}
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}

相關內容