
私は本を書いていますが、各章の終わりに次のようなラベルの付いた問題のあるセクションがあります。
\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 など) が付けられていることです。そのため、たとえば、第 4 章で第 1 章の最初の問題を引用したい場合、本では「1」(数字の 1) だけになります。引用している問題が属する章を参照していないため、混乱が生じます。
私の質問は次のとおりです。問題を、それが属する章を考慮して列挙するにはどうすればよいでしょうか?
第 1 章の問題については 1.1、1.2、1.3、... のように考えていました。第 2 章の問題については 2.1、2.2、2.3、... のように考えていました。しかし、その方法がわかりません。
私は Latex にあまり詳しくないので、問題の解決策はできるだけ簡単なものにしていただきたいと思います。
アップデート:以下にサンプル コードを示します。これをコンパイルして、必要なものをよりよく理解してください。
\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
or whatever だけですが、参照は1.1
etcとして表示されます。
後で項目を挿入または削除する場合に備えて、 sでは明示的な番号を使用しないことをお勧めします。LaTeX ではまったく問題になりませんが、第 2 章の 9 番の問題を参照する\label{}
と、人間を非常に混乱させる傾向があります。chap3_prf5
\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
このリストには 2 つのレベルがあります。
\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}