
Я пишу книгу, и в конце каждой главы у меня есть раздел с обозначенными проблемами, который выглядит следующим образом:
\chapter{Chapter 1}
Bla bla bla...
\section*{Problems:}
\begin{enumerate}
\item \label{ch1_pr1} Prove...
\item \label{ch1_pr2} Calculate...
\item \label{ch1_pr3} Fill the details in...
\end{enumerate}
Проблема этого подхода в том, что каждый раздел задач пронумерован абсолютно одинаково в каждой главе (1, 2, 3, 4 и т. д.), поэтому, если, скажем, в четвертой главе я захочу сослаться на первую задачу первой главы, в моей книге будет указано просто «1» (номер один), что внесет путаницу, поскольку это не будет указывать на главу, к которой относится цитируемая мной задача.
Итак, мой вопрос:Как мне перечислить свои проблемы, чтобы они учитывали главу, к которой они относятся?
Я думал о чем-то вроде 1.1, 1.2, 1.3, ... для задач в первой главе, 2.1, 2.2, 2.3, ... для задач во второй главе и т. д. Но я не знаю, как это сделать.
Поскольку я не очень хорошо разбираюсь в латексе, я бы попросил, чтобы решение моей проблемы было как можно более простым.
Обновлять:Вот пример кода, чтобы вы могли его скомпилировать и лучше понять, что мне нужно:
\documentclass[12pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\begin{document}
\chapter{First}
Bla bla bla...
\section*{Problems:}
\begin{enumerate}
\item \label{ch1_pr1} Prove...
\item \label{ch1_pr2} Calculate...
\item \label{ch1_pr3} Fill the details in...
\end{enumerate}
\chapter{Second}
Bla bla bla....
\section*{Problems:}
\begin{enumerate}
\item \label{ch2_pr1} Prove...
\item \label{ch2_pr2} Calculate...
\item \label{ch2_pr3} Fill the details in...
\end{enumerate}
\chapter{Third}
First problem in Chapter 1:~\ref{ch1_pr1}
First problem in Chapter 2:~\ref{ch2_pr1} \\
The issue: Different problems appear to be the same when cited!
\end{document}
решение1
Вот похожее решение с использованием enumitem
пакета, которое значительно упрощает определение новых и настраиваемых списков. Я также использовал problems
для имени среды. Здесь метка в исходном наборе задач просто 1
или что-то еще, но ссылка отображается как 1.1
и т. д.
Лучше не использовать явные числа в вашем \label{}
s на случай, если вы вставите или удалите элементы позже. Хотя LaTeX не будет беспокоиться, он имеет тенденцию сильно сбивать с толку людей, если chap3_prf5
ссылается на проблему под номером 9 в главе 2.
\documentclass{book}
\usepackage{enumitem}
\newlist{problems}{enumerate}{1}
\setlist[problems]{label={\arabic*.}, ref={\thechapter.\arabic*}}
\begin{document}
\chapter{Chapter 1}
Bla bla bla \dots
\section*{Problems:}
\begin{problems}
\item \label{pr:intro_prove} Prove \dots
\item \label{pr:intro_calc} Calculate \dots
\item \label{pr:intro_details} Fill the details in \dots
\end{problems}
\chapter{Pethau Pellach}
Fel dywedwyd ym mhroblem \ref{pr:intro_calc} \dots
\end{document}
Если вы предпочитаете, чтобы номер главы отображался и на оригинальной этикетке, измените
\setlist[problems]{label={\arabic*.}, ref={\thechapter.\arabic*}}
к
\setlist[problems]{label={\thechapter.\arabic*}}
решение2
Вот способ сделать это, определив новый список на основе enumerate
, с некоторыми спецификациями, который я назвал , problems
который имеет два уровня:
\documentclass{report}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{etoolbox}
\AtBeginEnvironment{enumerate}{\everymath{\displaystyle}}
\newlist{problems}{enumerate}{2}
\setlist[problems]{wide=0pt}
\setlist[problems, 1]{label =\thechapter.\arabic*, font=\bfseries, wide=0pt}
\setlist[problems,2]{label =(\alph*), wide =0.5em, topsep=2pt, itemsep =2pt}
\begin{document}
\chapter{Chapter 1}
Bla bla bla...
\section*{Problems:}
\begin{problems}
\item \label{ch1_pr1} Prove...
\begin{problems}
\item A first question
\item Another silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question.
\end{problems}
\item \label{ch1_pr2} Calculate...
\item \label{ch1_pr3} Fill the details in...Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
\end{problems}
\chapter{Chapter 2}
Bla bla bla...
\section*{Problems:}
\begin{problems}
\item \label{ch1_pr1} Prove...
\begin{problems}
\item A first question
\item Another silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question. A silly question.
\end{problems}
\item \label{ch1_pr2} Calculate...
\item \label{ch1_pr3} Fill the details in...Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
\end{problems}
\end{document}