mathabx 与其他包之间的冲突

mathabx 与其他包之间的冲突

我需要写入地球的符号,该符号位于包 mathabx 中。当我编译脚本时,出现以下错误:

! LaTeX Error: Command \iint already defined.
               Or name \end... illegal, see p.192 of the manual.

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

l.505 ...d{\iint}{\DOTSI\protect\MultiIntegral{2}}.

这看起来像是不同包之间的冲突。

下面是我的 Latex 脚本的示例,其中包含我正在使用的软件包:

\documentclass[11pt,a4paper]{article}

\usepackage[pdfencoding=auto,psdextra]{hyperref}

\usepackage{mathabx}

\usepackage{amsmath}


\begin{document}
  \begin{equation}
    U_{\Earth}
  \end{equation}
\end{document}

我不明白什么地方出了问题。

答案1

正如 egreg 所建议的,请参阅从不同字体导入单个符号用于从另一种字体导入单个字符。为了获得\Earth,我做了以下操作。如果您在 MWE 中取消注释这两行,\usepackage{fonttable}\fonttable{mathb10},您将获得一个打印出来的字体表,从中可以确定 是\Earth字形"43(十六进制)。这使我能够在序言中调用\DeclareMathSymbol{\Earth}{3}{mathb}{"43}来导入该符号。在此过程中可能需要进行一些反复试验……最初我搜索了matha字体系列,但没有找到\Earth,因此通过反复试验,我尝试了该mathb系列并找到了字形。\DeclareFontShape我从 Alan Munn 的答案中复制了所有内容,替换mathbmatha

\documentclass[11pt,a4paper]{article}

\usepackage[pdfencoding=auto,psdextra]{hyperref}

%\usepackage{mathabx}

\usepackage{amsmath}

% Setup the mathb font (from mathabx.sty)
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}

% Define a subset character from that font (from mathabx.dcl)
% to completely replace the \subset character, you can replace
% \varsubset with \subset

\DeclareMathSymbol{\Earth}{3}{mathb}{"43}
%\usepackage{fonttable}
\begin{document}
%\fonttable{mathb10}
  \begin{equation}
    U_{\Earth}
  \end{equation}
\end{document}

在此处输入图片描述

相关内容