Fondo:
Estoy adjuntando varios artículos de estilo IEEE usando la solución.aquí.
La mayoría de los artículos incluyen apéndices que utilizan el \appendices
interruptor para redefinir \thesection
para crear el Apéndice A, B, C, etc. El problema que tengo es que \thesection nunca se redefine cuando se introduce un nuevo artículo en el documento y, por lo tanto, lo que debería etiquetarse como Sección 1. ahora es el Apéndice A.
Pregunta:
¿Cómo redefino \thesection para reanudar las marcas de sección normales en el estilo ieeetran?
Respuesta1
Me permití robar descaradamente la solución en Incluya \maketitle en la tabla de contenidos para compilar un "libro" de artículos IEEEde ese tipo extraño que se lo proporcionó (;-))
IEEEtran
es bastante restrictivo en el sentido de que no permite sections
después de un comando \appendix
o \appendices
. De esta manera, define la macro.
\def\@IEEEdestroythesectionargument#1
para emitir una advertencia/error. Es posible solucionar este problema insertando la macro de la sección guardada \let\LaTeXStandardSection
en lugar de la advertencia. (Pequeña advertencia: sin embargo, no funcionará para la sección con argumento opcional --> mejor manera: eliminar el comando, \appendix
etc.
Las \thesection
macros de formato de contador, etc. deben restaurarse al final de \maketitle
!
Método rápido y sucioRedefinir \appendices
, etc., de modo que no haga más que restablecer el formato del contador para los contadores de nivel de estructuración.
\documentclass[journal]{IEEEtran}
\usepackage{etoolbox}%
\usepackage{xpatch}
\usepackage{blindtext}
\usepackage{tocloft}%
\newlength{\articlesectionshift}%
\setlength{\articlesectionshift}{10pt}%
\addtolength{\cftsecindent}{\articlesectionshift}%
\let\LaTeXStandardSection\section
\let\LaTeXStandardTheSection\thesection
\let\LaTeXStandardTheSubSection\thesubsection
\let\LaTeXStandardTheSubSubSection\thesubsubsection
\let\LaTeXStandardTheParagraph\theparagraph
\makeatletter
\newcounter{titlecounter}
\xpretocmd{\maketitle}{\ifnumgreater{\value{titlecounter}}{1}}{\clearpage}{}{} % Well, this is lazy at the end ;-)
\xpatchcmd{\maketitle}{\let\maketitle\relax\let\@maketitle\relax}{\refstepcounter{titlecounter}\begingroup
\addtocontents{toc}{\begingroup\addtolength{\cftsecindent}{-\articlesectionshift}}%
\addcontentsline{toc}{section}{\protect{\numberline{\thetitlecounter}{\@title~ \@author}}}%
\addtocontents{toc}{\endgroup}
}{%
\typeout{Patching was successful}
}{%
\typeout{patching failed}
}%
\def\@IEEEdestroythesectionargument#1{\LaTeXStandardSection{#1}}%
\xapptocmd{\maketitle}{%
\renewcommand{\thesection}{\LaTeXStandardTheSection}%
\renewcommand{\thesubsection}{\LaTeXStandardTheSubSection}%
\renewcommand{\thesubsubsection}{\LaTeXStandardTheSubSubSection}%
\renewcommand{\theparagraph}{\LaTeXStandardTheParagraph}%
}{}{}%
\@addtoreset{section}{titlecounter}
\makeatother
\begin{document}
\onecolumn
\tableofcontents
\twocolumn
% Title and Author information Paper 1
\title{Title 1}
\author{Author 1}
% Make the title area
\maketitle
\section{First}
\subsection{First subsection of 1st section}%
\subsection{2nd subsection of 1st section}%
\subsection{3rd subsection of 1st section}%
\subsection{4th subsection of 1st section}%
\blindtext[10]
\section{Two}
\subsection{First subsection of 2nd section}%
\appendix
\section{First of Appendix}
% Title and Author information Paper 2
\title{Title 2}
\author{Author 2}
% Make the title area
\maketitle
\section{First from second paper}
\subsection{First subsection of 2nd section of 2nd article}%
\blindtext[20]
%$ Paper Content
\end{document}