사용자 정의 명령 및 fancyhdr에 대한 여러 문제

사용자 정의 명령 및 fancyhdr에 대한 여러 문제

여러 부분으로 구성된 질문이 있습니다. 표준 운영 절차 클래스 파일에 대한 클래스 파일을 만들고 있습니다. 여기에는 개정 제어 플래그가 필요합니다.

변경된 날짜와 텍스트를 입력하는 사용자 정의 명령을 만들려고 합니다. 이 명령은 이전과 같이 텍스트를 정상적으로 텍스트에 넣는 것으로 가정하지만 체인지바 패키지를 사용하여 오른쪽 여백에 개정 막대를 추가합니다. 또한 페이지 스타일을 변경하여 페이지 바닥글에 "TCN: 날짜"를 추가하고 날짜는 사용자 정의 명령에 입력한 날짜입니다.

또한 명령이 페이지에서 두 번 이상 사용되는 경우 명령이 바닥글에 두 개 이상의 별도의 "TCN: 날짜"를 추가하도록 만들고 싶습니다. 나는 그것에 접근하는 방법을 전혀 모르겠습니다. 나는 클래스 파일 내부에 프로그램 스크립트를 설정하려고 생각했지만 LATEX에서는 어떻게 해야 할지 모르겠습니다.

내가 겪고 있는 문제 중 일부는 새 사용자 정의 명령을 호출할 때 바닥글의 날짜가 변경되지 않고 대신 원래 페이지 스타일이 설정된 대로 유지된다는 것입니다. 명령에 넣을 때 텍스트는 \textbf{} 명령이 작동하는 것처럼 기본 텍스트와 별도로 있기를 원할 때 새 단락이 됩니다.

다음은 .tex 파일의 예입니다. 사용자 정의 명령은 \tcnpage이고 페이지 스타일은 call tcn입니다.

\documentclass[10pt]{test}

\revision{5}
\revisionMMYY{12/93}%Format for the date is MM/YY
\date{7/24/08}
\author{test} %Your Name
\usepackage{lipsum}

\begin{document}

\section{Purpose and Discussion}
\lipsum[1]
\subsection{}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ligula et pharetra lobortis. Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{1/12}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at. 


\newpage
\lipsum[1]
\newpage
\subsection{subsection title}  
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ligula et pharetra lobortis. Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{4/14}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at.

\newpage
\subsection{subsection title}  
Lorem ipsum dolor sit amet, consectetur adipiscing elit. \tcnpage{2/13}{Sed imperdiet ligula et pharetra lobortis.} Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{4/14}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at.

\end{document}

제가 만들고 있는 클래스 파일은 다음과 같습니다.

 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{sop}[10/10/2014 article class for standard operating procedures]

 % Passes and class options to the underlying article class
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
 \ProcessOptions
 \LoadClass{article}

 % Redefine the page margins
 \RequirePackage[left=1in,right=1in,top=.75in,bottom=.75in]{geometry}

 %Allows for the revision bar in the rigth margin
 \RequirePackage[color]{changebar}
 \cbcolor{black} %makes the revision bar color black


 % For easier construction of page headers/footers
 \RequirePackage{fancyhdr}
 \newcommand{\revision}[1]{\def\@revision{#1}}
 \newcommand{\revisionMMYY}[1]{\def\@revisionMMYY{#1}}
 \newcommand{\tcn}[1]{\def\@tcn{#1}}

 \fancypagestyle{plain}{ % for first page
 \fancyhf{}
 \fancyhead[R]{SOP}
 \renewcommand{\headrulewidth}{0pt}
 \fancyfoot[R]{REV \@revision,\ \@revisionMMYY}

 \renewcommand{\footrulewidth}{0pt}}

 \pagestyle{fancy} % for other pages
 \fancyhf{}
 \fancyhead[R]{SOP}

 \renewcommand{\headrulewidth}{0pt}
 \fancyfoot[R]{REV \@revision,\ \@revisionMMYY}

 \renewcommand{\footrulewidth}{0pt}

 \fancypagestyle{tcn}{ %This style is for any page with a TCN number. Added 11/20/2014 by 
\pagestyle{fancy} 
\fancyhf{}
\fancyhead[R]{SOP}
%\thesopchapternumber
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{REV \@revision,\ \@revisionMMYY
    \\ TCN: \@tcn}
%\therevision,\ \therevisionMMYY
\renewcommand{\footrulewidth}{0pt}
}

\newcommand{\tcnpage}[2] { % Use this command when wanting to add a TCN to the single page. It takes the form of \tcnpage{DATE} Added 11/20/2014 by
\tcn{#1}

\cbstart
#2
\cbend
\thispagestyle{tcn}
}

\thispagestyle{plain}

\endinput

답변1

귀하의 질문과 코드를 정확하게 이해했는지 잘 모르겠습니다. 그러나 이것이 귀하가 원하는 대로 작동합니까?

\begin{filecontents}{test.cls}
  \NeedsTeXFormat{LaTeX2e}
  \ProvidesClass{sop}[10/10/2014 article class for standard operating procedures]

  % Passes and class options to the underlying article class
  \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
  \ProcessOptions
  \LoadClass{article}

  % Redefine the page margins
  \RequirePackage[left=1in,right=1in,top=.75in,bottom=.75in]{geometry}

  %Allows for the revision bar in the rigth margin
  \RequirePackage[color]{changebar}
  \cbcolor{black} %makes the revision bar color black


  % For easier construction of page headers/footers
  \RequirePackage{fancyhdr,afterpage}
  \newcommand{\revision}[1]{\def\@revision{#1}}
  \newcommand{\revisionMMYY}[1]{\def\@revisionMMYY{#1}}

  \fancypagestyle{plain}{% for first page
    \fancyhf{}
    \fancyhead[R]{SOP}
    \renewcommand{\headrulewidth}{0pt}
    \fancyfoot[R]{REV \@revision,\ \@revisionMMYY}
    \renewcommand{\footrulewidth}{0pt}}

  \pagestyle{fancy} % for other pages
  \fancyhf{}
  \fancyhead[R]{SOP}
  \renewcommand{\headrulewidth}{0pt}
  \fancyfoot[R]{REV \@revision,\ \@revisionMMYY}
  \renewcommand{\footrulewidth}{0pt}

  \fancypagestyle{tcn}{%This style is for any page with a TCN number. Added 11/20/2014 by
    \fancyhf{}%
    \fancyhead[R]{SOP}%
    %\thesopchapternumber
    \renewcommand{\headrulewidth}{0pt}%
    \fancyfoot[R]{REV \@revision,\ \@revisionMMYY
      \\ TCN: \@tcn}%
    %\therevision,\ \therevisionMMYY
    \renewcommand{\footrulewidth}{0pt}}

  \newcommand*\tcn[1]{\def\@tcn{#1}}
  \def\@tcn{}
  \newcommand{\tcnpage}[2] {% Use this command when wanting to add a TCN to the single page. It takes the form of \tcnpage{DATE} Added 11/20/2014 by Joseph Antworth
    \edef\@oldtcn{\@tcn}%
    \def\tempa{}%
    \ifx\tempa\@oldtcn\tcn{#1}\else\tcn{\@oldtcn, #1}\fi%
    \cbstart
    #2
    \cbend
    \thispagestyle{tcn}%
    \afterpage{\clearpage\gdef\@tcn{}}}

  \thispagestyle{plain}

  \endinput
\end{filecontents}
\documentclass[10pt]{test}

\revision{5}
\revisionMMYY{12/93}%Format for the date is MM/YY
\date{7/24/08}
\author{test} %Your Name
\usepackage{lipsum}

\begin{document}

  \section{Purpose and Discussion}
  \lipsum[1]
  \subsection{}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ligula et pharetra lobortis. Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{1/12}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at.


  \newpage
  \lipsum[1]
  \newpage
  \subsection{subsection title}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet ligula et pharetra lobortis. Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{4/14}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at.

  \newpage
  \subsection{subsection title}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. \tcnpage{2/13}{Sed imperdiet ligula et pharetra lobortis.} Donec felis nisl, sollicitudin ut ligula ac, hendrerit finibus elit. Sed sapien mi, maximus consequat arcu eu, ullamcorper bibendum risus. Pellentesque hendrerit eleifend scelerisque. \tcnpage{4/14}{Aliquam at velit volutpat eros condimentum rutrum.} Fusce est dui, cursus at est at, auctor euismod sapien. Etiam venenatis ornare facilisis. Ut blandit convallis sollicitudin. Phasellus pharetra eros urna, ut suscipit massa feugiat at.

\end{document}

바닥글의 개정 정보

관련 정보