ラテンモダンとコンピュータモダンの括弧のサイズが一致しない

ラテンモダンとコンピュータモダンの括弧のサイズが一致しない

Computer Modern から Latin Modern に切り替えると、区切り文字のサイズが変わることに気付きました。12pt フォント サイズのドキュメントでは、インライン数式が\bigl(大きすぎて収まらなくなり、その行が占める垂直方向のスペースが拡張されます。これは Computer Modern では問題ではありませんでした。これはバグでしょうか?

\documentclass[12pt]{article}

\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}
An equivalence class~$[a]_{\sim} \in A / {\sim}$ consists of all the elements
in $A$ that are mapped to $b = f(a)$. By the axiom of choice, there exists a
choice function~$c \colon A / {\sim} \to A$ which selects a representative
element of each equivalence class. There exists a
function~$h \colon B \to A / {\sim}$, so that
$h(b) = h\bigl(f(a)\bigr) = [a]_{\sim}$. This allows us to construct the
function~$g = c \circ h$, which is in fact a right-inverse of $f$.
\[
    \Biggl(\biggl(\Bigl(\bigl((X)\bigr)\Bigr)\biggr)\Biggr)
\]
\end{document}

コンピュータモダン: コンピュータモダン

ラテンモダン: ラテンモダン

Latin Modern の場合、4 行目の上に隙間がありますが、Computer Modern の場合、隙間はありません。


編集:

この郵便受けegreg による同じ問題に取り組んでいます。

答え1

歴史的な理由により、スケーラブルな区切り文字には固定サイズが使用されていますが、cm の場合でもこれは明らかに良いアイデアではありません (exscaleパッケージを参照)。ただし、ここでは、フォントを自然なスケール サイズで使用する場合、これはまったく適切ではありません。

ここに画像の説明を入力してください

\documentclass[12pt]{article}

\DeclareFontFamily{OMX}{lmex}{}
\DeclareFontShape{OMX}{lmex}{m}{n}{%
   <->lmex10%
   }{}
\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}



\show\big
\showthe\baselineskip
\setbox0\hbox{$\big($}\showthe\dimexpr\ht0+\dp0
\showoutput
\showbox0

An equivalence class~$[a]_{\sim} \in A / {\sim}$ consists of all the elements
in $A$ that are mapped to $b = f(a)$. By the axiom of choice, there exists a
choice function~$c \colon A / {\sim} \to A$ which selects a representative
element of each equivalence class. There exists a
function~$h \colon B \to A / {\sim}$, so that
$h(b) = h\bigl(f(a)\bigr) = [a]_{\sim}$. This allows us to construct the
function~$g = c \circ h$, which is in fact a right-inverse of $f$.
\[
    \Biggl(\biggl(\Bigl(\bigl((X)\bigr)\Bigr)\biggr)\Biggr)
\]
\end{document}

サイズは次のように表示されます

> 14.5pt.
l.17 \showthe\baselineskip

? 

> 14.40013pt.

わずか\big以下で\baselineskip


\big範囲内に収まるようにサイズを再定義すること\baselineskipで、\lineskip段落内で接着剤が使用されるのを防ぐことができます。

\documentclass[12pt]{article}

\usepackage{lmodern}
\usepackage{amsmath}

\begin{document}


\makeatletter
\renewcommand{\big}{\bBigg@{0.92}}
\makeatother
\show\big
\showthe\baselineskip
\setbox0\hbox{$\big($}\showthe\dimexpr\ht0+\dp0
\showoutput

An equivalence class~$[a]_{\sim} \in A / {\sim}$ consists of all the elements
in $A$ that are mapped to $b = f(a)$. By the axiom of choice, there exists a
choice function~$c \colon A / {\sim} \to A$ which selects a representative
element of each equivalence class. There exists a
function~$h \colon B \to A / {\sim}$, so that
$h(b) = h\bigl(f(a)\bigr) = [a]_{\sim}$. This allows us to construct the
function~$g = c \circ h$, which is in fact a right-inverse of $f$.
\[
    \Biggl(\biggl(\Bigl(\bigl((X)\bigr)\Bigr)\biggr)\Biggr)
\]
\end{document}

\show文書の上部に

> 14.5pt.
l.13 \showthe\baselineskip

? 

> 13.24792pt.
<to be read again> 

\big(14.5pt ベースライン kip よりも低いことを示しています。

.92 は経験的に選択されました。.93 ではフォントが次に使用可能なサイズにジャンプしますが、ここでは大きすぎます。

答え2

フォントを強制的に使用することで、問題を解決できます。のような設定をcmex使用します。exscaleamsfonts

\documentclass[12pt]{article}

\usepackage{lmodern}
\usepackage{amsmath}


\DeclareFontFamily{OMX}{lmex}{}
\DeclareFontShape{OMX}{lmex}{m}{n}{%
       <-7.5>cmex7%
    <7.5-8.5>cmex8%
    <8.5-9.5>cmex9%
    <9.5->cmex10%
}{}%

\begin{document}

% \showoutput

An equivalence class~$[a]_{\sim} \in A / {\sim}$ consists of all the elements
in $A$ that are mapped to $b = f(a)$. By the axiom of choice, there exists a
choice function~$c \colon A / {\sim} \to A$ which selects a representative
element of each equivalence class. There exists a
function~$h \colon B \to A / {\sim}$, so that
$h(b) = h\bigl({f}(a)\bigr) = [a]_{\sim}$. This allows us to construct the
function~$g = c \circ h$, which is in fact a right-inverse of $f$.
\[
    \Biggl(\biggl(\Bigl(\bigl((X)\bigr)\Bigr)\biggr)\Biggr)
\]
\end{document}

ここに画像の説明を入力してください

関連情報