\addcontentsline{toc}{section} 列出了不正确的数字

\addcontentsline{toc}{section} 列出了不正确的数字

使用报告类(没有选项可以更改),我试图实现以下格式:章节 > 场景(部分) > ScenarioTask(部分),其中每个章节都以 Scenario 开头\section*。为了保持相同的格式,我还对 ScenarioTask 使用 \section。示例:

\chapter{ChapterTitle} %to be numbered normally
\section*{Scenario #} scenario text here %to be numbered according to scenario # so Scenario 1 would be 1.0
 \section{ScenarioTask} scenario tasks here in enumerated lists %to be numbered Scenario#.Task#

我有以下命令,它重新编号\thesection、标记部分而不对其进行编号,然后将条目添加到目录中。我这样做是为了让条目位于目录中,但没有章节编号。问题是所有目录条目都相同。

\documentclass[twoside,openright,12pt]{report}
\newcounter{ScenarioNo} \stepcounter{ScenarioNo}
\newcommand{\scenario}{%
    \renewcommand\thesection{\arabic{ScenarioNo}.\arabic{TaskNo}}
    \section*{Scenario \theScenarioNo}\label{sec:scenario \theScenarioNo}
    \addcontentsline{toc}{section}{\nameref{sec:scenario \theScenarioNo}}
    \setcounter{TaskNo}{0}
    }
\renewcommand\thetable{\arabic{ScenarioNo}.\arabic{table}}
\preto{\section}{\stepcounter{TaskNo}}

当命令首次运行时,ScenarioNo 为 1。每次我发出命令时\scenario,ScenarioNo 都会增加一,因为我\stepcounter{ScenarioNo}之前\scenario。这对 TOC 条目不起作用。我必须让它变得比必要的更复杂。

\chapter{Chapter1Title}
\scenario
\renewcommand\thesection{\arabic{ScenarioNo}.\arabic{TaskNo}}
\section{ScenarioTask1}
\section{ScenarioTask2}
\stepcounter{ScenarioNo} \scenario
\section{ScenarioTask1}
\section{ScenarioTask2}
\stepcounter{ScenarioNo} \scenario
\section{ScenarioTask1}
\section{ScenarioTask2}

答案1

这只是对你追求的目标的猜测。也许需要改进:

enter image description here

\documentclass{report}

\newcounter{ScenarioTask}[section]
\renewcommand{\thesection}{\arabic{section}}
\newcommand{\scenario}{%
  \refstepcounter{section}%
  \section*{Scenario \thesection}
  \addcontentsline{toc}{section}{Section \thesection}%
  }
\renewcommand{\theScenarioTask}{\thesection.\arabic{ScenarioTask}}
\newcommand{\scenariotask}{%
  \refstepcounter{ScenarioTask}%
  \section*{Scenario Task \theScenarioTask}%
  \addcontentsline{toc}{section}{Scenario Task \theScenarioTask}%
}

\begin{document}  

\tableofcontents

\chapter{ChapterTitle} %to be numbered normally

%\section*{Scenario #} scenario text here %to be numbered according to scenario # so Scenario 1 would be 1.0
%\section{ScenarioTask} scenario tasks here in enumerated lists %to be numbered Scenario#.Task#
\scenario
\scenariotask
\scenariotask
\scenariotask

\scenario
\scenariotask
\scenariotask
\scenariotask
\scenariotask

\scenario
\scenariotask
\scenariotask
\scenariotask
\scenariotask
\scenariotask

\end{document}

相关内容