仅使用 4 个包时,版本中使用的数学字母过多

仅使用 4 个包时,版本中使用的数学字母过多

这个非常奇怪。经过一番努力,我把范围缩小到 4 个包的组合。当我评论这 4 个包中的任何一个,错误消失。

平均能量损失

\documentclass[12pt,notitlepage]{article}

\usepackage{newtxmath}
\usepackage{siunitx}
\usepackage{bm}
\usepackage{esvect}

\begin{document} %equation is below is auto-generated by Maple 18.02
\[
 \left\{ y \left( x \right) =\int \!{\frac {1}{\sqrt {{\it a4}\,{x}^{4
}+{\it a3}\,{x}^{3}+{\it a2}\,{x}^{2}+{\it a1}\,x+{\it a0}}}}\,{\rm d}
x+{\it \_C1} \right\} 
\]

\end{document}

现在

pdflatex
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded 
format=pdflatex)
 restricted \write18 enabled.
entering extended mode
....
(/usr/local/texlive/2014/texmf-dist/tex/latex/newtx/untxsyc.fd)
(/usr/local/texlive/2014/texmf-dist/tex/latex/esvect/uesvect.fd)
(/usr/local/texlive/2014/texmf-dist/tex/latex/tex-gyre/t1qhv.fd)
(/usr/local/texlive/2014/texmf-dist/tex/latex/newtx/t1ntxtt.fd)

! LaTeX Error: Too many math alphabets used in version normal.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.12 ...}+{\it a2}\,{x}^{2}+{\it a1}\,x+{\it a0}}}
                                                  }\,{\rm d}
? 

现在,我可以理解包含一个包会导致错误。但是为什么包含这 4 个看似完全不相关的包会导致错误?包可能与bm有什么关系siunitx?与newtxmath有什么关系esvect?这一切对我来说似乎都很随机。

在装有 Miktex 的 Windows 上也会发生这种情况:

Mathematica 图形

答案1

你只需要提示bm一下你正在使用很多字母:

\documentclass[12pt,notitlepage]{article}

\usepackage{newtxmath}
\usepackage{siunitx}
\newcommand\bmmax{2}
\usepackage{bm}

\usepackage{esvect}

\begin{document} %equation is below is auto-generated by Maple 18.02
\[
 \left\{ y \left( x \right) =\int \!{\frac {1}{\sqrt {{\it a4}\,{x}^{4
}+{\it a3}\,{x}^{3}+{\it a2}\,{x}^{2}+{\it a1}\,x+{\it a0}}}}\,{\rm d}
x+{\it \_C1} \right\} 
\]

\end{document}

答案2

TeX 只能容纳 16 个数学字母。如果您加载定义不同数学字母的包,则效果是累积的。因此,虽然其中任何 3 个包可能会使总数少于 16,但所有 4 个包可能会使其超过 16,而 TeX 会抱怨,因为它无法处理您尝试定义的第 17 个。

如果您只需要这些包中的一些字母,您可以从包中获取您需要的位代码,这样就有可能将总数恢复到 16 以下,而无需放弃任何您想要使用的内容。

对于这个特定的方程,以下方法有效:

\documentclass[12pt,notitlepage]{article}

\usepackage{newtxmath}
\usepackage{siunitx}
\usepackage{bm}
\usepackage{esvect}

\begin{document} %equation is below is auto-generated by Maple 18.02

\[
\left\{ y \left( x \right) =\int \!{\frac {1}{\sqrt {a4\,{x}^{4
      }+a3\,{x}^{3}+a2\,{x}^{2}+a1\,x+a0}}}\,{\mathrm{d}}
x+\_C1 \right\}
\]

\end{document}

但在这种情况下,数字当然不再以斜体显示。

答案3

只是为了好玩,假设你的 Maple 转换器总是使用

{\it ...}

看起来是这样,这里有一个避免这个问题的方法对于这个等式

\documentclass[12pt,notitlepage]{article}

\usepackage{amsmath}
\usepackage{newtxmath}
\usepackage{siunitx}
\usepackage{bm}
\usepackage{esvect}

\let\it\relax
\DeclareRobustCommand\it{%
  \ifmmode
    \expandafter\mmit
  \else
    \normalfont\itshape
  \fi
}
\def\mmit{%
  \egroup % end the started group
  \iftrue\expandafter\text\expandafter{\expandafter\itshape\else}\fi
}

\begin{document} %equation is below is auto-generated by Maple 18.02
\[
 \left\{ y \left( x \right) =\int \!{\frac {1}{\sqrt {{\it a4}\,{x}^{4
}+{\it a3}\,{x}^{3}+{\it a2}\,{x}^{2}+{\it a1}\,x+{\it a0}}}}\,{\rm d}
x+{\it \_C1} \right\} 
\]

\end{document}

在此处输入图片描述

相关内容