程序包!额外},或忘记了\endgroup

程序包!额外},或忘记了\endgroup

我从以下链接获取了 STY 文件(elsarticle.zip)- http://www.elsevier.com/wps/find/authorsview.authors/elsarticle#models

我正在使用程序包,我想将关键词添加到我的论文中。但是,每当我添加程序包时,都会出现错误。

! Extra }, or forgotten \endgroup.
\endkeyword ->\par \egroup                            
l.34 \end{keyword}

这是我的 latex 代码,我已将其删除以查看是否有任何错误。如果我删除程序包,它就可以正常工作。或者,如果我删除关键字部分,它也可以很好地编译。但是,我需要它们两者。有人可以帮忙吗?

\documentclass[preprint,1p]{elsarticle}
\usepackage{etex}
\usepackage{amssymb,amsmath}
\usepackage{cite}
\usepackage{array}
\usepackage{url}
\usepackage{multirow}
\usepackage{listings}
\usepackage{epstopdf}
\usepackage{color}
\usepackage{tikz}
\usepackage{program}
\usepackage{pgfplots}
\usepackage[tight,footnotesize]{subfigure}
\usepackage{comment}
\usepackage{soul}
\graphicspath{{./Figures/}}
\journal{Microprocessors and Microsystems}
\begin{document}
\begin{frontmatter}

\title{Title of my report}

\begin{keyword}
 keyword1 \sep keyword2 \sep keyword3 \sep keyword4
\end{keyword}

\end{frontmatter}
\end{document}

答案1

您可以使用以下技巧来保留语法以进行加载program

\makeatletter
\let\elsarticle@keyword\keyword
\g@addto@macro\frontmatter{\let\keyword\elsarticle@keyword}
\makeatother
\usepackage{program}

那么你仍然可以说

\begin{frontmatter}

\title{Title of my report}

\begin{keyword}
 keyword1 \sep keyword2 \sep keyword3 \sep keyword4
\end{keyword}

\end{frontmatter}

并在文档正文中使用\keyword按定义。我认为,如果不修改语法,您提交论文的期刊的文字编辑会更高兴。program

答案2

keyword在加载program定义其自己的宏的包之前,可以使用不同的名称保存环境宏\keyword

\let\elskeyword\keyword
\let\endelskeyword\endkeyword
\usepackage{program}
...
\begin{frontmatter}
\title{Title of my report}
\begin{elskeyword}
  keyword1 \sep keyword2 \sep keyword3 \sep keyword4
\end{elskeyword}
\end{frontmatter}

相关内容