IEEE Access LaTeX:在多列表中使用 \textbf{ } 会产生错误:参数 \bf 有一个额外的 }

IEEE Access LaTeX:在多列表中使用 \textbf{ } 会产生错误:参数 \bf 有一个额外的 }

相同的代码在其他寺庙中生成带有粗体选项的表格

\usepackage{multirow}
\begin{table*}[h!]
\centering
\caption{table1}
\begin{tabular}{|c|c|c|c|c|}
\hline
\textbf{Dataset}    & \textbf{Total News}    & \textbf{Fake}         &

此处显示错误:参数 \bf 有一个额外的 }

\multicolumn{2}{c|}{\textbf{Real}}       \\ \hline
\textbf{PolitiFact} & 72                     & 36                    & 
\multicolumn{2}{c|}{36}                  \\ \hline
\textbf{GossipCop}  & 100                    & 50                    & 
\multicolumn{2}{c|}{50}                  \\ \hline
\multicolumn{1}{|l|}{\textbf{}} & \textbf{Total Tweets} & \textbf{Fake Tweets} & \multicolumn{2}{c|}{\textbf{Real Tweets}} \\ \hline
\textbf{PolitiFact} & 5045                   & 3371                  & 
\multicolumn{2}{c|}{1674}                \\ \hline
\textbf{GossipCop}  & 3636                   & 2489                  & 
\multicolumn{2}{c|}{1147}                \\ \hline
\textbf{}           & \textbf{Total ML Rows} & \textbf{Fake Rows}    & 
\multicolumn{2}{c|}{\textbf{Real Rows}}  \\ \hline
\textbf{PolitiFact} & 4085                   & 2972                  & 
\multicolumn{2}{c|}{1113}                \\ \hline
\textbf{GossipCop}  & 3342                   & 2245                  & 
\multicolumn{2}{c|}{1097}                \\ \hline
\textbf{}           & \textbf{Total Users}   & \textbf{In Fake Only} & 
\textbf{In Real Only} & \textbf{In Both} \\ \hline
\textbf{PolitiFact} & 3865                   & 2763                  & 1081                  & 10               \\ \hline
\textbf{GossipCop}  & 2564                   & 1706                  & 858                   & 8                \\ \hline
\textbf{}           & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree}\\\textbf{Fake Followers}\end{tabular}   & \begin{tabular}[c]{@{}c@{}} 
\textbf{1st Degree}\\\textbf{Fake Followings}\end{tabular} & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree} \\\textbf{Real Followers}\end{tabular} & 
\begin{tabular}[c]{@{}c@{}}\textbf{1st Degree}\\\textbf{ Real Followings}\end{tabular} \\ \hline
\textbf{PolitiFact} & 312M                    & 27M                  & 534M                  & 19M               \\ \hline
\textbf{GossipCop}  & 209M                   & 19M                  & 378M                   & 12M                \\ \hline
\end{tabular}
\end{table}

答案1

新版本ieeeaccess.cls确实很坏一组定义。

让我们看看会发生什么。该类基于IEEEtran.cls启用旧字体命令(如)的类\bf。这种(愚蠢的)想法允许用户执行${\bf x}$已被弃用超过 25 年的类似操作。

因此,开发人员ieeeaccess.cls认为这并不好,但开始这样做

\def\textbf#1{{\bf #1}}

原因很简单,就是让强大的命令变得脆弱引入已弃用的命令的用法。哦,不,开发人员说,我们重新定义 \bf

就在这儿!尽显其辉煌!

\AtBeginDocument{%
\gdef\operator@encoding{T1}
\gdef\encodingdefault{T1}
%\def\it{\fontencoding{T1}\selectfont}
\long\def\bf#1{\ifmmode\mathbf{#1}\message{Please use mathbf in math mode instead of bf.}\else\fontencoding{T1}\fontseries{b}\selectfont{#1}\fi}
\long\def\rm#1{\ifmmode\mathrm{#1}\message{Please use mathrm in math mode instead of rm.}\else\fontencoding{T1}\selectfont{#1}\fi}
}

现在,只需一个非常简单的示例即可轻松复制您的错误,即

\documentclass{ieeeaccess}
\begin{document}
\textbf{}
\end{document}

如果开发人员(正确地)不希望作者使用,\bf他们应该简单地禁用它,而不是依赖错误的启​​发式方法来“修复”输入。

问题是什么?\textbf{}被翻译成{\bf}\bf希望找到一个参数,但下一个标记是}。因此 TeX 被迫发出错误消息

! Argument of \bf has an extra }.

你可以用两种方法解决这个问题:第一种方法很简单,永远不要使用\textbf{},但括号之间一定要有东西。毕竟,

 \multicolumn{1}{|l|}{\textbf{}}

是一种复杂的说法

 \multicolumn{1}{|l|}{}

实际上可以将其全部删除。

第二种方式:恢复正确的定义\textbf

\DeclareTextFontCommand{\textbf}{\bfseries}
\DeclareTextFontCommand{\textit}{\itshape}

在文档序言中。我还添加了\textit,它在类中以类似的方式处理。您可能还想这样做

\AtBeginDocument{%
  \let\bf\undefined
  \let\it\undefined
  \let\rm\undefined
}

因此,如果您使用合著者发送的代码,而该合著者不知道该命令已被弃用了二十五年,那么您将收到更好的错误消息。


注意:有人可能会发现这个答案的开头陈述过于严厉。事实上,我发现它甚至过于温和。

答案2

该类ieeeaccess重新定义\textbf为:

\def\textbf#1{{\bf #1}}

这很奇怪,因为\bf在 LaTeX 中已弃用。应该使用\bfseries

您可以将以下行放在序言的末尾。

\def\textbf#1{{\bfseries #1}}

有了这一行,就没有错误了。

\documentclass{ieeeaccess}
\usepackage{graphicx} %<<<<<<<<<<<<<<< needed for ieeeaccess
\usepackage{multirow}

\def\textbf#1{{\bfseries #1}}

\begin{document}

    \begin{table}[h!]
        \centering
        \caption{table1}
        \begin{tabular}{|c|c|c|c|c|}
            \hline
    \textbf{Dataset}    & \textbf{Total News}    & \textbf{Fake}         &
    \multicolumn{2}{c|}{\textbf{Real}}       \\ \hline
    \textbf{PolitiFact} & 72                     & 36                    & 
    \multicolumn{2}{c|}{36}                  \\ \hline
    \textbf{GossipCop}  & 100                    & 50                    & 
    \multicolumn{2}{c|}{50}                  \\ \hline
    \multicolumn{1}{|l|}{\textbf{}} & \textbf{Total Tweets} & \textbf{Fake Tweets} & \multicolumn{2}{c|}{\textbf{Real Tweets}} \\ \hline
    \textbf{PolitiFact} & 5045                   & 3371                  & 
    \multicolumn{2}{c|}{1674}                \\ \hline
    \textbf{GossipCop}  & 3636                   & 2489                  & 
    \multicolumn{2}{c|}{1147}                \\ \hline
    \textbf{}           & \textbf{Total ML Rows} & \textbf{Fake Rows}    & 
    \multicolumn{2}{c|}{\textbf{Real Rows}}  \\ \hline
    \textbf{PolitiFact} & 4085                   & 2972                  & 
    \multicolumn{2}{c|}{1113}                \\ \hline
    \textbf{GossipCop}  & 3342                   & 2245                  & 
    \multicolumn{2}{c|}{1097}                \\ \hline
    \textbf{}           & \textbf{Total Users}   & \textbf{In Fake Only} & 
    \textbf{In Real Only} & \textbf{In Both} \\ \hline
    \textbf{PolitiFact} & 3865                   & 2763                  & 1081                  & 10               \\ \hline
    \textbf{GossipCop}  & 2564                   & 1706                  & 858                   & 8                \\ \hline
    \textbf{}           & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree}\\\textbf{Fake Followers}\end{tabular}   & \begin{tabular}[c]{@{}c@{}} 
        \textbf{1st Degree}\\\textbf{Fake Followings}\end{tabular} & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree} \\\textbf{Real Followers}\end{tabular} & 
    \begin{tabular}[c]{@{}c@{}}\textbf{1st Degree}\\\textbf{ Real Followings}\end{tabular} \\ \hline
    \textbf{PolitiFact} & 312M                   & 27M                  & 534M                   & 19M               \\ \hline
    \textbf{GossipCop}  & 209M                   & 19M                  & 378M                   & 12M                \\ \hline
\end{tabular}
\end{table} 

\EOD  %<<<<<<<<<<<<<<< needed for ieeeaccess

\end{document}

上述代码的输出

然而,本着这种精神的表格booktabs可能会更清晰易读......

答案3

ieeeaccess只要你记得在 \EOD之前添加,你发布的表就可以使用该类很好地编译\end {document}

工作目录中应包含以下四个文件:

ieeeaccess.cls    
IEEEtran.cls    
bullet.png    
notaglinelogo.png

A

% !TeX TS-program = pdflatex

\documentclass{ieeeaccess}
\usepackage{graphicx} %<<<<<<<<<<<<<<< needed for ieeeaccess
\usepackage{multirow}

\begin{document}
    \begin{table}[h!]
        \centering
        \caption{table1}
        \begin{tabular}{|c|c|c|c|c|}
            \hline
    \textbf{Dataset}    & \textbf{Total News}    & \textbf{Fake}         &
    \multicolumn{2}{c|}{\textbf{Real}}       \\ \hline
    \textbf{PolitiFact} & 72                     & 36                    & 
    \multicolumn{2}{c|}{36}                  \\ \hline
    \textbf{GossipCop}  & 100                    & 50                    & 
    \multicolumn{2}{c|}{50}                  \\ \hline
    \multicolumn{1}{|l|}{\textbf{}} & \textbf{Total Tweets} & \textbf{Fake Tweets} & \multicolumn{2}{c|}{\textbf{Real Tweets}} \\ \hline
    \textbf{PolitiFact} & 5045                   & 3371                  & 
    \multicolumn{2}{c|}{1674}                \\ \hline
    \textbf{GossipCop}  & 3636                   & 2489                  & 
    \multicolumn{2}{c|}{1147}                \\ \hline
    \textbf{}           & \textbf{Total ML Rows} & \textbf{Fake Rows}    & 
    \multicolumn{2}{c|}{\textbf{Real Rows}}  \\ \hline
    \textbf{PolitiFact} & 4085                   & 2972                  & 
    \multicolumn{2}{c|}{1113}                \\ \hline
    \textbf{GossipCop}  & 3342                   & 2245                  & 
    \multicolumn{2}{c|}{1097}                \\ \hline
    \textbf{}           & \textbf{Total Users}   & \textbf{In Fake Only} & 
    \textbf{In Real Only} & \textbf{In Both} \\ \hline
    \textbf{PolitiFact} & 3865                   & 2763                  & 1081                  & 10               \\ \hline
    \textbf{GossipCop}  & 2564                   & 1706                  & 858                   & 8                \\ \hline
    \textbf{}           & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree}\\\textbf{Fake Followers}\end{tabular}   & \begin{tabular}[c]{@{}c@{}} 
        \textbf{1st Degree}\\\textbf{Fake Followings}\end{tabular} & \begin{tabular}[c]{@{}c@{}} \textbf{1st Degree} \\\textbf{Real Followers}\end{tabular} & 
    \begin{tabular}[c]{@{}c@{}}\textbf{1st Degree}\\\textbf{ Real Followings}\end{tabular} \\ \hline
    \textbf{PolitiFact} & 312M                   & 27M                  & 534M                   & 19M               \\ \hline
    \textbf{GossipCop}  & 209M                   & 19M                  & 378M                   & 12M                \\ \hline
\end{tabular}
\end{table} 

\EOD  %<<<<<<<<<<<<<<< needed for ieeeaccess

\end{document}

使用 \filelist

*File List*

ieeeaccess.cls    
IEEEtran.cls    2015/08/26 V1.8b by Michael Shell
  ot1ptm.fd    2001/06/04 font definitions for OT1/ptm.
   ifpdf.sty    2019/10/25 v3.4 ifpdf legacy package. Use iftex instead.
   iftex.sty    2020/03/06 v1.0d TeX engine tests
 xkeyval.sty    2020/11/20 v2.8 package option processing (HA)
 xkeyval.tex    2014/12/03 v2.7a key=value parser (HA)
   color.sty    2020/02/24 v1.2b Standard LaTeX Color (DPC)
   color.cfg    2016/01/02 v1.6 sample color configuration
  pdftex.def    2020/10/05 v1.2a Graphics/color driver for pdftex
spotcolor.sty    2006/11/15 v1.2 Package for adding Spot Color support to pdfLa
TeX.
graphics.sty    2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg    2016/06/04 v1.11 sample graphics configuration
graphicx.sty    2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR)
multirow.sty    2021/03/15 v2.8 Span multiple rows of a table
l3backend-pdftex.def    2021-03-18 L3 backend support: PDF output (pdfTeX)
   t1ptm.fd    2001/06/04 font definitions for T1/ptm.
supp-pdf.mkii
epstopdf-base.sty    2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg    2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
   t1phv.fd    2020/03/25 scalable font definitions for T1/phv.
  bullet.png    Graphic file (type png)
notaglineLogo.png    Graphic file (type png)
 ***********

使用 MiKTex

This is pdfTeX, Version 3.141592653-2.6-1.40.22 (MiKTeX 21.3) (preloaded format=pdflatex 2021.4.2)  1 MAY 2021 11:37
entering extended mode
**./ieee_v3.tex
(ieee_v3.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-02-18> (ieeeaccess.cls (IEEEtran.cls
Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell

相关内容