请帮帮我,将“目录”标题的样式改为如下\chapter{Le choix du thème}
。
另外,我想把所有标题稍微高一点,并修复hyperref
pdf 中的“目录”
\documentclass[12pt]{report}
\usepackage{fontspec}
\usepackage[hidelinks]{hyperref}
\usepackage{xunicode}
\usepackage[no-sscript]{xltxtra}
\usepackage{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguages{german,english,greek,polish,russian}
\setmainfont[Mapping=tex-text]{CMU Serif}
\usepackage{setspace}
\usepackage{tocloft}
\newfontfamily\greekfont[Script=Greek,Mapping=tex-text]{CMU Serif}
\newfontfamily\russianfont[Script=Cyrillic,Mapping=tex-text]{CMU Serif}
\usepackage{titlesec}
\titleformat{\chapter}[display]% NEW
{\Huge\bfseries\centering}{\chaptertitlename\ \thechapter}{5pt}{\Large}% NEW
\titlespacing*{\chapter}{0pt}{30pt}{20pt}% NEW
\titleformat{\section}
{\bfseries}
{\thesection}{1em}{}
\renewcommand\cftchappresnum{\chaptername\newline}
\setlength{\cftchapnumwidth}{3.5cm}
\renewcommand{\thechapter}{}
\renewcommand{\thesection}{\Roman{section}.}
\usepackage[backend=biber,style=verbose-ibid,citepages=suppress,sorting=nty,babel=other]{biblatex}
\renewcommand\mkbibnamelast[1]{\textsc{#1}}
\begin{document}
\doublespacing
\tableofcontents
\renewcommand{\chaptername}{Préface}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Préface}}
\chapter{Le choix du thème}
Balah blah blah L'Organisation des Nations unies (ONU)
\renewcommand{\chaptername}{Introduction}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Introduction}}
\chapter{Initiatives du PO}
\section{Les lettres du PO 1904}
Balah blah blah (ONU)
\renewcommand{\thechapter}{\arabic{chapter}}
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\setcounter{chapter}{0}
\setcounter{section}{0}
\renewcommand{\chaptername}{Chapitre}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Chapitre}}
\chapter{Les décisions des CP}
\section{Les décisions des CP de Rhodes 1964}
\chapter{L'ouvre de la CIP}
\section{Les décisions de la I\textsuperscript{re} CPP}
\chapter{Évaluation de l'œuvre accomplie et perspectives}
\section{Évaluation de l'œuvre accomplie}
\renewcommand{\thechapter}{}
\renewcommand{\chaptername}{Conclusion}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Conclusion}}
\chapter{}
\printbibheading[heading=bibintoc]
\printbibliography[keyword=primary,heading=subbibliography,title={Les sources principaux}]
\printbibliography[keyword=secondaire,heading=subbibliography,title={Les sources secondaires}]
\end{document}
谢谢。
答案1
你没有提供最小的例如,但通过精简您的代码,我至少能够修复最严重的问题,即目录标题不遵循其他章节标题的格式(例如不居中)。原因是通过加载包,您禁用了对目录tocloft
的影响。请改用提供的宏。(我没有费心去深入研究您的问题,因为和也不能很好地结合在一起。)titlesec
tocloft
hyperref
hyperref
titlesec
编辑:hyperref
问题已解决。您重新定义的非标准方式\thechapter
创建了两个带有 编号的章节1
(尽管在简介中隐藏了编号),这让人感到困惑hyperref
。解决方案:将chapter
计数器设置为-1
简介之前,然后它将成为第 0 章。
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\Huge\bfseries\centering}{\chaptertitlename\ \thechapter}{5pt}{\Large}
\titlespacing*{\chapter}{0pt}{30pt}{20pt}
\titleformat{\section}
{\bfseries}{\thesection}{1em}{}
\usepackage{tocloft}
\renewcommand\cftchappresnum{\chaptername\newline}
\setlength{\cftchapnumwidth}{3.5cm}
% These redefinitions were missing
\renewcommand{\cfttoctitlefont}{\hfill\Large\bfseries}
\renewcommand{\cftaftertoctitle}{\hfill}
\setlength{\cftbeforetoctitleskip}{30pt}
\setlength{\cftaftertoctitleskip}{20pt}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\setcounter{chapter}{-1}
\renewcommand{\thechapter}{}
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\chaptername}{Introduction}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Introduction}}
\chapter{Initiatives du PO}
\section{Les lettres du PO 1904}
Balah blah blah (ONU)
\renewcommand{\thechapter}{\arabic{chapter}}
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\renewcommand{\chaptername}{Chapitre}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Chapitre}}
\chapter{Les décisions des CP}
\section{Les décisions des CP de Rhodes 1964}
\chapter{L'ouvre de la CIP}
\section{Les décisions de la I\textsuperscript{re} CPP}
\renewcommand{\thechapter}{}
\renewcommand{\chaptername}{Conclusion}
\addtocontents{toc}{\protect\renewcommand\protect\chaptername{Conclusion}}
\chapter{}
\begin{thebibliography}{9}
\bibitem{A01} A bibitem.
\end{thebibliography}
\end{document}
答案2
您只需重新定义\contentsname
。该babel
包会自动为所选语言执行此操作(对于latex
/ pdflatex
)。该polyglossia
包似乎对 XeLaTeX 执行相同的操作。因为这发生在 ,所以\begin{document}
您需要在之后重新定义它。最好直接在它之前。
\renewcommand{\contentsname}{Le choix du thème}
\tableofcontents
答案3
您可以\renewcommand*\contentsname{new name}
按照建议使用LaTeX 社区上的一个主题。请注意,该线程也不建议采用该解决方案。
要将目录转换为章节,请使用:
\makeatletter
\renewcommand\tableofcontents{%
\chapter{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
}
\makeatother
但我认为还有更好的解决方案。这似乎很肮脏。