背景:
ソリューションを使用したIEEEスタイルの論文をいくつか添付しますここ。
ほとんどの論文には、\appendices
スイッチを使用して再定義し、\thesection
付録 A、B、C などを作成する付録が含まれています。問題は、新しい論文がドキュメントに導入されたときに \thesection が再定義されないため、セクション 1 とラベル付けされるべきものが付録 A とラベル付けされることです。
質問:
ieeetran スタイルで通常のセクション マーキングを再開するには、 \thesection を再定義するにはどうすればよいですか?
答え1
私は恥ずかしげもなく解決策を盗むことを許しました IEEE 論文集をコンパイルするには、目次に \maketitle を含めます。それを提供してくれた変な人から(;-))
IEEEtran
はかなり制限的であり、またはコマンドsections
の後には許可されません。このようにして、マクロを定義します\appendix
\appendices
\def\@IEEEdestroythesectionargument#1
警告/エラーを発行します。警告の代わりに保存されたセクション マクロを挿入することで、これを修正できます\let\LaTeXStandardSection
。(小さな注意: ただし、オプションの引数を持つセクションでは機能しません --> より良い方法: コマンドをパッチして削除する\appendix
など。
!\thesection
の最後に、etc. カウンター形式のマクロを復元する必要があります。\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}