我正在编写一本游戏规则书,其中各部分的标题分两行显示。第一行与简称相同(例如\part[introduction]{introduction\\PARTIE PREMIÈRE}\label{\thepart}
),我想只将上行/简称添加到标题中。我已设法使用此代码使其工作:\fancyhead[CE]{\textsc{\nameref{\thepart}}}
但是当我使用 titlesec 包自定义时\part
,它会从标题中消失。没有“??”或错误,只有一个空标题。(奇数页的标题显示章节的简称,即使我已自定义其样式,它也能正常工作。)
以下是整个代码:
\documentclass[a4paper,twocolumn,openright,14pt]{memoir}
\usepackage[french]{babel}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{titling}
\usepackage{nameref}
\usepackage{pdfpages}
\usepackage{pifont}
\usepackage[explicit]{titlesec}
\titleformat{\part}[display]
{\fontsize{21pt}{15pt}\scshape\centering}
{#1}
{1em}
{}
\titleformat{\chapter}[display]
{\fontsize{18pt}{15pt}\scshape\centering}
{#1\\\ligne}
{1em}
{}
\titlespacing{\chapter}{0pt}{0pt}{-40pt}
\newcommand{\chry}
{\ding{97}}
\newcommand{\ligne}
{\vspace{0.5cm}\fancybreak{
\begin{tikzpicture}\draw[line width=0.45mm](0,0)--(3.75,0);\end{tikzpicture}
}\vspace{0.5cm}}
\newcommand{\petiteligne}
{\vspace{0.5cm}\fancybreak{
\begin{tikzpicture}\draw[line width=0.45mm](0,0)--(1.875,0);\end{tikzpicture}
}\vspace{0.5cm}}
\renewcommand{\headrulewidth}
{0.45mm}
\fancyhf{}
\fancypagestyle{plain}
{\renewcommand{\headrulewidth}
{0pt}\fancyhf{}}
\begin{document}
%Titre
\begin{titlingpage}
\includepdf{titre}
\end{titlingpage}
%/Titre
\cleardoublepage
%Préface
\blindtext[5]
\thispagestyle{empty}
\pagestyle{fancy}
\fancyhead[CE,CO]{\textsc{préface}}
\fancyhead[LE,RO]{\thepage}
\pagenumbering{Roman}
%/Préface
\cleardoublepage
%Contenu
\fancyhead[CE]{\textsc{\nameref{\thepart}}}
\fancyhead[CO]{\textsc{\nameref{\thepart.\thechapter}}}
\pagenumbering{arabic}
\part[introduction]{introduction\\PARTIE PREMIÈRE}\label{\thepart}
\chapter[univers]{univers\\CHAPITRE PREMIER}\label{\thepart.\thechapter}
\blindtext[2]
\petiteligne
\blindtext[2]
%/Contenu
\end{document}
答案1
我发现如何感谢@马丁·沙勒! 以下是不带标签的代码:
\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
\origpart{#2}%
\renewcommand*\parttitle{#2}%
\else
\origpart[#1]{#2}%
\renewcommand*\parttitle{#1}%
\fi
}