以下のアイテムを整理したいと思います。
- セクションA
- カテゴリー1
- 項目 1.1
- 項目 1.2
- カテゴリー2
- 項目2.1
- カテゴリー1
- セクションB
- カテゴリー1
- 項目 1.3
- 項目 1.4
- カテゴリー2
- 項目2.2
- 項目 2.3
- カテゴリー1
- セクションC
- カテゴリー1
- 項目 1.5
- カテゴリー2
- 項目 2.4
- 項目 2.5
- 項目 2.6
- カテゴリー1
次のようなコードになります:
\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 つの動的アイテム カウンターがありますが、その値は保存され、カテゴリ カウンターがリセットされた場合でも再開できます。
カスタム カウンターまたは変数を使用してこれを実現する簡単な方法はありますか?
答え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}