
Я заметил, что размеры разделителей меняются при переключении с 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 над четвертой строкой имеется пробел, которого нет в случае 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,5 пунктов.
Значение .92 выбрано эмпирически: .93 заставляет шрифт перейти к следующему доступному размеру, который в данном случае слишком велик.
решение2
Вы можете решить свою проблему, принудительно используя шрифты cmex
. Я буду использовать exscale
подобную настройку из amsfonts
.
\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}