![获取 fancyhdr 中的章节标记(无章节编号)](https://linux22.com/image/305706/%E8%8E%B7%E5%8F%96%20fancyhdr%20%E4%B8%AD%E7%9A%84%E7%AB%A0%E8%8A%82%E6%A0%87%E8%AE%B0%EF%BC%88%E6%97%A0%E7%AB%A0%E8%8A%82%E7%BC%96%E5%8F%B7%EF%BC%89.png)
我已经尝试了好几个小时来完成这项工作,但我无法让它工作。
我希望文档左侧的标题显示为章节名称,不显示数字。右侧标题(造成问题的标题)显示为章节编号 + 章节名称。
例如:
引言 4. 行星的形成
这是我目前所拥有的
\renewcommand{\chaptername}{}
\renewcommand{\chaptermark}[1]{\uppercase{\markboth{#1}{}}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
我使用以下命令来打印标题
\lhead[\thepage]{\leftmark}
\rhead[\nouppercase{\rightmark}]{\thepage}
但输出是 INTRODUCTION 1.4. 行星形成
你能帮我一下吗?
答案1
使用
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
您将在左标记中获得章节标题,并使用
\renewcommand{\sectionmark}[1]{\markright{\arabic{section}.\ #1}}
您将获得右侧标记的章节编号(不带章节编号前缀)和标题。
完整示例:
\documentclass{book}
\usepackage[a6paper]{geometry}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\arabic{section}.\ #1}}
\lhead[\thepage]{\leftmark}
\rhead[\nouppercase{\rightmark}]{\thepage}
\begin{document}
\chapter{Test chapter}
\section{Test section}
\lipsum[1-4]
\end{document}
结果:
您的 \lhead、\rhead 命令可以替换为“更现代的”
\fancyhead[EL,OR]{\thepage}
\fancyhead[ER]{\rightmark}
\fancyhead[OL]{\leftmark}