Я пишу несколько работ для своего класса и хочу пронумеровать задания двумя или тремя уровнями. Первый уровень должен быть простым числом, например 1), а следующий уровень должен быть обозначен числами. Рассматривая этот вопросКак пронумеровать абзацы (и разделы) на полях?это почти то, что мне нужно. Я попробовал изменить нумерацию сам, но столкнулся с некоторыми трудностями.
Как можно заметить, первый подпункт пропущен и заменен на ). Я не знаю, является ли мой код лучшим, и если у кого-то есть лучший способ получить аналогичный вывод, я был бы рад его услышать. Я нахожу немного странным смешивание уровней \section и \subsection с уровнями \paragraph.
\documentclass[10pt,a4paper]{article}
\usepackage{amssymb,mathtools} % Matematikk.
\usepackage{enumitem} % Mer muligheter for lister
\usepackage{titlesec}
\usepackage{etoolbox}
\setcounter{secnumdepth}{5}
\renewcommand\thesection{\bfseries\small\arabic{section})}
% this length controls tha hanging indent for titles
% change the value according to your needs
\newlength\titleindent
\setlength\titleindent{1cm}
\pretocmd{\paragraph}{\stepcounter{subsection}}{}{}
\pretocmd{\subparagraph}{\stepcounter{subsubsection}}{}{}
\newcounter{problem}[section]
\setcounter{problem}{1}
\renewcommand{\theproblem}{\bfseries\small\alph{problem})}
\titleformat{\paragraph}[runin]
{\normalfont\large}{\llap{\parbox{\titleindent}{\thesection\hfill}}\stepcounter{section}}{0em}{}
\titleformat{\subparagraph}[runin]
{\normalfont\large}{\llap{\parbox{\titleindent}{\theproblem\hfill}}\stepcounter{problem}}{0em}{}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\titlespacing*{\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\setcounter{section}{1}
\begin{document}
\paragraph{}
Given an element $x$, $x_v$ is its value and $x_s$ its unit.
Let the set $D$ be a standard deck of $52$ cards.
\subparagraph{}
Find the cardinality of the following sets:
\begin{enumerate}[leftmargin=*]
\item $S = \left\{ x \in D \mid x_s = \text{spades} \right\}$
\item $B = \left\{ \text{the set of court cards in } D \right\}$
\item $S \cap B$
\item $S \cup B$
\item $S\,\backslash\,B$
\item $S \times B$
\item $\left\{ (x,y) \in D \times D \mid x = y \right\}$
\end{enumerate}
\subparagraph{}
Fill in the correct symbol $\in,\,\subseteq\,\, \nsubseteq$
\begin{enumerate}[leftmargin=*]
\item ace of hearts
\item ace of hearts
\item S D
\item S B
\end{enumerate}
\subparagraph{Fee fuu foo}
\end{document}
решение1
Я действительно не понимаю, почему вы используете section
счетчик для абзацев и subsection
счетчик для подпунктов и новый счетчик problem
; вот вариант, в котором каждая секционная единица использует свой естественный счетчик, и никакие дополнительные счетчики не нужны:
\documentclass[10pt,a4paper]{article}
\usepackage{amssymb,mathtools}
\usepackage{enumitem}
\usepackage{titlesec}
\setcounter{secnumdepth}{5}
% this length controls tha hanging indent for titles
% change the value according to your needs
\newlength\titleindent
\setlength\titleindent{1cm}
\renewcommand\theparagraph{\bfseries\small\arabic{paragraph})}
\renewcommand\thesubparagraph{\bfseries\small\alph{subparagraph})}
\titleformat{\paragraph}[runin]
{\normalfont\large}{\llap{\parbox{\titleindent}{\theparagraph\hfill}}}{0em}{}
\titleformat{\subparagraph}[runin]
{\normalfont\large}{\llap{\parbox{\titleindent}{\thesubparagraph\hfill}}}{0em}{}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\titlespacing*{\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{0em}
\setlist[enumerate]{leftmargin=*}
\begin{document}
\paragraph{}
Given an element $x$, $x_v$ is its value and $x_s$ its unit.
Let the set $D$ be a standard deck of $52$ cards.
\subparagraph{}
Find the cardinality of the following sets:
\begin{enumerate}
\item $S = \left\{ x \in D \mid x_s = \text{spades} \right\}$
\item $B = \left\{ \text{the set of court cards in } D \right\}$
\item $S \cap B$
\item $S \cup B$
\item $S\,\backslash\,B$
\item $S \times B$
\item $\left\{ (x,y) \in D \times D \mid x = y \right\}$
\end{enumerate}
\subparagraph{}
Fill in the correct symbol $\in,\,\subseteq\,\, \nsubseteq$
\begin{enumerate}
\item ace of hearts
\item ace of hearts
\item S D
\item S B
\end{enumerate}
\subparagraph{Fee fuu foo}
\end{document}
Если вы не собираетесь использовать аргументы секционных единиц, то кажется «неестественным» использовать секционные единицы только для достижения нумерации; вот новый вариант вашего кода без использования секционных единиц, но с использованием вместо этого новой списочной среды, определенной с помощью пакета enumitem
:
\documentclass[10pt,a4paper]{article}
\usepackage{amssymb,mathtools}
\usepackage{enumitem}
\usepackage{titlesec}
\newlength\titleindent
\setlength\titleindent{1cm}
\newlist{problem}{enumerate}{3}
\setlist[problem,1]{label=\textbf{\arabic*)},leftmargin=0pt,labelsep=\titleindent,itemsep=3.25ex}
\setlist[problem,2]{label=\textbf{\alph*)},leftmargin=0pt,labelsep=\titleindent,itemindent=-7pt,itemsep=3.25ex}
\setlist[problem,3]{label=\arabic*.,leftmargin=\dimexpr\titleindent-20pt\relax,labelsep=10pt}
\begin{document}
\begin{problem}
\item Given an element $x$, $x_v$ is its value and $x_s$ its unit.
Let the set $D$ be a standard deck of $52$ cards.
\begin{problem}
\item Find the cardinality of the following sets:
\begin{problem}
\item $S = \left\{ x \in D \mid x_s = \text{spades} \right\}$
\item $B = \left\{ \text{the set of court cards in } D \right\}$
\item $S \cap B$
\item $S \cup B$
\item $S\,\backslash\,B$
\item $S \times B$
\item $\left\{ (x,y) \in D \times D \mid x = y \right\}$
\end{problem}
\item Fill in the correct symbol $\in,\,\subseteq\,\, \nsubseteq$
\begin{problem}
\item ace of hearts
\item ace of hearts
\item S D
\item S B
\end{problem}
\item Fee fuu foo
\end{problem}
\end{problem}
\end{document}