revtex4 类与抽象包不兼容

revtex4 类与抽象包不兼容

我正在尝试使用\absleftindent和包更改摘要的宽度。但在编译文档时,我收到以下错误消息\absrightindentabstract

错误

我使用 手动安装了该软件包latex abstract.ins(连同源文件abstract.dtx)。我还尝试通过abstract.zip直接从 CTAN 下载 来安装该软件包,但问题仍然存在abstract.sty。有人能帮助我吗?我对编程了解不多,.ins所以我无法自己纠正代码。

答案1

您的问题与安装本身无关。您的错误消息假设abstract包已正确安装。问题只是因为abstract隐式设计用于标准类 - 或者至少您可以说:仅适用于提供选项的类titlepage,实际上是\if@titlepage开关。revtex4没有定义它。因此您收到错误。您可以手动设置缺少的部分:

\documentclass{revtex4}
\makeatletter
\newif\if@titlepage
\@titlepagefalse
\makeatother
...

这应该可以立即消除错误。

评论。虽然您的问题与您要使用的包的安装无关,但这里有一些有关 LaTeX 包装设计的说明。

  1. 您无需更改.ins.dtx文件即可根据需要修改功能或实现新事物。这些是源文件,最好保持不变。即使是.styLaTeX 最终使用的派生文件也不应该被修改。您可以\newcommand在序言中添加新定义或通过修改 macor \renewcommand(当然还有 TeX.SX 上介绍的大量其他技术)。
  2. 您可以使用指令创建abstract.sty从中调用的文件。LaTeX 实际上仅在您说时才使用。相应的文件包含和文件,并且不是(额外)安装包所必需的。abstract.dtxlatex abstract.insabstract.sty\usepackage{abstract}abstract.zip.ins.dtx

答案2

谢谢你的帮助。

我按照下面的方式解决了这个问题,显然文档revtex4不支持\usepackage{abstract}因为它已经集成在revtex4中了。

没有必要使用\usepackage{abstract}命令\documentclass[11pt]{revtex4}

我设法使用 revtex4 中的代码改变了摘要的宽度。

\makeatletter
\renewcommand\frontmatter@abstractwidth{\dimexpr\textwidth\relax}

此代码将摘要的宽度更改为文档的宽度,也可以通过在两端分配 1 英寸的值来更改更多详细信息请点击此处

\renewcommand\frontmatter@abstractwidth{\dimexpr\textwidth-1in\relax}

第二个问题是我无法从 Miktex 安装软件包,因为我收到错误“C:\Program Files(x86)\Miktex 2.9...\initexmf.exe 未成功。”我通过选择在“C:\Miktex 2.9“目录,因为在“C:\Program Files (x86)”中安装需要权限,即它无法通过 Miktex 管理器自动安装和创建文件。更多详情请见此处

相关内容