我正在使用该titlesec
包与 ACM SIG Alternate 文档类结合来创建一种特殊类型的子部分,如下所示:
\documentclass{sig-alt-full}
% +++++ Begin Experiment Subsection ++++++
\newcommand{\subparagraph}{} % not defined in cls template
\usepackage{titlesec}
\titleclass{\experiment}{straight}[\subsection]
\newcounter{experiment}
\renewcommand{\theexperiment}{(\roman{experiment})}
\titleformat{\experiment}[hang]{\normalfont\normalsize\bfseries}
{Experiment\,(\roman{experiment}):}{.5em}{}[]
\titlespacing{\experiment}{0pt}{*2.5}{.5em}
% +++++ End Experiment Subsection ++++++
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\subsection{Experiments}
\experiment{Not a Subsubsection}
\end{document}
问题是我想在文档的其他地方使用普通旧子小节。但是,根据我的新定义titleclass
,普通旧子小节标题的格式看起来与以前不同,标题中的编号也消失了。
我怎样才能获得我的\experiment
子小节,同时保持常规子小节不变?
答案1
最简单的方法是忘记与titlesec
使用的类不兼容,并\experiment
根据以下内容进行定义\subsubsection
:
\documentclass{sig-alt-full}
\usepackage{hyperref,bookmark}
%%% To cope with the "non standard" way the class uses
\newfont{\experimentfnt}{ptmb8t at 11pt}
\newcounter{experiment}
\renewcommand{\theexperiment}{(\roman{experiment})}
\newcommand{\experimentname}{Experiment}
\newcommand{\experiment}[1]{%
\subsubsection*{\refstepcounter{experiment}%
\experimentfnt Experiment~\theexperiment: #1}%
}
\begin{document}
\section{Section}\label{s}
\subsection{Subsection}
\subsubsection{Subsubsection}
\subsection{Experiments}
\experiment{Not a Subsubsection\label{ex1}}
In this experiment we do something; it is \autoref{ex1}.
\end{document}
唯一的缺点是必须指定标签里面论证。然而,看起来该类在 方面存在许多问题hyperref
,但问题不仅仅在于:文件中的标签写错了.aux
,因为\thepage
等同于\relax
。
我强烈建议不是使用此类。