Derselbe Befehl wird mehr als einmal verwendet, aber ich erhalte nur die letzte Ausgabe

Derselbe Befehl wird mehr als einmal verwendet, aber ich erhalte nur die letzte Ausgabe

Ich bin definiert \editor{strong text}und \reviewer{strong text}der Befehl wird mehr als einmal verwendet. Aber ich erhalte nur die \editor{Some Text}Ausgabe des letzten Befehls.

Meine Klassendatei definiert diesen Befehl wie folgt:

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

Meine TeX-Dateicodierung ist unten aufgeführt:

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

Ich ändere die Kodierungsstruktur nicht, da meine .texDatei einen anderen Konvertierungsprozess verwendet. MeineDas Problem istnur die Ausgabedruckt die letzte Editorausgabe.Ich weiß nicht, wie ich das ausdrucken soll.jeder Redakteur und Gutachter. Bitte geben Sie die Lösung zum Drucken dermehr als die Zahl der Redakteure und Gutachter.

Meine Ausgabe sieht folgendermaßen aus:

Editor Reviewer Detail Tex Ausgabebild

Antwort1

NormalerweisenichtFügen Sie dem Makro, das die Metainformationen sammelt, die Metaüberschrift "Bearbeitet von:" hinzu, wie

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

Beachten Sie, dass ich den LaTeX-Befehl \newcommandfür das Metamakro der obersten Ebene verwendet habe (das ist vorzuziehen!) und dass dieser \gdeffür die Definition des internen Metaspeichers nicht erforderlich ist, d. h. \@editor; \defist ausreichend.

In Ihrem Fall können Sie einen Metabefehl verwenden, der den internen Speicher wie folgt erhöht:

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

Um so wenig Änderungen wie möglich an Ihrem bestehenden Setup vorzunehmen, sieht die Endversion wie folgt aus:

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

Den kompletten Code gibt es am Ende. Man sieht, dass einige Änderungen unvermeidbar waren. Bei dieser Gelegenheit habe ich auch den gesamten Code bereinigt.

Bildbeschreibung hier eingeben

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

Antwort2

Wie in einigen Kommentaren gesagt, sind die aktuellen Definitionen von \editorund \reviewerdazu gedacht, den Inhalt festzulegen und jeweils die vorherige zu überschreiben.

Hier ist eine einfache Definition (unter Verwendung der Listenverarbeitungsfunktionen des etoolboxPakets, d. h. verwenden Sie \RequirePackage{etoolbox}oder `\usepackage{etoolbox}, um sie zu laden).

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

Auf diese Weise fügen die Befehle \editor{some text}und \reviewer{some text}ihre Argumente zu den Editorlisten hinzu (gespeichert in \@editorund \@reviewer). Die beiden Befehle \printeditor und \printreviewerdurchlaufen die Liste und drucken den Inhalt der jeweiligen Listen.

Ersetzen Sie für das Beispiel \@editorund \@reviewerdurch \printeditorund \printreviewerin der angegebenen Definition von \maketitle.

verwandte Informationen