我想在大型文档的特定页面上(页脚左侧)添加一个小徽标。实现此目的的方法似乎是使用fancyhdr
的可替换样式。
我已经接近我需要的了,但是我有两个问题:
新徽标页的页眉样式直接复制自 IHA-fancy-style,但我一直在逐章设置
\lhead
和\rhead
更改文本样式。我如何更改当前设置以将页眉也应用于新页面样式?thispagestyle
当使用图形环境的参数将图像设置为使用整页时,我应该如何定位命令[p]
?它似乎想要应用于页面之前或之后。
我希望这足够清楚,我正在努力解释我在脑子里想做什么,所以我不知道现在这是否有意义!
这是我目前所拥有的 MWE(请注意,如果有人尝试重新运行代码,则徽标有一个特定的文件路径)。
你应该看到此输出 PDF,带有 Logo 的页面缺少该章节/文档其余部分的页眉,并且不是带有图形的页面。
\documentclass[a4paper, oneside, 11pt]{report}
\usepackage[left=4cm, right=2cm, top=1.5cm, bottom=2.5cm]{geometry}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{fancyhdr}
\headsep 25pt
\headheight 20pt
\setlength{\topmargin}{0pt}
\setlength{\textheight}{670pt}
\fancypagestyle{IHA-fancy-style}{%
\fancyhf{}
\fancyhead[LE,RO]{\slshape \leftmark}
\fancyfoot[LE,RO]{\thepage\ } % Custom footer
\renewcommand{\headrulewidth}{0.4pt}% Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
\fancypagestyle{augment}{%
\fancyhf{}
\fancyhead[LE,RO]{\slshape \leftmark}
\fancyfoot[R]{\thepage\ } % Custom footer
\fancyfoot[L]{\raisebox{-0.1cm}{\includegraphics[height=0.5cm, clip, trim={100 100 100 100}]{/path/to/mylogo.png}}
}
\renewcommand{\headrulewidth}{0.4pt}% Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
\begin{document}
\pagestyle{IHA-fancy-style}
\lhead{\textsf{Chapter 1}}
\rhead{\textsf{My First Chapter}}
\lipsum[1]
\newpage
\lipsum[2]
\thispagestyle{augment}
\begin{figure}[p]
\includegraphics[width=\textwidth, height=\textwidth, clip, trim={0 0 0 0}, draft]{/path/to/dummy/image.png}
\end{figure}
\newpage
\lipsum[3]
\end{document}
编辑
下面的答案确实解决了我发布的最小案例的问题,但是当我将其带入完整文档时又引发了其他问题。
主要有2个问题:
首先,我可以正确排版文档一次,但是当第二次填充目录时,我收到了此错误:
Undefined control sequence. # Pointing to my document.toc file
\f@ncycolh ->\sffamily \myleftmark # I added sffamily to the header in the answer below, but its a valid command
\strut
它指向 ToC 文件中的这一行,但我看不出它具体有什么问题
\contentsline {subsection}{\numberline {3.3.2}Harvesting}{78}{subsection.3.3.2}
其次,当我包含附录章节(即使带有\pagetyle{plain}
)时,我收到此错误:
Use of \reserved@a doesn't match its definition.
\new@ifnextchar ...eseverd@d = #1\def \reserved@a {
#2}\def\reserved@vb {#3}\f...
l.685 ...{Chapter \ref{appendix1}}
答案1
我进行了修改\@chapter
,以自动设置\myleftmark
章节编号和\myrightmark
章节名称。
请注意,报告类别是单面的(默认),因此没有偶数页。
\documentclass[a4paper, oneside, 11pt]{report}
\headsep 25pt
\headheight 20pt
\usepackage[left=4cm, right=2cm, top=1.5cm, bottom=2.5cm]{geometry}
\usepackage{lipsum}
\usepackage[draft]{graphicx}
\usepackage{fancyhdr}
\newcommand{\myleftmark}{}% reserve global name
\newcommand{\myrightmark}{}% reserve global name
\fancypagestyle{IHA-fancy-style}{%
\fancyhf{}% remove default
\fancyhead[L]{\myleftmark}%
\fancyhead[R]{\myrightmark}%
\fancyfoot[R]{\thepage\ } % Custom footer
\renewcommand{\headrulewidth}{0.4pt}% Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
\fancypagestyle{augment}{%
\fancyhf{}% remove default
\fancyhead[L]{\myleftmark}%
\fancyhead[R]{\myrightmark}%
\fancyfoot[R]{\thepage\ }% Custom footer
\fancyfoot[L]{\raisebox{-0.1cm}{\includegraphics[height=0.5cm, clip, trim={100 100 100 100}]{/path/to/mylogo.png}}
}
\renewcommand{\headrulewidth}{0.4pt}% Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
\pagestyle{IHA-fancy-style}
\usepackage{floatpag}
\floatpagestyle{augment}
\makeatletter
\let\@oldchapter=\@chapter
\def\@chapter[#1]#2{\@oldchapter[#1]{#2}%
\xdef\myleftmark{Chapter~\thechapter}%
\xdef\myrightmark{#2}%
}
\makeatother
\begin{document}
\chapter{My First Chapter}
\lipsum[1]
\newpage
\begin{figure}[p]
\includegraphics[width=\textwidth, height=\textwidth, clip, trim={0 0 0 0}, draft]{/path/to/dummy/image.png}
\end{figure}
\lipsum[2-16]
\end{document}