Проблемы с абзацами на полях

Проблемы с абзацами на полях

Я пишу несколько работ для своего класса и хочу пронумеровать задания двумя или тремя уровнями. Первый уровень должен быть простым числом, например 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}

введите описание изображения здесь

Связанный контент