如何使用计数器根据计数器值设置节、章或小节?

如何使用计数器根据计数器值设置节、章或小节?

假设我有自己的柜台

\newcounter{x}
\setcounter{x}{0}

现在我想根据 的值开始一个新的“部分” x。例如,如果x==-1我想要 \part,并且如果x==0那么它将是\chapter,并且如果x==1它将是\section等等。

我不想每次都写这样的内容(甚至不知道它是否是有效的语法)

   \ifnum \value{x} \eq  -1
         \part             
   \else
        \ifnum \value{x} \eq 0
           \chapter
        ...
        \fi
  \fi
  ...

我只想写

  \makeSectionTypeBasedOnThisValue{x}{title of the section of chapter is here}

此命令将根据 的值映射到正确的命令x。我将确保x始终介于 -1 和 5 之间,因为这些是有效值。我使用的是书本风格。

我有理由这样做。(简而言之,我正在构建我的大型乳胶文档树,将它们组合成一个文档,并且我希望能够从任何级别开始构建它。因此,根据我在树中开始构建的位置,部分编号会有所不同。有时同一级别可能是,而\section其他时候该级别可能变成\subsection。所以我不想在 Latex 文件中硬编码\section\chapter命令,但我希望这些取决于文件在树中的级别。计数器将代表我从树中开始构建的级别)

有没有简单的方法可以做到这一点?我是 Latex 的新手。

答案1

使用\ifcase,您可以有选择地逐步浏览可能的数值:

在此处输入图片描述

\documentclass{report}
\newcounter{myseccntr}
\newcommand{\makeSectionTypeBasedOnThisValue}[1]{%
  \setcounter{myseccntr}{\numexpr#1+1}%
  \ifcase\value{myseccntr}% -1
    \expandafter\part
  \or % 0
    \expandafter\chapter
  \or % 1
    \expandafter\section
  \or % 2
    \expandafter\subsection
  \or % 3
    \expandafter\subsubsection
  \or % 4
    \expandafter\paragraph
  \or % 5
    \expandafter\subparagraph
  \fi%
}
\begin{document}
\tableofcontents
\makeSectionTypeBasedOnThisValue{-1}{Part}
\makeSectionTypeBasedOnThisValue{0}{Chapter}
\makeSectionTypeBasedOnThisValue{1}{Section}
\makeSectionTypeBasedOnThisValue{2}{Subsection}
\makeSectionTypeBasedOnThisValue{1}{Section}
\makeSectionTypeBasedOnThisValue{-1}{Part}
\makeSectionTypeBasedOnThisValue{0}{Chapter}
\makeSectionTypeBasedOnThisValue{1}{Section}
\end{document}

相关内容