Incluir \maketitle no índice para compilar o "livro" de artigos do IEEE

Incluir \maketitle no índice para compilar o "livro" de artigos do IEEE

Fundo:

Estou criando uma compilação de vários artigos no formato IEEE. Esta compilação terá um único índice. Cada artigo inclui um título e \maketitleum comando. Gostaria que o sumário incluísse o título de cada artigo como nível primário, juntamente com todas as seções/subseções, etc.

    \documentclass[journal]{IEEEtran}

    \begin{document}
    \onecolumn
    \tableofcontents
     \twocolumn        


    % Title and Author information  Paper 1
        \title{Title 1}
        \author{Author 1}
        % Make the title area
        \maketitle
       $ Paper Content

    % Title and Author information  Paper 2
        \title{Title 2}
        \author{Author 2}
        % Make the title area
        \maketitle
       $ Paper Content

\end{document}

Deve gerar um TOC que se aproxime disso:

  1. Título 1

    I - Seção 1

    IA Subseção 1

    Subseção IB 2

    II - Seção 2

  2. Título 2

    I - Seção 1

    IA Subseção 1

    Subseção IB 2

    II - Seção 2

Pergunta:

Como posso modificar o sumário para incluir títulos?

Estou aberto a outras sugestões. Sei que o ieeetran ou outras classes de artigos/diários não usam comandos \chapterou \part, mas se houvesse uma maneira de forçar essa operação sem alterar a classe, eu também estaria interessado em tal solução.

Responder1

\maketitleé um comando que se 'desativa' logo antes do final da macro (bem, \relaxentão é editado). Como tal, uma nova chamada para esta macro não fornecerá nada. Usando um comando patch, isso \let\maketitle\relaxpode ser capturado e um \addcontentslinecomando injetado, que fará a entrada do ToC.

Introduzi ainda um titlecountercontador, que é redefinido automaticamente, então \labeltambém deve funcionar. O formato da entrada do ToC é bastante simples no momento – mude à vontade.

Mico teve uma objeção importante: deveria haver um \clearpagedireito no início do \maketitlecomando, que despachará possíveis carros alegóricos do artigo anterior. Porém, restrinjai esse comportamento ao 2º \maketitleetc.

\documentclass[journal]{IEEEtran}

\usepackage{etoolbox}%
\usepackage{xpatch}
\usepackage{blindtext}

\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}\addcontentsline{toc}{section}{\protect{\numberline{\thetitlecounter}{\@title~ \@author}}}}{\typeout{Patching was successful}}{\typeout{patching failed}}%
\makeatother
\begin{document}
\onecolumn
\tableofcontents
\twocolumn        



% Title and Author information  Paper 1
\title{Title 1}
\author{Author 1}
% Make the title area
\maketitle
\blindtext[10]
%$ Paper Content

% Title and Author information  Paper 2
\title{Title 2}
\author{Author 2}
% Make the title area
\maketitle
\blindtext[20]
%$ Paper Content

\end{document}

insira a descrição da imagem aqui

Versão com recuo de nível

Use \setlength{\articlesectionindent}{10pt}(ou qualquer outro valor apropriado), para obter o recuo dos níveis relativos à entrada do título toc.

O reset das seções etc. é feito com o comando \@addtoreset{section}{titlecounter}, ou seja, cada vez que o titlecounteré pisado, as seções são resetadas (e consecutivamente as subseções etc. também)

\documentclass[journal]{IEEEtran}

\usepackage{etoolbox}%
\usepackage{xpatch}
\usepackage{blindtext}
\usepackage{tocloft}%

\newlength{\articlesectionshift}%
\setlength{\articlesectionshift}{10pt}%
\addtolength{\cftsecindent}{\articlesectionshift}%

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

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

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

insira a descrição da imagem aqui

** Aviso ** Ambas as versões falharão em conjunto com hyperrefo pacote. É algum problema com o \footnotemarkcomando.

informação relacionada