paquete de programas! Extra } u olvidado \endgroup

paquete de programas! Extra } u olvidado \endgroup

Tomé los archivos STY (elsarticle.zip) del siguiente enlace: http://www.elsevier.com/wps/find/authorsview.authors/elsarticle#models

Estoy usando un paquete de programa y quiero incluir las palabras clave en mi artículo. Sin embargo, cada vez que incluyo el paquete del programa, aparece un error.

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

Aquí está mi código de látex, que he eliminado para ver si hubo algún error. Si elimino el paquete del programa, funciona perfectamente bien. De lo contrario, si elimino la parte de Palabras clave, también se compila bien. Sin embargo, los necesito a ambos. ¿Alguien podría ayudarme?

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

Respuesta1

Puedes mantener la sintaxis con el siguiente truco para cargar program:

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

Entonces todavía puedes decir

\begin{frontmatter}

\title{Title of my report}

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

\end{frontmatter}

y utilizar \keywordsegún lo definido programen el cuerpo de su documento. Creo que los correctores de la revista a la que envía el artículo estarán más contentos si no se modifica la sintaxis.

Respuesta2

Las keywordmacros de entorno se pueden guardar con un nombre diferente, antes de cargar el programpaquete, que define su propia \keywordmacro:

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

información relacionada