
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 .tex
Datei 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:
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 \newcommand
für das Metamakro der obersten Ebene verwendet habe (das ist vorzuziehen!) und dass dieser \gdef
für die Definition des internen Metaspeichers nicht erforderlich ist, d. h. \@editor
; \def
ist 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.
\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 \editor
und \reviewer
dazu gedacht, den Inhalt festzulegen und jeweils die vorherige zu überschreiben.
Hier ist eine einfache Definition (unter Verwendung der Listenverarbeitungsfunktionen des etoolbox
Pakets, 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 \@editor
und \@reviewer
). Die beiden Befehle \printeditor
und \printreviewer
durchlaufen die Liste und drucken den Inhalt der jeweiligen Listen.
Ersetzen Sie für das Beispiel \@editor
und \@reviewer
durch \printeditor
und \printreviewer
in der angegebenen Definition von \maketitle
.