我有一个代码,用于以实心圆圈形式打印页码。但它只出现在偶数中。
\documentclass[12pt,a4paper]{book}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{fancyhdr}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{blindtext}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,fill=gray!50,inner sep=2pt] (char) {#1};}}
% header style
\pagestyle{fancy}
\fancyhf{}
\fancyhead[EL]{\nouppercase\leftmark}
\fancyhead[OR]{\nouppercase\rightmark}
\fancyfoot[C]{\circled{\thepage}}
\begin{document}
\tableofcontents
\newpage
\chapter{Chapter}
\blindtext
\chapter{Chapter}
\blindtext
\section{Chapter}
\blindtext
\end{document}
答案1
问题不在于全部奇数页;问题出在内部已指定样式的页面plain
(默认设置下,恰好是奇数),例如每章的第一页。您可以重新定义plain
以获得所需的格式:
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[C]{\circled{\thepage}}
\renewcommand{\headrulewidth}{0pt}
}
完整示例:
\documentclass[12pt,a4paper]{book}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{fancyhdr}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{blindtext}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,fill=gray!50,inner sep=2pt] (char) {#1};}}
% header style
\pagestyle{fancy}
\fancyhf{}
\fancyhead[EL]{\nouppercase\leftmark}
\fancyhead[OR]{\nouppercase\rightmark}
\fancyfoot[C]{\circled{\thepage}}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[C]{\circled{\thepage}}
\renewcommand{\headrulewidth}{0pt}
}
\begin{document}
\tableofcontents
\newpage
\chapter{Chapter}
\blindtext
\chapter{Chapter}
\blindtext
\section{Chapter}
\blindtext
\end{document}
结果:
答案2
这与为什么不在\pagestyle{empty}
章节第一页起作用?默认情况下,每章的第一页都会以页面样式发布plain
。您必须重新定义plain
,或对命令进行一些调整\chapter
以不发布plain
。
下面的最小示例\chapter
用于插入不同的页面样式 - 使用新定义的fancyhdr
- 称为chapter
。chapter
页面样式仅插入带有带圆圈的页码的页脚,但没有页眉:
\documentclass{book}
\usepackage{fancyhdr,xcolor,tikz,etoolbox}
\usepackage{blindtext}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,fill=gray!50,inner sep=2pt] (char) {#1};}}
% header style
\pagestyle{fancy}
\fancyhf{}% Clear header/footer
\fancyhead[EL]{\nouppercase\leftmark}
\fancyhead[OR]{\nouppercase\rightmark}
\fancyfoot[C]{\circled{\thepage}}
\fancypagestyle{chapter}{% New chapter page style/used with chapter first-pages only
\fancyhf{}% Clear header/footer
\renewcommand{\headrulewidth}{0pt}% No header rule
\fancyfoot[C]{\circled{\thepage}}
}
% Replace chapter first-page page style from 'plain' to 'chapter'
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\chapter}{plain}{chapter}{}{}
\begin{document}
\tableofcontents
\clearpage
\chapter{Chapter}
\blindtext
\chapter{Chapter}
\blindtext
\section{Chapter}
\blindtext
\end{document}