僅使用 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 上也會發生這種情況:

數學圖形

答案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}

在此輸入影像描述

相關內容