El mismo comando se usa más de una vez pero solo obtengo el último resultado

El mismo comando se usa más de una vez pero solo obtengo el último resultado

Estoy definido \editor{strong text}y \reviewer{strong text}el comando se usa más de una vez. Pero solo obtengo el último \editor{Some Text}resultado del comando.

Mi archivo de clase definió este comando de la manera mencionada a continuación:

\def\@editor{}
\def\editor#1{%
     \gdef\@editor{\raggedright \textbf{Edited by:}\newline #1}}

\def\@reviewer{}
\def\reviewer#1{%
     \gdef\@reviewer{\raggedright \textbf{Reviewed by:}\newline #1}}

\def\@maketitle{%
  \newpage
  \null
  \vskip 50pc%
\vbox{\hbox to 0pt{\vbox to 0pt{\vskip -40pc%
\begin{minipage}[b]{10pc}
{\@editor\par}
    \vskip 1.5em%
{\@reviewer\par}
    \vskip 1.5em%
{\@correspondence\par}%
    \vskip 1.5em%
{\@metanote}%
\end{minipage}
\hspace*{12pt}
\begin{minipage}[b]{31pc}  
  \let \footnote \thanks
    {\raggedright\fontsize{18pt}{20pt}\selectfont\color{colorA}\@title \par}%
    \vskip 1.5em%
    {\large
%      \lineskip .5em%
      \begin{tabular}[t]{l}%
        \raggedright\@author
      \end{tabular}\par}%
    \vskip 1em%
    {\@abstract\par}
    \vskip 1em%
    {\@keywords\par}
    \vskip 1em%
    {\@firstpara\par}
   \end{minipage}}}}%
  \par
  \vskip 8.5em}

Mi codificación de archivos TeX se menciona a continuación:

\editor{Wagner L. Ara\'{u}jo, Universidade Federal de Vi\c{c}osa, Brazil}
\editor{Kannan L. juvio, Universidade Federal de Vi\c{c}osa, Brazil}
\reviewer{Jedrzej Jakub Szymanski, Max Planck Institute of Molecular Plant Physiology, Germany }
\reviewer{Dimas Mendes Ribeiro, Universidade Federal de Vi\c{c}osa, Brazil}

No voy a cambiar la estructura de codificación porque mi.tex archivo está utilizando otro proceso de conversión. Miel problema essolo la salidaimprime la última salida del editor.No se como imprimir elcada editor y revisor. Por favor proporcione la solución para imprimir elmás que el número de editores y revisores.

Mi salida parece ser:

Imagen de salida de texto detallada del revisor del editor

Respuesta1

normalmente tunoagregue el metatítulo "Editado por:" a la macro que recopila la metainformación como

\newcommand{\editor}[1]{\def\@editor{\raggedright \textbf{Edited by:}\newline #1}}

Tenga en cuenta que utilicé el comando LaTeX \newcommandpara la metamacro de nivel superior (¡es preferible!) y que \gdefno es necesario para la definición del metaalmacenamiento interno, es decir \@editor; \defes suficiente.

En su caso, puede usar un metacomando que incrementa el almacenamiento interno como

\newcommand{\editor}[1]{\edef\@editor{\@editor #1}}

Para realizar los mínimos cambios en su configuración ya existente, la versión final se ve así

\newcommand{\editor}[1]{\protected@edef\@editor{\@editor\newline#1\vspace{3pt}}}

El código completo se proporciona al final. Verás que algunos cambios fueron inevitables. En esta ocasión también limpié el código general.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{color}

\makeatletter
\let\@editor\@empty
\newcommand{\editor}[1]{\protected@edef\@editor{\@editor\newline#1\vspace{3pt}}}
\let\@reviewer\@empty
\newcommand{\reviewer}[1]{\protected@edef\@reviewer{\@reviewer\newline#1\vspace{2pt}}}
\let\@correspondence\@empty
\newcommand{\correspondence}[1]{%
  \protected@edef\@correspondence{\@correspondence\newline#1\vspace{2pt}}}
\def\@maketitle{%
  \vspace{50pc}%
  \noindent
  \begin{minipage}{.33\textwidth}
    \raggedright
    \textbf{Edited by:}\vspace{3pt}
      \@editor
    \par\vspace{1.5em}
    \textbf{Reviewed by:}\vspace{3pt}
      \@reviewer
    \par\vspace{1.5em}
    \textit{Correspondence:}\vspace{3pt}
      \@correspondence
    \par\vspace{1.5em}
    \@metanote%
  \end{minipage}%
  \hspace{12pt}%
  \begin{minipage}{.66\textwidth}
    \let \footnote \thanks
    \let \and      \newline
    \begin{tabular}[t]{p{\textwidth}}
      {\fontsize{18pt}{20pt}\selectfont\color{blue}\@title} \\[1.5em]
      {\large \@author} \\[2em]
      {\small \@abstract} \\[1em]
      Keywords: \@keywords \\[1em]
      \@firstpara
    \end{tabular}
  \end{minipage}
  \par
  \vskip 8.5em}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%auxiliary macros (not provided in the MWE!)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\abstract}[1]{\def\@abstract{#1}}
\newcommand{\keywords}[1]{\def\@keywords{#1}}
\let\@firstpara\@empty
\let\@metanote\@empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatother

\editor{Wagner L. Ara\'{u}jo, Universidade Federal de Vi\c{c}osa, Brazil}
\editor{Kannan L. juvio, Universidade Federal de Vi\c{c}osa, Brazil}
\reviewer{Jedrzej Jakub Szymanski, Max Planck Institute of Molecular Plant Physiology, Germany }
\reviewer{Dimas Mendes Ribeiro, Universidade Federal de Vi\c{c}osa, Brazil}
\correspondence{Jana Doe, University of TeX Wizardry}
\author{John Doe}
\title{Multiple usage of meta macros}
\abstract{Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.   

Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.}
\keywords{Lorem, Ipsum, Dolor, Sit}

\begin{document}
\maketitle
\end{document}

Respuesta2

Como se dijo en algunos comentarios, las definiciones actuales de \editory \reviewerestán destinadas a establecer el contenido y cada una sobrescribe la anterior.

Aquí hay una definición simple (usando las funciones de procesamiento de listas del etoolboxpaquete, es decir, use \RequirePackage{etoolbox}o `\usepackage{etoolbox} para cargarlo).

\newcommand{\@editor}{}
\newcommand{\@reviewer}{}

\newcommand{\editor}[1]{\listadd{\@editor}{#1}}
\newcommand{\reviewer}[1]{\listadd{\@reviewer}{#1}}
\newcommand{\printeditor}{Edited By:\newline\dolistloop{\@editor}}
\newcommand{\printreviewer}{Reviewed By:\newline\dolistloop{\@reviewer}} 

De esta manera el comando \editor{some text}y \reviewer{some text}agrega su argumento a las listas de editores (almacenados en \@editory \@reviewer). Los dos comandos \printeditor y \printreviewerrecorre la lista e imprimen el contenido de las listas respectivas.

Por ejemplo, reemplace \@editory \@reviewercon \printeditory \printrevieweren la definición dada de \maketitle.

información relacionada