我的 titleclass 打破了子部分标题

我的 titleclass 打破了子部分标题

我正在使用该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

我强烈建议不是使用此类。

在此处输入图片描述

相关内容