
I가 정의되었으며 \editor{strong text}
명령 \reviewer{strong text}
이 두 번 이상 사용되었습니다. 하지만 마지막 \editor{Some Text}
명령 출력만 표시됩니다.
내 클래스 파일은 아래에 언급된 방식으로 이 명령을 정의했습니다.
\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}
내 TeX 파일 코딩은 아래에 언급되어 있습니다.
\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}
.tex
내 파일이 다른 변환 프로세스를 사용하고 있기 때문에 코딩 구조를 변경하지 않습니다 . 나의문제는출력만마지막 편집기 출력을 인쇄합니다.인쇄하는 방법을 모르겠습니다.각 편집자와 리뷰어. 인쇄할 수 있는 솔루션을 친절하게 제공해 주십시오.편집자와 리뷰어 수보다 많음.
내 출력은 다음과 같습니다
답변1
보통 당신은~하지 않다다음과 같은 메타 정보를 수집하는 매크로에 "편집자:"라는 메타 캡션을 추가합니다.
\newcommand{\editor}[1]{\def\@editor{\raggedright \textbf{Edited by:}\newline #1}}
\newcommand
최상위 메타 매크로에 LaTeX 명령을 사용했으며 (바람직합니다!) \gdef
내부 메타 저장소 정의에는 필요하지 않습니다 \@editor
. \def
충분하다.
귀하의 경우 내부 저장소를 늘리는 메타 명령을 다음과 같이 사용할 수 있습니다.
\newcommand{\editor}[1]{\edef\@editor{\@editor #1}}
기존 설정을 최소한으로 변경하려면 최종 버전이 다음과 같습니다.
\newcommand{\editor}[1]{\protected@edef\@editor{\@editor\newline#1\vspace{3pt}}}
전체 코드는 마지막에 제공됩니다. 몇 가지 변경이 불가피하다는 것을 알 수 있습니다. 이번에는 전체 코드도 정리했습니다.
\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}
답변2
\editor
일부 의견에서 말했듯이 및 의 현재 정의는 \reviewer
내용을 설정하고 각각 이전 정의를 덮어쓰는 것을 의미합니다.
다음은 간단한 정의입니다(패키지의 목록 처리 기능을 사용합니다 etoolbox
. 즉, \RequirePackage{etoolbox}
로드하려면 `\usepackage{etoolbox}를 사용합니다).
\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}}
이러한 방식으로 명령 \editor{some text}
과 \reviewer{some text}
해당 인수를 편집기 목록( \@editor
및 에 저장됨 \@reviewer
)에 추가합니다. 두 명령은 목록을 반복 \printeditor
하고 \printreviewer
각 목록의 내용을 인쇄합니다.
예를 들어 의 주어진 정의에서 \@editor
및 을 및 \@reviewer
로 바꾸십시오 .\printeditor
\printreviewer
\maketitle