수업에 전송된 옵션을 기반으로 이미지 선택

수업에 전송된 옵션을 기반으로 이미지 선택

내가 작성하는 개인/내부 문서의 일관성을 높이기 위해 첫 페이지의 바닥글에 넣을 이미지를 자동으로 선택하는 옵션을 전달할 수 있도록 클래스를 수정하고 싶습니다. 한 눈에 쉽게 알아볼 수 있기 때문입니다. 여기서부터 어떻게 해야 할지 잘 모르겠습니다.

나는 이것을 시도했습니다 :

    \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

관련 정보