修复类文件

修复类文件

这可能是因为这个论坛的受众太窄,但我现在有点不知所措。我正在尝试构建我的论文文档。我学校的风格指南明显以 Word 为中心,但我有一个几年前由学生创建的 LaTex 课程来实现它。不幸的是,他们不再在维护它了……

几年前,我曾成功使用此类文件来构建我的招股说明书,但现在,即使是我的旧招股说明书文件也会出现错误。我相信问题与缩写包的更改有关。

我得到的错误是

LaTeX 错误:\bflabel 未定义

\bflabel 在类文件中出现两次,均在此块中

\AtBeginDocument{%
  \if@AFITdraft\singlespace\else\afit@doublespace\fi
  % adjust the acronym package's list format to conform to the AFIT style guide
  \@ifpackageloaded{acronym}{%
    \newcommand\afit@acronymwidth{Acronym}
    \renewcommand{\bflabel}[1]{{#1\hfill}}%
    \newlength\afit@acronymlabelsep
    \settowidth\afit@acronymlabelsep{\qquad}%
    \renewenvironment{AC@deflist}[1]{%
      \ifAC@nolist\else
        \newwrite\aftfile
        \immediate\openout\aftfile=\jobname.aft%
        \immediate\write\aftfile{\string\renewcommand\string\afit@acronymwidth{#1}}%
        \immediate\closeout\aftfile
        \raggedright\begin{list}{}{%
          \singlespace
          \setlength{\topsep}{\afit@fracskip}%
          \setlength{\itemsep}{\afit@fracskip}%
          \setlength{\parsep}{0pt}%
          \setlength{\partopsep}{0pt}%
          \setlength{\parskip}{0pt}%
          \settowidth{\labelwidth}{#1}%
          \setlength{\labelsep}{\afit@acronymlabelsep}%
          \setlength{\leftmargin}{\labelwidth}%
          \addtolength{\leftmargin}{\labelsep}%
          \renewcommand{\makelabel}{\bflabel}%
        }%
      \fi%
    }{%
      \ifAC@nolist\else
        \end{list}%
      \fi
    }%
    \newcommand\listofacronyms[1]{%
      \IfFileExists{\jobname.aft}{\makeatletter\input{\jobname.aft}\makeatother}{}%
      \newlength\afit@acronymleftmargin
      \settowidth\afit@acronymleftmargin{\afit@acronymwidth}%
      \addtolength\afit@acronymleftmargin{\afit@acronymlabelsep}%
      \addlistof{Acronyms}{\makebox[\afit@acronymleftmargin][l]{Acronym}Definition}{#1}%
    }
  }{}%
}

我发现这个问题在这个网站上对正在发生的事情进行了解释:

\bflabel 未在 acronym.sty 的最新实现中使用,他们引入了 \aclabelfont 和其他一些程序来处理格式化。无向后兼容性。

但这并不能真正帮助我解决问题。所以目前,我不确定如何继续。考虑到类文件中 bflabel 发生的情况,是否有简单的“修复”方法?我完全没有处理类文件的经验……如果能提供任何想法,我将不胜感激。

答案1

请考虑制作最小工作示例这确实缩小了问题的范围。

基本上,这个错误是 LaTeX 告诉你,虽然你要求它更新\renewcommand控制序列\bflabel,但没有控制序列\bflabel可供它更新。只需删除re即可消除错误,但我不知道结果是否是你想要的。

\documentclass{article}
\usepackage{acronym}
\newcommand{\bflabel}[1]{{#1\hfill}}%
\begin{document}
Here I am \bflabel{what} now
\end{document}

因此,如果您将cls文件复制到工作目录,然后从中删除re\renewcommand则不应抛出此特定错误。(可能;如果没有cls要检查的文件,可能会发生其他一些奇怪的事情。但值得一试。)

相关内容