我正在尝试使用独立包整理我的论文。我正尝试将我的旧 LaTeX 文档 lna_achemso.tex 输入到 thesis.tex 中。
当两个文档具有相同的类别时,独立包可以很好地运行。
然而,我的论文
\documentclass[12pt]{report}
而 lna_achemso.tex 是
\documentclass[
%journal=ancac3, % for ACS Nano
%journal=acbcct, % for ACS Chem. Biol.
journal=jpcbfk, % for undefined journal
manuscript=article]{achemso}
这给出了错误
! LaTeX Error: Environment acknowledgement undefined.
我复制了文件 achemso.sty、achemso.cls,其中包含确认变量的定义,并写入
\usepackage{achemso}
在论文的序言中,但这没有任何作用。
我怎样才能加载环境?
这听起来微不足道,但我却找不到解决方案。
-戴夫
答案1
编辑:加载环境的唯一方法是用report
替换achemso
。
命令\usepackage
仅包含包achemso.sty
,而不包含类achemso.cls
。
不幸的是,有些命令和环境在 中定义,achemso.cls
但在achemso.sty
中和 中均未定义report.cls
。这些命令和环境在不包含类的文档中不起作用,achemso.cls
例如您的文档:
\documentclass{report}
\usepackage{achemso}
为了在课堂上工作,report
您应该“翻译”您的文档:您应该将仅在 中定义的命令和环境替换为在achemso.cls
中定义的对应命令和环境report.cls
,或直接替换为LaTeX
命令。大多数命令和环境都可以替换,例如,achemso
环境可以用嵌套在 中的我的确认acknowledgement
替换,或者您可以设置自己的环境。这是一个带有环境定义的 MWE:\thanks{
}
\title{}
acknowledgement
\documentclass{report}
\title{Paper\thanks{Hello world}}
\author{Me}
\newenvironment{acknowledgement}% New acknowledgement environment
{\large\bfseries Acknowledgement%
\par\medskip\normalfont\normalsize}%
{}%
\begin{document}
\maketitle
\begin{acknowledgement}
Hello world
\end{acknowledgement}
\noindent\begin{acknowledgement}
\noindent Hello world
\end{acknowledgement}
\end{document}
为了“翻译”文档,您基本上必须对每个未知的命令和环境重复此过程report.cls
。现在pdflatex
立即成为您最好的朋友:它足以消除编译过程中产生的所有错误。这就是调试。
答案2
约翰·科米洛和彼得·格里尔,
我退房了所含 PDF 页面的目录条目和标签不幸的是,我无法使用 pdfpages,因为它无法创建表格和图形的列表,而对于我这样篇幅的论文来说,手动执行这些操作是不切实际的。
谢谢 RicoRally!
我通过替换解决了这个特殊问题
\begin{acknowledgement}
thanks everyone...
\end{acknowledgement}
在原始文件中使用一个简单的
\section*{Acknowledgement}
它产生几乎相同的输出并保持兼容性,因此这个特定问题很容易解决。
然而,有些事情是比较难以避免的。
我有一些互相冲突的包:
当我没有 amsmath 时,出现此错误:
! LaTeX Error: Environment align undefined.
使用 \includepackage{amsmath} 可以轻松解决
然而,这会导致一个额外的错误:
! LaTeX Error: Command \dfrac already defined.
Or name \end... illegal, see p.192 of the manual.
这让人难以置信,因为这句话并没有出现在任何我的目录中的文件。
另外,我找不到他们所说的手册,到目前为止我看到的所有手册都少于 192 页,并且 Google 找到的所有带有此错误消息的网页都不是英文的......
我不知道如何解决这个问题。:,(
编辑:通过删除 \align{} 解决了这个问题,因为这对于方程的显示来说不是必需的。
经验教训:将软件包保持在最低限度。经常会有冲突,这会使调试此类问题变得非常困难。