lmodern 和 fourier 不兼容吗?

lmodern 和 fourier 不兼容吗?

使用 lmodern 包时,我在数学模式中遇到了典型的字体大小问题:例如,我的一些方程式中的和不够大。为了解决这个问题,我遵循了 egreg 对以下问题的回答:tikzposter 中的 sum 符号太小

该解决方案适用于总和,但现在我的括号不再正确缩放。制作一个最小工作示例后,我注意到该问题与 fourier 包有关。所以我猜想某些地方存在不兼容问题。我知道 fourier 与其他数学字体包(如 mathptmx)不兼容,就我而言,它可能与 lmodern 有关。是否可以使用 fourier 和 lmodern 并避免我的方程式缩放问题?

梅威瑟:

\documentclass[a4paper, 12pt, twoside,openright]{report}
\usepackage{lmodern}
\usepackage[upright]{fourier}

% declare `cmex` to be arbitrary scalable
\DeclareFontShape{OMX}{cmex}{m}{n}{
  <-7.5> cmex7
  <7.5-8.5> cmex8
  <8.5-9.5> cmex9
  <9.5-> cmex10
}{}

\SetSymbolFont{largesymbols}{normal}{OMX}{cmex}{m}{n}
\SetSymbolFont{largesymbols}{bold}  {OMX}{cmex}{m}{n}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\begin{document}
    \begin{equation}
    U_{qq} = \sum_{i < j \leq N_m} q_i q_j \left[ \sideset{}{'}\sum_{\bm{n}} \frac{\text{erfc}(\alpha \lvert\bm{r}_{ij} + L\bm{n}\rvert)}{\lvert\bm{r}_{ij} + L\bm{n}\rvert} + \frac{1}{\pi L} \sum_{\bm{n} \not= 0} \frac{1}{n^2} \exp(- \frac{\pi^2 n^2}{\alpha^2 L^2} + \frac{2 \pi i}{L} \bm{n} \cdot \bm{r}_{ij}) \right]
    \end{equation}
\end{document}

傅立叶结果: 在此处输入图片描述

未经傅里叶变换的结果: 在此处输入图片描述

答案1

如果您\SetSymbolFont{largesymbols}{normal}{OMX}{cmex}{m}{n}在加载之后这样做fourier,那么您将覆盖大符号字体,结果将是一种可怕的混合。

如果在此之后加载,则加载lmodern毫无意义。此外,不存在与大符号不可扩展性相同的问题,因为它提供的字体在一开始就是完全可扩展的。fourierfourierlmodern

这是一个例子。

\documentclass[a4paper, 12pt, twoside,openright]{report}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage[upright]{fourier}

\begin{document}

\begin{equation}
U_{qq} = \sum_{i < j \leq N_m} q_i q_j \left[ \sideset{}{'}\sum_{\bm{n}} \frac{\text{erfc}(\alpha \lvert\bm{r}_{ij} + L\bm{n}\rvert)}{\lvert\bm{r}_{ij} + L\bm{n}\rvert} + \frac{1}{\pi L} \sum_{\bm{n} \not= 0} \frac{1}{n^2} \exp(- \frac{\pi^2 n^2}{\alpha^2 L^2} + \frac{2 \pi i}{L} \bm{n} \cdot \bm{r}_{ij}) \right]
\end{equation}

$\sum\displaystyle\sum${\Huge$\sum\displaystyle\sum$}

\end{document}

在此处输入图片描述

如您所见,字体大小适中。只是设计师选择的大求和符号比 Computer Modern 中的对应符号要小,在 Computer Modern 中,大符号默认为非常大的。

将求和符号的显示样式变大其实并不难,但我不推荐这样做。

\documentclass[a4paper, 12pt, twoside,openright]{report}

\usepackage[upright]{fourier}

\DeclareFontFamily{FMX}{futm-extra}{}
\DeclareFontShape{FMX}{futm-extra}{m}{n}{
   <-> s * [1.2] fourier-mex
}{}

\DeclareSymbolFont{extralargesymbols}{FMX}{futm-extra}{m}{n}
\DeclareMathSymbol{\sum}{\mathop}{extralargesymbols}{"50}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\DeclareMathOperator{\erfc}{erfc}

\begin{document}

\begin{equation}
U_{qq} = \sum_{i < j \leq N_m} q_i q_j 
  \biggl[ \sideset{}{'}\sum_{\bm{n}} 
    \frac{\erfc(\alpha \lvert\bm{r}_{ij} + L\bm{n}\rvert)}
         {\lvert\bm{r}_{ij} + L\bm{n}\rvert} + \frac{1}{\pi L}
    \sum_{\bm{n} \not= 0} \frac{1}{n^2} \exp(- \frac{\pi^2 n^2}{\alpha^2 L^2}
      + \frac{2 \pi i}{L} \bm{n} \cdot \bm{r}_{ij})
  \biggr]
\end{equation}

\end{document}

在此处输入图片描述

我使用了\biggland\biggr而不是\leftand \right。更重要的是 的定义\erfc,因为\text是错误的(更可接受的是\mathrm,但请参阅\mathrm 和 \operatorname 之间有什么区别?

答案2

lmodern这是混合和时出现问题的又一个例子fourier。(这取决于它们的加载顺序。)

\documentclass{article}
%\usepackage{lmodern,fourier} %plus symbol displays
\usepackage{fourier,lmodern}  %plus symbols does not display
\begin{document}
$a+b$
\end{document}

相关内容