程式包!額外 },或忘記 \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}

這是我的乳膠代碼,我已將其刪除以查看是否有任何錯誤。如果我刪除程式包,它就可以正常工作。或者,如果我刪除關鍵字部分,那麼它也可以正常編譯。然而,我需要他們兩個。有人可以幫忙嗎?

\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}

相關內容