\ifoot 和 \ofoot 重叠:如何减少可用的 hspace?

\ifoot 和 \ofoot 重叠:如何减少可用的 hspace?

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

您可以\cfoottabularx环境中使用:

\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}

结果:

在此处输入图片描述

相关内容