
내가 작성하는 개인/내부 문서의 일관성을 높이기 위해 첫 페이지의 바닥글에 넣을 이미지를 자동으로 선택하는 옵션을 전달할 수 있도록 클래스를 수정하고 싶습니다. 한 눈에 쉽게 알아볼 수 있기 때문입니다. 여기서부터 어떻게 해야 할지 잘 모르겠습니다.
나는 이것을 시도했습니다 :
\DeclareOption{groupA}{\def\@affiliation{Group A}}
\ProcessOptions \relax
바닥글 정의에 다음을 추가했습니다.
\@ifundefined{\@affiliation}{\def\@affiliation{none}}{}
\ifthenelse{\equal{\@affiliation}{\string groupA}}
{\includegraphics[height=2cm]{groupA_logo.png}}
{\@affiliation}
이것은 단지 시험해 보기 위한 것이므로 groupA
옵션을 을 통해 전달하면 이미지가 포함되고 아무것도 \documentclass[groupA]{myreports}
사용하지 않거나 전달하지 않으면 소속만 입력하면 됩니다 groupB
.
그러나 이것은 작동하지 않습니다. 내 바닥글에는 인쇄되지 않음이라는 단어만 표시됩니다. 이와 같은 작업을 어떻게 수행할 수 있는지에 대한 아이디어가 있습니까?
요청에 따라 여기에 MWE가 있습니다. myreports.cls:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myreports}[2015/07/28]
% - Declaration of options
\DeclareOption{letterpaper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
\DeclareOption{groupA}{\def\@affiliation{Group A}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
% ----- Execution of options
\ExecuteOptions{letterpaper}
\ProcessOptions \relax
\LoadClass{article}
% - Page Layout
\RequirePackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\RequirePackage{graphicx}
\RequirePackage{fancyhdr}
\RequirePackage{ifthen}
% - Header and Footer Definitions
\fancypagestyle{firstpage}{
\fancyhf{}
\setlength\headheight{48pt}
\setlength\headsep{-7pt}
\fancyhead[C]{\begin{center}
First Page Header
\end{center}}
\fancyfoot[C]{
\@ifundefined{\@affiliation}{\def\@affiliation{none}}{}
\ifthenelse{\equal{\@affiliation}{Group A}}
{I'm in \@affiliation}
{Don't recognize \@affiliation}
}
}
\pagestyle{fancy}
\fancyhf{}
\setlength\headheight{48pt}
\setlength\headsep{-7pt}
\fancyhead[CE,CO]{\begin{center}
Subsequent Pages Header
\end{center}}
\fancyfoot[CE,CO]{\thepage}
% - maketitle Definition
\makeatletter
\def\maketitle{
\thispagestyle{firstpage}
\par\textsc{\huge\@title}
\par\vspace{7pt}{\large\@author}
\vspace{21pt}
\par
}
\makeatother
\endinput
그리고 test.tex:
\documentclass[groupA]{myreports}
\usepackage{lipsum}
\title{A Titled Report}
\author{It's Me!}
\begin{document}
\maketitle
\lipsum[1-14]
\end{document}
답변1
글쎄요, 비록 이전에 시도했던 것과는 경로가 바뀌었지만 해결책을 찾을 수 있었습니다. 하지만 저는 이 아이디어가 더 마음에 듭니다. 문서에 하나 이상의 소속을 직접적으로 허용하기 때문입니다.
\newif\if@groupA를 사용한 다음 간단한 \if@groupA {} \fi 문을 사용하여 문제를 해결했습니다. 아래에 결과 클래스를 첨부하겠습니다.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myreports}[2015/07/28]
\newif\if@groupA
\@groupAfalse
% - Declaration of options
\DeclareOption{letterpaper}{\PassOptionsToPackage{\CurrentOption}{geometry}}
\DeclareOption{groupA}{\@groupAtrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
% ----- Execution of options
\ExecuteOptions{letterpaper}
\ProcessOptions \relax
\LoadClass{article}
% - Page Layout
\RequirePackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\RequirePackage{graphicx}
\RequirePackage{fancyhdr}
\RequirePackage{ifthen}
% - Header and Footer Definitions
\fancypagestyle{firstpage}{
\fancyhf{}
\setlength\headheight{48pt}
\setlength\headsep{-7pt}
\fancyhead[C]{\begin{center}
First Page Header
\end{center}}
\fancyfoot[C]{
\if@groupA
I'm in group A
\else
I'm not in group A
\fi
}
}
\pagestyle{fancy}
\fancyhf{}
\setlength\headheight{48pt}
\setlength\headsep{-7pt}
\fancyhead[CE,CO]{\begin{center}
Subsequent Pages Header
\end{center}}
\fancyfoot[CE,CO]{\thepage}
% - maketitle Definition
\makeatletter
\def\maketitle{
\thispagestyle{firstpage}
\par\textsc{\huge\@title}
\par\vspace{7pt}{\large\@author}
\vspace{21pt}
\par
}
\makeatother
\endinput