douglasrizzo/Classe-Latex-FEI

Mencionar apêndice com \ref{} retorna valor errado

douglasrizzo opened this issue · 3 comments

Esse é um problema antigo.

  • Chapters são numerados 1, 2, 3 etc
  • Depois do comando \appendix, eles começam a ser listados com letras A, B, C etc.
  • Porém, quando são referenciados usando e.g. \ref{meu-apendice}, acontece algum problema e não é a letra correta que aparece no lugar do comando \ref{meu-apendice}.

Abaixo segue um MWE que eu acabei de testar e teve o comportamento correto (mwe.pdf). A ideia é ver porque esse MWE funciona e a classe da FEI, que usa uma estratégia bem parecida, não funciona.

\documentclass{memoir}

\renewcommand{\appendix}{
	\renewcommand{\chaptername}{\appendixname}
	\setcounter{chapter}{0}
	\renewcommand{\thechapter}{\Alph{chapter}}
}

\begin{document}

\chapter{Introduction}
More stuff in appendix \ref{my-appendix}.

\appendix

\chapter{More stuff} \label{my-appendix}
\end{document}

O problema parece estar na forma como a formatação dos títulos dos capítulos e seções foi implementada: redefinindo os comandos \chapter, \section etc.:

Classe-Latex-FEI/fei.dtx

Lines 1669 to 1688 in a578361

\renewcommand{\part}{%
\@startsection{part}{-1}{0pt}{\baselineskip}{\baselineskip}{\cleardoublepage\fontsize{12pt}{14.4pt}\centering\bfseries\MakeUppercase}}
% não há recuo no título de nenhum nível de nenhuma seção
% títulos dos capítulos são em negrito, maiúsculo e com distâncias de 1,5 cm do parágrafo que o sucede
\renewcommand{\chapter}{\cleardoublepage\pagestyle{plain}%
\@startsection{chapter}{0}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries}}
% demais níveis de seção possuem distância de 1,5 linhas do parágrafo sucessor e predecessor
\renewcommand{\section}{%
\@startsection{section}{1}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}}}
\renewcommand{\subsection}{%
\@startsection{subsection}{2}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries}}
\renewcommand{\subsubsection}{%
\@startsection{subsubsection}{3}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries\itshape}}
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\itshape}}

A forma correta está em criar "chapterstyles" para cada nível de seção e para os apêndices/anexos, como ensinado no manual da classe memoir (seções 6.5 e 6.6). Um exemplo inicial de chapterstyle para o apêndice:

Classe-Latex-FEI/fei.dtx

Lines 2005 to 2016 in 3e840ef

\makechapterstyle{feiappendix}{%
\setlength{\beforechapskip}{-\topfiddle}\setlength{\midchapskip}{1.0\onelineskip}\setlength{\afterchapskip}{1.0\onelineskip}
\renewcommand*{\chapnamefont}{\normalfont}
\renewcommand*{\chapnumfont}{\chapnamefont}
\renewcommand*{\printchaptername}{%
\chapnamefont\MakeUppercase{\@chapapp}}
\renewcommand*{\printchapternum}{\centering\chapnumfont \thechapter}
\renewcommand*{\chaptitlefont}{\normalfont\centering}
\renewcommand*{\printchapternonum}{}
\renewcommand*{\afterchaptertitle}{\clearpage}}
\addtodef{\appendix}{}{\chapterstyle{feiappendix}}

O que eu consegui:

2020-07-06_13-33-48

O que precisa corrigir agora:

image

Como deve ser:

image

E também checar os anexos depois.

Resolvido na versão 4.10.2.