解决Latex编译报错:Command `\Bbbk‘ already defined. ...ol{\Bbbk} {\mathord}{AMSb}{“7C}

博客详细介绍了在使用ACM最新LaTeX模板时遇到的由于newtxmath和amssymb包中Bbbk命令重复定义导致的问题。解决方案是在usepackage{amssymb}

问题原因:latex文本中,引入了多个包,同一个函数在多个包中存在重复定义,所以出现这个问题。

问题解决: 在\usepackage{amssymb}前加上\let\Bbbk\relax使得前面(即newtxmath包中)定义的Bbbk失效。


Latex template 版本


        使用的是ACM 最新的latex模板:
        \ProvidesClass{acmart}
        [2020/02/22 v1.70 Typesetting articles for the Association for Computing Machinery]场景例子

\documentclass[sigconf]{acmart}

\usepackage{times}%, mathptm}
\usepackage{moreverb}
\usepackage{graphicx}
\usepackage{mathrsfs}
\usepackage{bm}
\usepackage{url}
\usepackage{amsmath}
\usepackage{amssymb}
...

问题的原因:


由于acmart.cls格式文件中引入了newtxmath包,该包(即newtxmath.sty)中定义了’\Bbbk’命令:\re@DeclareMathSymbol{\Bbbk}{\mathord}{AMSm}{107} % was 124;
同时我在preamble中用\usepackage{amssymb}导入了amssymb包,其中也定义了’\Bbbk’命令:\DeclareMathSymbol{\Bbbk} {\mathord}{AMSb}{"7C}。

acmart.cls格式文件部分内容如下:

...
\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
    have the newtxmath package installed.  Please upgrade your
    TeX}\@ACM@newfontsfalse}
\if@ACM@newfonts
  \RequirePackage[T1]{fontenc}
\ifxetex
  \RequirePackage[tt=false]{libertine}
  \setmonofont{inconsolata}
\else
  \RequirePackage[tt=false, type1=true]{libertine}
\fi
\RequirePackage[varqu]{zi4}
\RequirePackage[libertine]{newtxmath}
\fi
...

最终修改如下:

\documentclass[sigconf]{acmart}

\usepackage{times}%, mathptm}
\usepackage{moreverb}
\usepackage{graphicx}
\usepackage{mathrsfs}
\usepackage{bm}
\usepackage{url}
\usepackage{amsmath}
\let\Bbbk\relax         %%redefined in newtxmath.sty
\usepackage{amssymb}
...

在\usepackage{amssymb}前加上\let\Bbbk\relax使得前面(即newtxmath包中)定义的Bbbk失效。

原文链接:https://blog.youkuaiyun.com/haifeng_gu/article/details/105768155

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值