![使用 titletoc/titlesec 根据章节/节格式化目录](https://linux22.com/image/455579/%E4%BD%BF%E7%94%A8%20titletoc%2Ftitlesec%20%E6%A0%B9%E6%8D%AE%E7%AB%A0%E8%8A%82%2F%E8%8A%82%E6%A0%BC%E5%BC%8F%E5%8C%96%E7%9B%AE%E5%BD%95.png)
在我的书中,我需要将章节用粗体大写,将部分用大写常规字母,将小节用粗体常规字母,将小节用斜体常规字母。
在文本中,我设法使用 titletoc/titlesec 包实现了这一点。然而,在 中\tableofcontents
,条目仅使用粗体和斜体进行相应格式化。我根本无法将章节/部分名称设为大写!其他一切都恰好符合我的要求。
我将其添加\MakeUppercase
到了中的几个地方\titlecontents
但要么产生错误要么根本不起作用。
有人能解释一下我在这里搞什么鬼吗?
这是我的 MWE:
\begin{filecontents*}{temp.bib}
@book{sadiku,
author = {Alexander, C.K. and Sadiku, M.N.O.},
title = {Fundamentos de Circuitos Elétricos},
edition = {5ª edição},
isbn = {978-85-8055-173-0},
publisher = {{AMGH} Editora},
location = {Porto Alegre},
date = {2013}
}
\end{filecontents*}
\documentclass[a4paper, 12pt, oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage{titletoc}
\titlecontents {chapter}[3.5pc]{\bfseries}{\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {section}[3.5pc]{} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsection}[3.5pc]{\bfseries}{\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsubsection}[3.5pc]{\itshape} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents{numberless-entry-format}[3.5pc]{} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\let\cleardoublepage=\clearpage
\addto\captionsportuguese{\renewcommand\contentsname{\hfill\bfseries\MakeUppercase Sumário \hfill}}
\addto\captionsportuguese{\renewcommand\listfigurename{\hfill\bfseries\MakeUppercase Lista de Figuras \hfill}}
\addto\captionsportuguese{\renewcommand\listtablename{\hfill\bfseries\MakeUppercase Lista de Tabelas \hfill}}
\usepackage{titlesec}
\titleformat {\chapter}[hang]{\bfseries\MakeUppercase}{\thechapter} {10pt}{\bfseries}
\titleformat {\section}[hang]{\MakeUppercase} {\thesection} {10pt}{}
\titleformat {\subsection}[hang]{\bfseries} {\thesubsection} {10pt}{\bfseries}
\titleformat{\subsubsection}[hang]{\itshape} {\thesubsubsection}{10pt}{\itshape}
\titlespacing {\chapter}{0pt}{-20pt}{5pt}
\titlespacing {\section}{0pt}{5pt} {5pt}
\titlespacing {\subsection}{0pt}{5pt} {5pt}
\titlespacing{\subsubsection}{0pt}{5pt} {5pt}
\usepackage[style=abnt, extrayear, url=true]{biblatex}
\addbibresource{temp.bib}
\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\cite{sadiku}
{\linespread{1}
\printbibliography[
heading=bibintoc, % Faz aparecer a bibliografia no sumário
title={Referências Bibliográficas} % Muda o nome do capítulo
]}
\chapter*{Numberless chapter}
\addcontentsline{toc}{chapter}{Numberless chapter}
\end{document}
答案1
因此我设法回答了我最初的问题并找到了 MWE 没有考虑到的原始错误。
必须\MakeUppercase
在 之后添加\contentslabel{3.5pc}
。我只会发布包含所有内容的摘录\titlecontents{...}
:
\titlecontents {chapter}[3.5pc]{\bfseries}{\contentslabel{3.5pc}\MakeUppercase}{\MakeUppercase}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {section}[3.5pc]{} {\contentslabel{3.5pc}\MakeUppercase}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsection}[3.5pc]{\bfseries}{\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsubsection}[3.5pc]{\itshape} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents{numberless-entry-format}[3.5pc]{} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
仍然不确定最后一个是否有用。
现在我发现 titletoc 和 hiperref 之间存在冲突。我会继续研究这个问题!但关于 MWE 的原始问题已经得到解答了!我只是一开始没有创建合适的 MWE...
我找到了这个帖子这回答了我的问题。由于我使用的\chapter*{}
是附录,所以作者的问题没有发生在我的代码中。总而言之,问题是由于命令而发生的\MakeUppercase
。用命令替换它对\uppercase
我来说没问题。不知道这是否是好的做法。也许使用其他包有更好的方法。但我想,既然它有效,那就没问题了?
最后摘录:
\titlecontents {chapter}[3.5pc]{\bfseries}{\contentslabel{3.5pc}\uppercase}{\uppercase}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {section}[3.5pc]{} {\contentslabel{3.5pc}\uppercase}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsection}[3.5pc]{\bfseries}{\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents {subsubsection}[3.5pc]{\itshape} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}
\titlecontents{numberless-entry-format}[3.5pc]{} {\contentslabel{3.5pc}}{}{\titlerule*[0.3pc]{.}\contentspage}