.cls 编辑使 at 符号 (@) 出现在章节之间的“表格列表”和“图片列表”中

.cls 编辑使 at 符号 (@) 出现在章节之间的“表格列表”和“图片列表”中

我正在格式化我的论文,并一直使用为其创建了自定义样式文件的模板。该模板的封面内容,例如“表格列表”、致谢等,列在目录中。这部分将被删除。在这个封面中,我还需要将标题从“全大写”更改为小写、粗体和左对齐。在不了解样式文件格式的情况下,我能够在 .cls 文件中进行所有这些更改,但在表格列表和图表列表中的章节之间留下了 at 符号。

在此处输入图片描述

我注释掉了 JAH 列出的两行。

\def\listoftables{%
  \@restonecolfalse%
  \if@twocolumn\@restonecoltrue\onecolumn\fi%
  \newpage%
  \centerline{\expandafter
%\uppercase %remove JAH
\bfseries%
\expandafter{
\begin{flushleft}%
\listtablename}
\end{flushleft}%
}%
  \bigskip%
  \phantomsection%
%  \addcontentsline{toc}{frontmatter}{\protect\numberline{}\listtablename }%
%%This removes item from TOC. JAH
  % This group overloads \numberline to output ``Table 1.3'' instead of ``1.3''
  \begingroup%
    \let\ORIG@numberline\numberline%
    \renewcommand*{\numberline}[1]{\ORIG@numberline{\tablename~##1:}}%
    {\ssp\@starttoc{lot}}%
    \if@restonecol\twocolumn\fi%
  \endgroup %
  }

我正在使用基本的反复试验来进行这些更改,我需要一些了解样式文件代码 .cls .sty 的人的帮助

谢谢,亚当

答案1

这些@不是由显示的代码生成的,可能是您的\chapter命令正在向文件写入某些内容.lot。显示该文件中的内容会很有用(更有用的是可重现的示例)

标题代码是

  \centerline{\expandafter
%\uppercase %remove JAH
\bfseries%
\expandafter{
\begin{flushleft}%
\listtablename}
\end{flushleft}%
}%

有什么理由不简单地使用呢\section*{\listtablename}

\centerline并不是真正的 latex 命令,它是纯 TeX 的遗留,通常不会生成与文档中其他标题相匹配的内容。如果您使用它,内容必须是水平模式材料(它就像\hbox),因此不能包含flushleft环境。因为它会产生错误

! LaTeX Error: Something's wrong--perhaps a missing \item.

请注意,发生错误后,pdf 中的任何输出基本上都是随意的TeX 的错误修正并非旨在产生合理的排版输出,而仅仅是为了使其恢复到可以处理更多文档的状态,主要用于错误检查目的。

代码可能缺少了 和之后%的,并且没有任何作用,即使没有它们也会得到相同的结果。{\listtablename}\expandafter

相关内容