Выключите переключатель \appendices и возобновите обычные метки разделов.

Выключите переключатель \appendices и возобновите обычные метки разделов.

Фон:

Я прилагаю несколько статей в стиле IEEE, использующих это решение.здесь.

Большинство статей включают приложения, использующие \appendicesпереключатель для переопределения \thesection, чтобы создать Приложения A, B, C и т. д. Проблема, с которой я столкнулся, заключается в том, что \thesection никогда не переопределяется, когда в документ вводится новая статья, и поэтому то, что должно было быть обозначено как Раздел 1, теперь является Приложением A.

Вопрос:

Как переопределить \thesection, чтобы возобновить обычную маркировку разделов в стиле ieeetra?

решение1

Я позволил себе бесстыдно украсть решение Включить \maketitle в оглавление для составления «книги» статей IEEEот того странного парня, который его предоставил (;-))

IEEEtranдовольно ограничителен в том смысле, что не позволяет sectionsпосле команды \appendixor \appendices. Таким образом, он определяет макрос

\def\@IEEEdestroythesectionargument#1

для выдачи предупреждения/ошибки. Это можно исправить, вставив макрос сохраненного раздела \let\LaTeXStandardSectionвместо предупреждения. (Небольшое предостережение: это не сработает для раздела с необязательным аргументом, однако --> лучший способ: удалить команду из \appendixetc.

Макросы \thesectionформата счетчика и т. д. необходимо восстановить в конце \maketitle!

Быстрый и грязный методПереопределить \appendicesи т. д. таким образом, чтобы это не делало ничего, кроме сброса формата счетчика для счетчиков уровня структурирования.

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

введите описание изображения здесь

Связанный контент