scrlayer-scrpage
我有一个文档,它需要很长的\ifoot
时间才能自定义页脚,而\ofoot
这个文档只包含页码。不幸的是,内部页脚文本足够长,以至于它与外部页脚文本重叠。假设文本变得足够长,行会自动换行,但通常 ifoot 仍然与 ofoot 重叠。\linebreak[0]
没有效果,\linebreak[1]
每次都会断行。
例子:
\ifoot{Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.}
\ofoot{\thepage~/~\pageref{LastPage}}
生产
我认为我想通过 ofoot 的水平宽度(加上一些额外的空间)来减少 ifoot 可用的水平空间量。
我不喜欢当前的缓解措施,其中包括将内脚放入固定宽度的迷你页面中。有什么建议吗?
答案1
我找不到设置页脚中线宽(或对齐方式)的选项。
\documentclass[footheight=27.2pt]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{lastpage}
\usepackage{lipsum}
\ifoot{\hsize=350pt
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.}
\ofoot{\thepage~/~\pageref{LastPage}}
\cfoot{}
\begin{document}
\lipsum
\end{document}
可以按照以下方法设置宽度,使其不覆盖页码。
\documentclass[footheight=40.8pt]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{lastpage}
\usepackage{lipsum}
\newlength{\ifootwidth}
\AtBeginDocument{%
\settowidth{\ifootwidth}{~\pageref{LastPage}~/~\pageref{LastPage}}%
\setlength{\ifootwidth}{\dimexpr\textwidth-\ifootwidth}%
}
\ifoot{\hsize=\ifootwidth
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.}
\ofoot{\thepage~/~\pageref{LastPage}}
\cfoot{}
\begin{document}
\setcounter{page}{34}
\lipsum
\end{document}
保留的空间是文本宽度减去页码宽度再减去正常空间(由于右侧设置不均匀,在示例中看不到)。
答案2
您可以\cfoot
在tabularx
环境中使用:
\documentclass[footlines=3]{scrartcl}
\usepackage{tabularx}
\usepackage{lastpage}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot{%
\begin{tabularx}{\linewidth}{@{}>{\raggedright}X@{\hspace{3em}}r@{}}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
&
\thepage~/~\pageref{LastPage}
\end{tabularx}%
}
\usepackage{lipsum}% only for dummy text
\begin{document}
\lipsum
\end{document}
结果:
或者使用标准类
\documentclass{article}
\usepackage{tabularx}
\usepackage{lastpage}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot{%
\begin{tabularx}{\linewidth}{@{}>{\raggedright}X@{\hspace{3em}}r@{}}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
&
\thepage~/~\pageref{LastPage}
\end{tabularx}%
}
\setlength{\footheight}{36pt}
\setlength\footskip{50pt}
\usepackage{lipsum}% only for dummy text
\begin{document}
\lipsum
\end{document}
结果: