как переопределить раздел, чтобы получить этот результат?

как переопределить раздел, чтобы получить этот результат?

Я пишу руководство по решениям для задач в конце глав в опубликованной книге. Для этого мне нужны ненумерованные разделы, перечисленные в оглавлении, плюс мне нужно, чтобы название каждого ненумерованного раздела было точно Problem xx.yyтам, где xxесть \thechapterи yyесть \thesection.

Используя bookкласс документа, мне удалось сделать это следующим образом:

\section*{Problem~\thesection}\addcontentsline{toc}{section}{Problem~\thesection}\addtocounter{section}{1}

Мой вопрос в том, как мне определить новую команду секционирования или переопределить ее \section, \section*чтобы мне не пришлось переписывать все это для каждой проблемы. У меня более 100 проблем!

Вот 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}

Но, может быть, есть способ запретить печать номеров разделов в TOC, чтобы я мог использовать \section{}вместо \section*{}, так что не будет необходимости в \addtocounter, и т. д. Это было бы более чистым решением. Но я понятия не имею, как запретить печать номеров разделов в TOC ???

решение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управляет количеством места, оставшегося для набора раздела «числа».

Вот что получилось:

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

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

решение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} 

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

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