Vários problemas com comandos personalizados e fancyhdr

Vários problemas com comandos personalizados e fancyhdr

Eu tenho uma pergunta com várias partes. Estou criando um arquivo de classe para um arquivo de classe de procedimento operacional padrão. Isto inclui a necessidade de sinalizadores de controle de revisão.

Estou tentando fazer um comando personalizado para inserir a data e o texto que foi alterado. O comando this supostamente coloca o texto normalmente no texto como antes, mas adiciona uma barra de revisão na margem direita usando o pacote changebar. Além disso, altera o estilo da página para adicionar "TCN: data" ao rodapé da página, sendo a data a data que você inseriu no comando personalizado.

Também quero fazer com que o comando adicione dois ou mais "TCN: data" separados no rodapé se o comando for usado em uma página mais de uma vez. Não tenho certeza de como abordar isso. Eu estava pensando em configurar um script de programa dentro do arquivo de classe, mas não tenho certeza de como fazer isso no LATEX.

Alguns dos problemas que estou enfrentando é que a data não muda no rodapé quando chamo um novo comando personalizado, em vez disso, ela permanece com o estilo de página original definido. O texto, quando colocado no comando, está se tornando um novo parágrafo quando eu quero que ele fique separado do texto principal, assim como o comando \textbf{} funciona.

Aqui está um exemplo de arquivo .tex. O comando personalizado é \tcnpage e o estilo de página é 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}

Aqui está o arquivo de classe que estou criando.

 \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

Responder1

Não tenho certeza se entendi sua pergunta e seu código corretamente, mas isso faz o que você deseja?

\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}

informações de revisão nos rodapés

informação relacionada