LaTeX 错误:命令 \widering 已定义

LaTeX 错误:命令 \widering 已定义

我不知道为什么我在使用特定newtxmath包时不断收到此错误;我只想使用这个包,newtxtext这样我就可以为我的文本和数学字体使用 TNR。

是不是我的导入中存在一些我没有注意到的冲突?我尝试过查看并注释掉一些内容,其中有一些列为“必需”,这意味着它们对于我正在进行的项目至关重要。

\usepackage[utf8]{inputenc}
\usepackage{fontspec}
% \usepackage{times}
\usepackage{pdfpages}     % Required
\usepackage{amsmath}      % Required
\usepackage{amssymb}      % Required
\usepackage{mathabx}      % Required
\usepackage{framed}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{tcolorbox}
\usepackage{enumitem}
\usepackage{prooftrees}
% \usepackage{tipa}
\usepackage{fancyhdr}
\usepackage{syntax}
% \usepackage{baskervald}
% \usepackage{charter}
% \usepackage{mathpazo}
\usepackage[super]{nth} 
% \usepackage{etoolbox}
\usepackage[mathscr]{euscript}
\usepackage{simplebnf}
\usepackage{tikz-qtree}
\usepackage{newtxtext}
\usepackage{pifont}
\usepackage{newtxmath}
% \usepackage[varvw]{newtxmath}
% \usepackage{mathptmx}
% \usepackage{txfonts}

答案1

mathabx从来都不是至关重要的。而且,一般来说,你不能指望混合不同的数学符号字体​​,例如mathabxnewtxmath(还有mathpazo)。

如果你只是需要符号来自mathabx,导入它。顺便说一句,你不需要amssymb任何一个,因为它提供的符号已经被 覆盖newtxmath。不幸的是,prooftrees无论如何都会加载它,因此必须建立一些优先级。

\documentclass{article}

% to be loaded first in order to avoid conflicts
\usepackage{prooftrees}
\usepackage{amsthm}

% fonts
\usepackage[no-math]{fontspec}
\usepackage{newtxtext}
\usepackage[
  %varvw,
]{newtxmath}
\usepackage{pifont}

% math or related
\usepackage{amsmath}
\usepackage[mathscr]{euscript}
\usepackage{mathtools}
\usepackage{simplebnf}

% typesetting
\usepackage{fancyhdr}
\usepackage{pdfpages}
%\usepackage{framed}% <- really?
\usepackage{tcolorbox}
\usepackage{enumitem}
%\usepackage{syntax}% <- really
\usepackage[super]{nth} 

% import \dotdiv
\DeclareRobustCommand{\dotdiv}{\mathbin{\text{\mathabxdotdiv}}}
\newcommand{\mathabxdotdiv}{\usefont{U}{mathb}{m}{n}\symbol{"01}}

\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
  <-5.5> mathb5 <5.5-6.5> mathb6 <6.5-7.5> mathb7
  <7.5-8.5> mathb8 <8.5-9.5> mathb9 <9.5-11> mathb10
  <11-> mathb12 }{}
% end import

% fix \widering (remove \smash and add \vss)
\renewcommand{\widering}[1]{%
  \overset{%
    \vbox to .2ex{%
      \hbox{$\mathring{}$}%
      \vss
    }
  }{\overgroup{#1}}}
% end fix

\begin{document}

\[
\widering{abc}\dotdiv x
\]

\end{document}

我重新组织了包加载以避免冲突和重复。接下来我将展示如何导入单个符号\dotdiv

\widering还提供了对错误的定义的修复(每次调用时newtxmath都会产生四个溢出\vbox警告。

在此处输入图片描述

我注释掉了,framed因为你已经在加载tcolorbox提供更多信息的内容。关于syntax:这是一个非常老旧且长期无人维护的软件包,可能会产生冲突。你已经有了prooftrees并且simplebnf:你真的还需要吗syntax

相关内容