私は出版された本の章末にある問題の解答マニュアルを書いています。そのためには、目次に番号なしのセクションをリストする必要があり、さらに番号なしの各セクションのタイトルが と の位置に正確に設定されている必要がProblem xx.yy
あります。xx
\thechapter
yy
\thesection
ドキュメント クラスを使用してbook
、次のように実行できました。
\section*{Problem~\thesection}\addcontentsline{toc}{section}{Problem~\thesection}\addtocounter{section}{1}
私の質問は、各問題ごとにすべてを書き直さなくても済むように、新しいセクション コマンドを定義または再定義するにはどうすればよいかということです\section
。問題は 100 個以上あります。\section*
MWEはこちら
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\begin{document}
\tableofcontents
\chapter{Introductory Problems}\addtocounter{section}{1}
\section*{Problem~\thesection}\addcontentsline{toc}{section} {Problem~\thesection}\addtocounter{section}{1}
Here is bla bla bla the solution to bla bla bla.
\end{document}
\section{}
しかし、目次のセクション番号の印刷を抑制して、の代わりにを使用できるようにする方法があるかもしれません。\section*{}
そうすれば、 などが不要になります\addtocounter
。その方が、よりクリーンなソリューションになります。しかし、目次のセクション番号の印刷を抑制する方法がわかりません。
答え1
問題ごとに独自のカウンターを割り当て、繰り返しのタスクをマクロに埋め込むだけです
\documentclass[11pt,letterpaper]{book}
\newcommand\problem{%
\refstepcounter{problem}%
\section*{Problem \theproblem}%
\addcontentsline{toc}{section}{Problem \theproblem}%
}
\newcounter{problem}[chapter]
\renewcommand{\theproblem}{\thechapter.\arabic{problem}}
\begin{document}
\tableofcontents
\chapter{Introductory Problems}
\problem
Here is bla bla bla the solution to bla bla bla.
\problem
Here is bla bla bla the solution to bla bla bla.
\chapter{Harder Problems}
\problem
Here is bla bla bla the solution to bla bla bla.
\problem
Here is bla bla bla the solution to bla bla bla.
\end{document}
答え2
セクション カウンター\thecounter
の印刷方法を再定義するだけです。
\renewcommand\thesection{Problem \arabic{chapter}.\arabic{section}}
ただし、これだけだと、「問題 1.1」のラベルが目次のセクション名と衝突してしまいます。目次にセクションを表示したくない場合は、
\setcounter{tocdepth}{0}
もしあなたがそれらを望むなら、衝突の問題を解決する一つの方法は、トクロフトパッケージ:
\documentclass{book}
\usepackage{tocloft}
\setcounter{tocdepth}{2}
\renewcommand\thesection{Problem \arabic{chapter}.\arabic{section}}
\settowidth\cftsecnumwidth{Problem 8.88}
\begin{document}
\tableofcontents
\chapter{First chapter}
\section{First problem, chapter one}
\section{Second problem, chapter one}
\chapter{Second chapter}
\section{First problem, chapter two}
\section{Second problem, chapter two}
\end{document}
使用トクロフトこの変数は、\cftsecnumwidth
セクション「numbers」をタイプセットするために残されるスペースの量を制御します。
出力は次のとおりです。
答え3
でそれを行うことができますtitlesec/titletoc
。ここにコードがあります。problem
オプションの引数(問題のタイトルがある場合はそのタイトル)を持つコマンドを定義します。番号なしのセクションを持つこともできます。
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{lipsum}
\titleformat{name=\section,numberless}[hang]{\large\bfseries}{}{0pt}{\addcontentsline{toc}{section}{#1}}
\titleformat{\section}[hang]{\large\bfseries}{Problem~\thesection}{1em}{}
\newcommand\problem[1][]{\section{#1}}
\titlecontents{section}[1.5em]{\smallskip}%
{Problem~\thecontentslabel~}%numbered
{}%numberless\
{\hfill\quad\contentspage}[\smallskip]%
\begin{document}
\tableofcontents
\chapter{Introductory Problems}%
\problem
\lipsum[1-3]
\problem
\lipsum[4-6]
Here is bla bla bla the solution to bla bla bla.
\problem[(the marriage lemma)]
Here is bla bla bla the solution to bla bla bla.
\section*{A numberless section}%
\lipsum[7-9]
\end{document}