Estou escrevendo um manual de soluções para os problemas no final dos capítulos de um livro publicado. Para isso, preciso de seções não numeradas listadas no sumário, além de precisar que o título de cada seção não numerada esteja exatamente Problem xx.yy
onde xx
is \thechapter
e yy
is \thesection
.
Usando a book
classe document, consegui fazer isso:
\section*{Problem~\thesection}\addcontentsline{toc}{section}{Problem~\thesection}\addtocounter{section}{1}
Minha pergunta é: como posso definir um novo comando de seccionamento ou redefinir \section
ou \section*
para não precisar reescrever tudo isso para cada problema. Tenho mais de 100 problemas!
Aqui está um 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}
Mas pode haver uma maneira de suprimir a impressão de números de seção no índice para que eu possa usar \section{}
em vez de \section*{}
, para que não haja necessidade de \addtocounter
, etc. Seria uma solução mais limpa. Mas não tenho ideia de como suprimir a impressão dos números das seções no sumário ???
Responder1
Basta alocar um contador próprio para problemas e enterrar em uma macro as tarefas repetitivas
\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}
Responder2
Você só precisa redefinir como o contador de seções \thecounter
é impresso:
\renewcommand\thesection{Problem \arabic{chapter}.\arabic{section}}
Se você fizer apenas isso, entretanto, os rótulos "Problema 1.1" colidirão com os nomes das seções no índice. Se você não deseja que as seções sejam exibidas no índice, use
\setcounter{tocdepth}{0}
Se você os quiser, uma maneira de resolver o problema de colisão é usar otocloftpacote:
\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}
Usandotoclofta variável \cftsecnumwidth
controla a quantidade de espaço restante para a composição da seção "números".
Aqui está a saída:
Responder3
Você pode fazer isso com titlesec/titletoc
. Aqui está um código; Eu defino um problem
comando, com um argumento opcional (o título do problema, se tiver um. Você também pode ter seções não numeradas:
\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}