这可能是因为这个论坛的受众太窄,但我现在有点不知所措。我正在尝试构建我的论文文档。我学校的风格指南明显以 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
要检查的文件,可能会发生其他一些奇怪的事情。但值得一试。)