ToC em memórias sem capítulos

Oct 08 2020

Eu uso a classe de memórias para escrever um resumo e uso apenas seções e subseções e obtive um índice analítico vazio. Como faço para corrigir isso? Gostei daqui: memórias sem capítulos mas não adiantou.

Meu código:

\documentclass[a4paper,14pt,article,oneside,openany]{memoir}

% --------------------------------------------------------

\usepackage{geometry}
\geometry{left=25mm,right=10mm,top=20mm,bottom=20mm,nofoot,nomarginpar}
\setlength{\topskip}{0pt}
\setlength{\footskip}{12.3pt}
%%% Колонтитулы %%%
\makeevenhead{plain}{}{}{}
\makeoddhead{plain}{}{}{}
\makeevenfoot{plain}{}{\thepage}{}
\makeoddfoot{plain}{}{\thepage}{}
\pagestyle{plain}
%------------------------------
\usepackage[final]{microtype} % межсимовольный рендеринг, борящийся с оверфуллами

\usepackage[no-math]{fontspec}
\setmainfont{STIX2Text}[
    Path           = ./fonts/STIXv2.0.2/ ,
    UprightFont    = *-Regular ,
    BoldFont       = *-Bold ,
    ItalicFont     = *-Italic ,
    BoldItalicFont = *-BoldItalic ]

\usepackage{unicode-math}
\setmathfont{STIX2Math}[
    Path = ./fonts/STIXv2.0.2/ ]

\usepackage[english,russian]{babel}
\usepackage[labelsep=period,labelfont=bf,figurename={Рис.},figurewithin=none]{caption}
\usepackage{cite}
\usepackage{enumerate}
\usepackage{float}
\usepackage{graphicx}
\usepackage{indentfirst}

\OnehalfSpacing* %полуторный интервал для всего текста
\renewcommand\tableofcontents{\large {\textbf{Содержание}}} %%% переименовали оглавление в memoir на содержание
% --------------------------------------------------------
\counterwithout{section}{chapter}

\begin{document}

\input{title}

\newpage
\tableofcontents
\newpage

\input{introduction}
\input{theory}
\input{methods}
\input{high_frequency}
\input{conclusion}
\end{document}

Respostas

daleif Oct 08 2020 at 16:13

Se entendi sua resposta corretamente, você deseja apenas usar as seções numeradas e ainda ter seus títulos exibidos no sumário?

Isso é fácil com memoir

\setsecnumdepth{none}
\maxsecnumdepth{none} % due to \mainmatter

e use \sectione amigos normalmente.

PeterWilson Oct 08 2020 at 05:33

Se você deseja usar memoirsomente com sectione abaixo, use-o com a articleopção, em que \chapterestá definido como \section, \sectionestá definido como \subsection, etc.

Obrigado pelo seu MWE que não funcionou para mim porque eu não tinha a fonte que você estava usando. Aqui está uma versão simplificada de seu MWE que não compõe capítulos e fornece um ToC.

% memtocprob.tex SE 565843
\documentclass[a4paper,14pt,article,oneside,openany]{memoir}

%\usepackage[english,russian]{babel}
\begin{document}

%\input{title}

\newpage
\tableofcontents*
\newpage

%\section{Introduction} %\input{introduction}
\chapter{Introduction}
Introductory text.
\section{Stuff}
More text.
%\input{theory}
%\input{methods}
%\input{high_frequency}
%\input{conclusion}
\end{document}

No entanto, se você remover o comentário \usepackage[english,russian]{babel}, nenhum ToC será produzido. O problema está no uso do babelpacote que nunca usei.

Fidelity Oct 08 2020 at 15:50

O problema foi resolvido pelo método sugerido aqui: https://stackoverflow.com/a/4002358

\newcommand{\huection}[1]{%
    \section*{#1}%
    \addcontentsline{toc}{section}{#1}%
}

\maxtocdepth{subsection}
\newcommand{\subhuection}[1]{%
    \subsection*{#1}%
    \addcontentsline{toc}{subsection}{#1}%
}

Substituí tudo \sectionpor \huectione tudo \subsectionpor \subhuection.

Fran Oct 08 2020 at 16:56

Você não precisa de novos comandos, nem dos \counterwithout{section}{chapter}truques.

Usar a articleopção \chaptersé como seção, então você só precisa substituir \sectionpor \chaptere \subsectionpor \sectione assim por diante por subnível, se houver algum.

Observe que as versões com estrela dos comandos de seção (\ capítulo *, \ seções *, etc.) são projetadas para (1) não serem numeradas e (2) aparecerem pontos no ToC.

Se você quiser apenas que os cabeçalhos não numerados sejam modificados secnumdepth(como apontado por daleif, no livro de memórias você pode usar \ setsecnumdepth e \ maxsecnumdepth para isso, consulte a seção 6.3 do manual do livro de memórias) e para mostrá-los na configuração ToC tocdepthcorretamente: Exemplo usando o \ setcounter padrão :

\documentclass[article]{memoir}
\setcounter{secnumdepth}{-2}
\setcounter{tocdepth}{5}
\begin{document}
\tableofcontents{}
\chapter{foo} The (fake) section
\section{bah} The (fake) subsection
\end{document}

Caso você queira misturar capítulos e seções numerados e não numerados no ToC, use as versões com estrela e não com estrela e \ addcontentsline conforme necessário. Exemplo:

\documentclass[article]{memoir}
\begin{document}
\tableofcontents{}
\chapter{foo} The (fake) section
\section{bah} The (fake) subsection
\addcontentsline{toc}{chapter}{baz}
\chapter*{baz} Another  (fake) section
\addcontentsline{toc}{section}{buf}
\section*{buf} Another  (fake) subsection
\end{document}