列表中使用标题时出错,IEEE Access 模板

列表中使用标题时出错,IEEE Access 模板

我正在使用IEEE Access Latex 模板我在列表环境中使用该命令时遇到错误caption。使用 IEEEtran 模板时不会发生这种情况。

例如,此代码有效:

\documentclass{ieeeaccess}
\usepackage{graphicx} 
\usepackage{listings}
\usepackage{lipsum}

\begin{document}
\lipsum[1]
\begin{lstlisting}[label=listing1, language=C]
int main(void)
{
        printf("Hello world\n");
}
\end{lstlisting}
\end{document}

但下面却不是这样,唯一的区别就是caption命令:

\documentclass{ieeeaccess}
\usepackage{graphicx} 
\usepackage{listings}
\usepackage{lipsum}

\begin{document}
\lipsum[1]
\begin{lstlisting}[label=listing1, language=C, caption=Listing 1]
int main(void)
{
        printf("Hello world\n");
}
\end{lstlisting}
\end{document}

事实上,结果是一系列这样的错误:

! 未定义控制序列。\@makecaption ...capfont #2\strut }\ifdim \xfigwd \columnwidth \setbox \@te... l.12 ...el=listing1, language=C, caption=Listing1]

!缺失数字,视为零。

l.12 ...el=listing1,语言=C,标题=Listing1]

! 非法计量单位(插入 pt)。

l.12 ...el=listing1,语言=C,标题=Listing1]

! 当前页面上发现无限胶合收缩。\@makecaption ...\ }}{\vss \raggedright \noindent \unhbox \@tempboxa \figcap... l.12 ...el=listing1, language=C, caption=Listing1]

答案1

ieeeaccess重新定义 caption 命令并使用通常从图形或表格环境中设置的长度\xfigwd。由于您的列表不使用这两种环境,因此您必须手动执行此操作:

\documentclass{ieeeaccess}
\usepackage{graphicx} 
\usepackage{listings}
\usepackage{lipsum}

\begin{document}
\lipsum[1]

\begingroup
\newlength{\xfigwd}
\setlength{\xfigwd}{\textwidth}
\begin{lstlisting}[label=listing1, language=C, caption={hgd}]
int main(void)
{
        printf("Hello world\n");
}
\end{lstlisting}
\endgroup
\EOD

\end{document}

在此处输入图片描述

答案2

如果有人仍在努力解决这个问题,以下是我的解决方案:

把你的清单放进去minipage,用删除新段落的缩进\hspace*{-\parindent}%(这是来自为什么小页面在左侧缩进?

\hspace*{-\parindent}%
\begin{minipage}[c]{\linewidth}
\begin{lstlisting}[label=listing1, language=C, caption={hgd}]
int main(void)
{
        printf("Hello world\n");
}
\end{lstlisting}
\end{minipage}

\makeatletter并在包含listings包之后和之前添加此代码片段\begin{document}

\documentclass{ieeeaccess}
\usepackage{graphicx} 
\usepackage{listings}
\usepackage{lipsum}

\makeatletter
\def\lst@makecaption{%
  \def\@captype{table}%
  \@makecaption
}
\makeatother

\begin{document}

它使ieeeaccess列表的标题像表格的标题一样处理,并在标题和列表之间添加额外的垂直空间。此代码片段取自:IEEE Latex 列表

相关内容