\in 的垂直對齊

\in 的垂直對齊

使用此代碼可以看出 epsilon 符號和 R 垂直未對齊。有沒有辦法解決這個問題?

展示

微量元素:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$ \forall x \in {\rm I\!R} $, $x$
\end{document}

答案1

可以看出epsilon符號和R在垂直方向上沒有對齊

首先,你的截圖確實不是顯示\epsilon\varepsilon。相反,它顯示由巨集在 TeX 和 LaTeX 中產生的符號\in。當大聲讀出時,這個符號通常發音(英語)為“in”——因此巨集的名稱...——或“is element of”。其次,在 LaTeX 中,通常最好將表示「實數集」的字母寫成\mathbb{R}

在此輸入影像描述

旁白:{\rm I\!R}大約從 1994 年 LaTeX2e 取代 LaTeX2.09 起,書寫就被棄用了。恰好這樣的寫法{\rm I\!R}在某些 LaTeX 文檔類別中仍然有效——但在其他類別中則不然。如果您關心程式碼的可移植性和長期可維護性,您不應該再編寫\rm\it\bf\sf\tt相反,請寫(顯然是在數學背景下)\mathrm, \mathit, \mathbf,\mathsf\mathtt。如果你堅持不是使用 時\mathbb{R},您應該將符號寫為\mathrm{I}\!\mathrm{R},而不是{\rm I\!R}

\in回到應該如何定位的問題。在精美的排版中——畢竟這是 TeX 和 LaTeX 渴望實現的目標——有單獨的排版規則字母(拉丁語和希臘語,小寫和大寫)一方面用於排版非字母符號(包括\in+\times\div\sum等)。考慮以下字母和非字母符號列表,這些符號是使用計算機現代(襯線)數學系列繪製的。

在此輸入影像描述

字母符號顯示在左側(通過\Pi):它們全部對齊在一條公共的、不可見的線上,稱為基線。 (另外兩條重要的線是 x 高度線和大寫高度線。)相反,非字母符號是不是與基線對齊。相反,它們的定位方式是將它們垂直居中在一條公共線上,該線通常稱為數學線或數學軸。 (您可能會問,數學軸是什麼以及在哪裡?它是一條位於基線和 x 高度線之間的假想水平線。 、+-“減號”)和的水平部分\div放置在數學軸上。)請注意,希臘大寫字母\Sigma\Pi位於基線上,而非字母符號\sum\prod則不然。這不僅是\sum身高的問題\Sigma;的一部分\sum明顯低於基線,根據設計, 的情況並非如此\Sigma

一些非字母符號(最明顯的是)-永遠不會跨越基線,而其他符號(包括\in)確實有部分到達基線以下。順便說一句,您是否注意到符號的+最低部分比 的最低部分更低於基線\in?所以呢?沒什麼大不了。

符號\in應該有多大是字體設計者必須做出的選擇。在我看來,製作\in相當大的一個很好的(印刷)原因,以便一部分必須位於(字母)基線下方,正是為了避免符號含義的任何視覺歧義:讀者永遠不必困惑是否他們盯著的符號表示「是…的元素」或「epsilon」。同樣,製作 和 的一個很好的印刷原因\sum是比和\prod更大\Sigma\Pi為了避免任何歧義。意義的符號。


以下螢幕截圖說明了不同的字體設計不僅影響各種數學字形的形狀,而且影響數學軸相對於基線和 x 高度線的放置位置。 [順便說一句,畫線代碼是改編自(盜來的?!)保羅·加博里特的回答對於這個問題,為什麼 $x \in X$ 中的所有符號都有自己的基準?該信用的就信用!

電腦現代(拉丁現代非常相似):

在此輸入影像描述

Times and mtpro2math 字型包(Times Roman 克隆):

在此輸入影像描述

newtxtextnewtxmath(另一個時代羅馬克隆):

在此輸入影像描述

newpxtextnewpxmath(帕拉蒂諾克隆):

在此輸入影像描述

顯然,這些字體都有其特殊之處。不過,所有數學 glpyh 的共同點是它們都在各自的數學軸上垂直居中。


產生上面顯示的前兩個螢幕截圖的程式碼:

\documentclass[border=1pt]{standalone}
\usepackage{amsfonts} % for "\mathbb"
\newcommand{\myR}{\mathrm{I}\!\mathrm{R}}
\begin{document}
$\mathrm{e}e\epsilon\varepsilon{\in}\ \mathbb{R}\myR$

%$a\alpha e\epsilon\varepsilon X\Sigma\Pi{\subset}{\in}{-}{+}{\times}{\div}{\sum}{\prod}{\int}\displaystyle{\sum}{\prod}{\int}$
\end{document}

產生帶有各種水平線的螢幕截圖的程式碼:

\documentclass{article}

%% Uncomment as needed:
%\usepackage{times,mtpro2}
%\usepackage{newtxtext,newtxmath}
\usepackage{newpxtext,newpxmath}

\usepackage[margin=0pt,
   paperwidth=3.35cm,paperheight=0.5cm]{geometry}
\usepackage{xcolor,graphicx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[scaled=0.85]{helvet}

% Draw a line showing a font metric
%  #1 color, #2 vertical position, #3 label
\newcommand{\drawmetric}[3]{%
  \rlap{%
    \color{#1}\rule[#2]{2.9cm}{0.05pt}%
    \raisebox{#2}{\scalebox{0.3}{\tiny\selectfont\sffamily #3}}%
  }%
}
\newcommand\drawallmetrics{%
  \drawmetric{red}{0pt}{baseline}%
  \drawmetric{blue}{1ex}{x-height}%
  \drawmetric{red}{\fontcharht\font`X}{cap-height}%
  \drawmetric{cyan}{\the\fontdimen22\textfont2}{math axis}%
}
\begin{document}

% Draw the metrics and some text
\noindent\rlap{ % 
  $\mathrm{Hx}e\epsilon\varepsilon{\in}{\subset}{\subseteq}{+}{\times}\Sigma{\sum}$}
  \drawallmetrics{}
\end{document}

答案2

  • 方程式排版的標準(正確)方法在下面 mwe 的第一個範例中。
  • 你喜歡發明新規則嗎?例如下面 mwe 中的第二個例子?

\documentclass{article}
\usepackage{amssymb}

\begin{document}
    \[
\forall x \in \mathbb{R}
    \]
    \[
\forall x \raisebox{1pt}{$\;\in\;$} \mathbb{R}
    \]
\end{document}

在此輸入影像描述

正如您從 mwe 中看到的,沒有標準化的方法可以假設按照您想要的方式進行排版就是好的排版。我建議您閱讀一些有關數學排版的介紹文字,latex例如維基/LaTeX/數學進而wiki/LaTeX/Advanced_Mathematics

答案3

您可以使用該amsfonts套件透過巨集存取黑板粗體字體\mathbb{}

\documentclass{article}

\usepackage{amsmath,amsfonts}


\begin{document}

You can write
\[
  \forall x \in {\rm I\!R}
\]
or better
\[
  \forall x \in \mathrm{I}\!\mathrm{R}
\]

But the recommended way is
\[
  \forall x \in \mathbb{R}
\]

\end{document}

答案4

只需使用不同的字體即可。我想您有使用 Microsoft Word 的經驗,其中使用 Cambria Math 來輸入方程式。所以:

\documentclass{standalone}
\usepackage[T1]{fontenc}
\usepackage[]{amsmath}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Cambria}
\usepackage[math-style=TeX]{unicode-math}
\setmathfont{Cambria Math}
\begin{document}
\bgroup
\everymath{\displaystyle}
$\forall x \in \mathbb{R}$
\egroup
\end{document}

這無需任何調整即可產生所需的結果:

在此輸入影像描述

相關內容