我最近在尝试为我的客户编写一致编辑的月度技术报告时发现了 Latex。
问题:如何根据页面内容使页脚改变为预定的文本,尤其是当内容占据部分而不是整个页面时。
更多详细信息:我必须从三种不同的法律声明中进行选择,具体取决于要粘贴在页脚中的页面上的材料。
到目前为止,我已经尝试过:fancyhdr
包并创建了四个pagestyles
。首先,我设置了全局页眉页脚。这正如预期的那样,所有页面都具有相同的页眉和页脚。对于需要三个合法声明之一的材料,我使用thispagestyle
并选择其中一个自定义页面样式来通过页面样式。正如您可能已经猜到的那样,当内容长度为 1.5 页时,我会在出现段落的第一页上获得所需的页脚,然后在下一页上恢复为全局页脚。
期望的行为是让第二页也具有此页脚,并且仅在第三页上改回。
我在用documentclass
article。没有特别的理由选择它,除了从互联网上复制粘贴。没有足够的知识来选择正确的。
编辑2020-11-05:重现问题的示例代码:
\documentclass[12pt, letterpaper]{article}
\usepackage{graphicx}
\usepackage{geometry}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\usepackage{lipsum, blindtext}
\usepackage[T1]{fontenc}
%%% HEADERS & FOOTERS
\usepackage{fancyhdr}
%\pagestyle{fancy}
%
\fancypagestyle{nolegal}
{
\pagestyle{fancy}
\fancyfoot[L]{}
\fancyfoot[C]{}
\fancyfoot[R]{\thepage}
%\footskip=30pt
}
\fancypagestyle{legal1}
{
\pagestyle{fancy}
\fancyfoot[L]{}
\fancyfoot[C]{legal 1 Applies to Content}
\fancyfoot[R]{\thepage}
\footskip=30pt
}
\pagestyle{nolegal}
\begin{document}
\textbf{(No special legal applies)}\\
\lipsum[1-6]
\textbf{(Begin legal 1)}\\
\thispagestyle{legal1} % Also tried \pagestyle{legal1} [Line 40]
\lipsum[1-6]
\newline
\textbf{(End legal 1)}
% If switching page style in line 40, switch back with \pagestyle{nolegal}
\lipsum[1-3]
\end{document}
正如预期的那样,此示例生成的第 2 页在页脚中正确显示了声明。但是,在第 3 页上,该声明被删除了。
答案1
您必须\pagestyle
在语句的开头和\thispagestyle
结尾使用。然后您可以使用 切换回默认页面样式\pagestyle
。
\documentclass[12pt, letterpaper]{article}
\usepackage[headheight=14.5pt,footskip=30pt]{geometry}
\usepackage{lipsum}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
%\pagestyle{fancy}
\fancypagestyle{nolegal}
{
\pagestyle{fancy}
\fancyfoot{}
\fancyfoot[R]{\thepage}
}
\fancypagestyle{legal1}
{
\pagestyle{fancy}
\fancyfoot{}
\fancyfoot[C]{legal 1 Applies to Content}
\fancyfoot[R]{\thepage}
}
\pagestyle{nolegal}
\begin{document}
\textbf{(No special legal applies)}\\
\lipsum[1-6]
\textbf{(Begin legal 1)}\pagestyle{legal1}\\
\lipsum[1-6]
\newline
\textbf{(End legal 1)}\thispagestyle{legal1}
\pagestyle{nolegal}
\lipsum[1-3]
\end{document}
也许你可以定义一个新的环境:
\documentclass[12pt, letterpaper]{article}
\usepackage[headheight=14.5pt,footskip=30pt]{geometry}
\usepackage{lipsum}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{nolegal}
{
\fancyfoot{}
\fancyfoot[R]{\thepage}
}
\fancypagestyle{legal1}
{
\fancyfoot{}
\fancyfoot[C]{legal 1 Applies to Content}
\fancyfoot[R]{\thepage}
}
\pagestyle{nolegal}
\newcommand*\legalpagestyle{}
\newenvironment{legal}[1]
{\par\xdef\legalpagestyle{legal#1}\pagestyle{\legalpagestyle}}
{\thispagestyle{\legalpagestyle}\par}
\begin{document}
\textbf{(No special legal applies)}
\lipsum[1-6]
\begin{legal}{1}
\textbf{(Begin legal 1)}\\
\lipsum[1-10]
\newline
\textbf{(End legal 1)}
\end{legal}
\textbf{(No special legal applies)}
\lipsum[1-3]
\end{document}