Как заставить главу *, раздел * и подраздел * появляться в оглавлении - PullRequest
18 голосов
/ 23 октября 2010

Мне нужно создать PDF-документ, в котором мне нужно, чтобы некоторые «главы» (вместе с разделами и подразделами) не были пронумерованы, но при этом были включены в ToC.

Это для моей магистерской диссертации,Я использую класс документа книги, потому что мне не нравятся мемуары по умолчанию.

Если я использую \chapter*, то LaTeX удалит главу из ToC.Но я тоже должен иметь их в ToC.Кроме того, заголовки (фантазии) не изменяются с \chapter*.

Общая структура диссертации:

\maketitle %% A custom one
\frontmatter
\tableofcontents
\listoftables
\listoffigures

\chapter*{Abstract}
\chapter*{Introduction} %% This "chapter" presents the whole thesis

\mainmatter

%% Here the real chapters are written

\appendix
%% Appendixes here

%% bibliography

Как я могу сделать \chapter*, \section*\subsection* появиться в ToC и изменить заголовки?

С наилучшими пожеланиями, Мануэль.

ОБНОВЛЕНИЕ: Я думаю, что я могу использовать некоторые пакеты, которые мешают способу верхних и нижних колонтитуловгенерируются.Ответ Smilingthax дает ответ на первую часть вопроса: теперь у меня есть мои \ главы * по оглавлению.

Это моя полная преамбула:

\usepackage[sort&compress,round,semicolon]{natbib}
\usepackage{babel}
\usepackage{setspace}
%% inputenc so we can write in spanish
\usepackage[utf8]{inputenc}

\usepackage{fixltx2e} % LaTeX patches, \textsubscript
\usepackage{cmap} % fix search and cut-and-paste in PDF
\usepackage{ifthen}
%% \usepackage{float} % float configuration
%% \floatplacement{figure}{TH} % place figures here definitely

%% fontenc so we can use TrueType fonts
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{garamond}
\usepackage{graphicx}
\usepackage{titlesec}

\usepackage[table]{xcolor}
%% Custom colors
\definecolor{blue}{rgb}{0.2,0.2,0.95}
\definecolor{green}{rgb}{0.2,0.95,0.2}
\definecolor{red}{rgb}{0.95,0.2,0.2}
\definecolor{cyan}{rgb}{0,0,0.95}
\definecolor{ligthred}{rgb}{1, 0, 0}
\definecolor{black}{rgb}{0, 0, 0}

\definecolor{shade}{HTML}{D4D7FE} %light blue shade

% Margins
\usepackage[left=0.9in,top=1in,right=0.7in,bottom=1in]{geometry}


\usepackage[pdftex, colorlinks=true, citecolor=ligthred,
  urlcolor=blue]{hyperref}

\widowpenalty9000
\clubpenalty7000

\usepackage{titlesec}
\newcommand{\bigrule}{\titlerule[0.5mm]}

\renewcommand{\rmdefault}{bch} 

\titleformat{\chapter}[display]
{\bfseries\Huge}
{\garamond
% DESCOMENTAR PARA SUBIR LOS CAPITULOS
\vspace{-1.125in} \titlerule \filleft
\Large\chaptertitlename\ \Large\thechapter}{0mm}
{\filleft}[\vspace{0.5mm} \bigrule]

\let\cite=\citep

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}  %% Clears all headers

% admonition (specially marked topic)
\providecommand{\DUadmonition}[2][class-arg]{%
  % try \DUadmonition#1{#2}:
  \ifcsname DUadmonition#1\endcsname%
    \csname DUadmonition#1\endcsname{#2}%
  \else
    \begin{center}
      \fbox{\parbox{0.9\textwidth}{#2}}
    \end{center}
  \fi
}

% title for topics, admonitions and sidebar
\providecommand*{\DUtitle}[2][class-arg]{%
  % call \DUtitle#1{#2} if it exists:
  \ifcsname DUtitle#1\endcsname%
    \csname DUtitle#1\endcsname{#2}%
  \else
    \smallskip\noindent\textbf{#2}\smallskip%
  \fi
}

% error admonition title
\providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}

% fieldlist environment
\ifthenelse{\isundefined{\DUfieldlist}}{
  \newenvironment{DUfieldlist}%
    {\quote\description}
    {\enddescription\endquote}
}{}

% legend
\ifthenelse{\isundefined{\DUlegend}}{
  \newenvironment{DUlegend}{\small}{}
}{}

%%% Fallback definitions for Docutils-specific commands
% numeric or symbol footnotes with hyperlinks
\providecommand*{\DUfootnotemark}[3]{%
  \hyperlink{#2}{\textsuperscript{#3}}\raisebox{1em}{\label{#1}}%
}

\providecommand{\DUfootnotetext}[4]{%
  \begingroup%
  \renewcommand{\thefootnote}{%
    \protect\hyperlink{#2}{#3}}%
  \protect\raisebox{1em}{\protect\label{#1}}%
  \footnotetext{#4}%
  \endgroup%
}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\newlength{\DUtablewidth} % internal use in tables


\usepackage{tikz}
\usepackage{bbding}

\usetikzlibrary{arrows,fit}
\usepackage{amsmath,bm,times}
\newcommand{\mx}[1]{\mathbf{\bm{#1}}} % Matrix command
\newcommand{\vc}[1]{\mathbf{\bm{#1}}} % Vector command

Ответы [ 5 ]

16 голосов
/ 23 октября 2010

Не думаю, что для этого существует специальная команда.Но вы можете использовать

  \addcontentsline{toc}{chapter}{#1}

, чтобы добавить его в оглавление.Кстати, у меня не было проблем с \ chapter * и фантазией, поэтому я использовал:

\newcommand\chap[1]{%
  \chapter*{#1}%
  \addcontentsline{toc}{chapter}{#1}}
2 голосов
/ 14 мая 2019

Варианты этого вопроса задавались и отвечались несколько раз на дочернем сайте для TeX :

Я собираюсь скопировать ответ Вернера на последний из них, потому что он демонстрирует технику, отличную от любого из существующих ответов на этот вопрос: переопределить \section, чтобы only эффекта \section* пропускал печать номеров разделов.Это будет работать даже тогда, когда команды секционирования выдаются из кишок пакетов, которые вы не контролируете.


[...] Переопределить \section для захвата и условия, когда starred-versionиспользуемый.Найдя \section*, выдайте его так же, как и \section, но удалите механизм печати чисел через соответствующую настройку счетчика secnumdepth.

xparse обеспечиваетпростой интерфейс для (пере) определения команд, которые могут иметь s tarred версию, а также аргумент o.

\usepackage{xparse}

\let\oldsection\section
\makeatletter
\newcounter{@secnumdepth}
\RenewDocumentCommand{\section}{s o m}{%
  \IfBooleanTF{#1}
    {\setcounter{@secnumdepth}{\value{secnumdepth}}% Store secnumdepth
     \setcounter{secnumdepth}{0}% Print only up to \chapter numbers
     \oldsection{#3}% \section*
     \setcounter{secnumdepth}{\value{@secnumdepth}}}% Restore secnumdepth
    {\IfValueTF{#2}% \section
       {\oldsection[#2]{#3}}% \section[.]{..}
       {\oldsection{#3}}}% \section{..}
}
\makeatother

(сделать то же самое с \chapter, \subsection и т. Д., Найдите и замените section соответствующим образом и скорректируйте временное значение, используемое для secnumdepth.)

1 голос
/ 28 октября 2013

\setcounter{secnumdepth}{-1}

работал для меня как решение, если вы использовали версию \ chapter {} и др. Для класса книги без звездочек.Hyperref также работает, если вы хотели связать ToC вместе с моим решением.Не забудьте скомпилировать его дважды, чтобы он работал как на ToC, так и на inline.

К сожалению, ваша преамбула убила мою попытку TexStudio проверить, работает ли она для вашего точного кода, но я верю.

Используется TeXstudio 2.6.2 (SVN 4110M) с использованием Qt версии 4.8.5, скомпилированной с Qt 4.8.5 R В Windows 7, 64-битная

0 голосов
/ 29 июня 2019

Добавить эту строку под главой * {название главы} \addcontentsline{toc}{chapter}{name of chapter}

у меня это сработало

0 голосов
/ 10 мая 2019

У меня была та же проблема, и я решил ее с улыбкой и комментариями.Поскольку это не помогло использовать только \leftmark или \rightmark, вот команда, которую вы можете использовать, чтобы (i) сделать главу ненумерованной (ii) добавить ее в оглавление и (iii) иметь правильныйзаголовок страницы.

\newcommand\chap[1]{
    \chapter*{#1}
    \addcontentsline{toc}{chapter}{#1}
    \markboth{#1}{#1}}

То же самое работает для разделов (и подразделов соответственно):

 \newcommand\secTOC[1]{
    \section*{#1}
    \addcontentsline{toc}{section}{#1}
    \markboth{#1}{#1}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...