儲存動態計數器的值

儲存動態計數器的值

我想要獲得以下項目組織:

  • A部分
    • 類別1
      • 第1.1項
      • 第1.2項
    • 類別2
      • 第2.1項
  • B部分
    • 類別1
      • 第1.3項
      • 第 1.4 項
    • 類別2
      • 第2.2項
      • 第2.3項
  • C節
    • 類別1
      • 項目1.5
    • 類別2
      • 第2.4項
      • 第2.5項
      • 第2.6項

程式碼如下:

\section{A}
\resetcategories
    \nextcategory
        \myitem{}
        \myitem{}
    \nextcategory
        \myitem{}

\section{B}
\resetcategories
    \nextcategory
        \myitem{}
        \myitem{}
    \nextcategory
        \myitem{}
        \myitem{}

\section{C}
\resetcategories
    \nextcategory
        \myitem{}
    \nextcategory
        \myitem{}
        \myitem{}
        \myitem{}

因此,每個動態類別內都有一個動態項目計數器,但其值會被儲存,並且即使重置類別計數器也可以恢復。

有沒有一種巧妙的方法可以使用自訂計數器或變數來實現此目的?

答案1

TeX 暫存器的常見操作如下所示:

\newcount\catnum
\expandafter \newcount\csname itemnum1\endcsname
\expandafter \newcount\csname itemnum2\endcsname
\def\inum{itemnum\the\catnum}

\def\bull#1{\noindent\hskip#1\parindent
            \hangindent=#1\parindent
            \llap{$\bullet$\ }\ignorespaces
}
\def\section#1{\par\bull1 \catnum=0 section #1}
\def\nextcategory{\par\advance\catnum by1 \bull2 category \the\catnum}
\def\myitem{\par
   \advance\csname\inum\endcsname by1 \bull3
   item \the\catnum.\expandafter\the\csname\inum\endcsname}
\let\resetcategories=\relax

\section{A}
\resetcategories
    \nextcategory
        \myitem{}
        \myitem{}
    \nextcategory
        \myitem{}

\section{B}
\resetcategories
    \nextcategory
        \myitem{}
        \myitem{}
    \nextcategory
        \myitem{}
        \myitem{}

\section{C}
\resetcategories
    \nextcategory
        \myitem{}
    \nextcategory
        \myitem{}
        \myitem{}
        \myitem{}

\bye

答案2

也許是這樣的,使用“恢復”enumitem列表?

\documentclass{article}
\usepackage{enumitem}

\newlist{sectionlist}{enumerate}{3}
\setlist[sectionlist,1]{label={\Alph*}}
\setlist[sectionlist,2]{label={\arabic*}}
\setlist[sectionlist,3]{label*={.\arabic*}}


\begin{document}
\begin{sectionlist}
\item Section

  \begin{sectionlist}
  \item Category 
    \begin{sectionlist}[series=first]
    \item Foo
    \item Other Foo
    \end{sectionlist}
  \item Category
    \begin{sectionlist}[series=second]
    \item Foo
    \item Other Foo
    \end{sectionlist}
  \end{sectionlist}

\item Section

  \begin{sectionlist}
  \item Category 

    \begin{sectionlist}[resume=first]
    \item Foo
    \item Other Foo
    \end{sectionlist}

  \item Category 
    \begin{sectionlist}[resume=second]
    \item Foo
    \item Other Foo
    \item Yet another foo
    \end{sectionlist}
  \end{sectionlist}



\item Section

  \begin{sectionlist}
  \item Category 

    \begin{sectionlist}[resume=first]
    \item Foo
    \item Other Foo
    \item Yet another foo
    \end{sectionlist}

  \item Category 
    \begin{sectionlist}[resume=second]
    \item Foo
    \item Other Foo
    \item Yet another foo
    \item Even yet another foo
    \end{sectionlist}
  \end{sectionlist}



\end{sectionlist}


\end{document}

在此輸入影像描述

相關內容