如何自动添加标记以表明该部分在下一页继续?

如何自动添加标记以表明该部分在下一页继续?

我想知道是否有一种方法可以在每次在下一个偶数页上继续一个部分时自动在奇数页的末尾某处设置一个符号(例如)?

手动操作可以实现这一点,例如,将其放在\vfill\hfill$\triangleright$奇数页的最后一行之后。但是,当最后一行已满时,这种方法就行不通了。对于较长的文档,这仍然不是解决方案。当分页符仍可能移动时,这根本无法解决。

因此我想也许可以在页码旁边出现一个标记,就像这里的红色三角形一样: 示范商标

知道如何创建它吗?

这是一个 MWE,其中我保留了我在文档中使用的所有包,以便尽早识别任何冲突。

\documentclass[10pt,twoside,titlepage,headsepline,headings=small,BCOR=8mm]{scrbook}
\usepackage{scrlayer-scrpage}
\usepackage{cmap}
\usepackage{ulem}
\usepackage[utf8]{inputenc}
\usepackage[vietnamese=nohyphenation]{hyphsubst}
\usepackage[vietnamese,polish]{babel}
\usepackage[T5,T1]{fontenc}
\usepackage{longtable}
\usepackage{lmodern}
\usepackage{makeidx}
\usepackage[columns=2,itemlayout=abshang,initsep=1.8em plus 0.2em minus 0.2em]{idxlayout}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{etoolbox}
\usepackage{multirow}
\usepackage[table]{xcolor}
\usepackage[defaultlines=2,all]{nowidow}

\usepackage{lipsum}

\KOMAoptions{paper=24cm:17cm,DIV=14}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1.2ex plus 0.8ex minus 0.4ex}
\setlength{\marginparwidth}{0pt}
\setlength{\marginparsep}{0pt}
\addtolength{\textheight}{0.4cm}
\addtolength{\headsep}{-0.4cm}
\addtolength{\topmargin}{-0.2cm}
\renewcommand*{\chapterheadstartvskip}{\vspace*{-\topskip}}

\preto{\addsec}{\vspace{\baselineskip}}
\hfuzz=2pt
\flushbottom

\clearmainofpairofpagestyles
\ihead[]{}
\chead[]{}
\ohead[]{\sffamily\leftmark}
\ifoot[]{}
\cfoot[]{}
\ofoot[]{}
\pagestyle{scrheadings}

\begin{document}
\mainmatter
        \ofoot[\pagemark]{\pagemark}
        \raggedbottom
\chapter{Chapter}       
\addsec{Section 1}
    \lipsum[5]  
    \lipsum[4]  
\addsec{Section 2}
    \lipsum[4]  
\addsec{Section 3}
    \lipsum[8]  
    \lipsum[6]  
\addsec{Section 4}
    \lipsum[3]  
    \lipsum[8]  
    \lipsum[7]  
\addsec{Section 5}
    \lipsum[4]  
    \lipsum[3]  
    \lipsum[2]  
\addsec{Section 6}
    \lipsum[8]  
    \lipsum[8]  
    \lipsum[1]  
\addsec{Section 7}
    \lipsum[9]  
\end{document}

答案1

我想做同样的事情,搜索了好几天,终于想出了一个可能适用于大多数情况的解决方案(我还没有进行详尽的测试,请仔细检查每一页,如果发现错误,请写下评论)。

因此,我们需要一种方法来查明某个部分是否延续到下一页,如果是,则添加特殊标记,如下所示:

在此处输入图片描述

我的解决方案是根据脚注是否位于章节末尾来添加不同的脚注,诀窍是:在添加脚注时,我们检查当前章节是否从打印页面之前的页面开始:

  • 如果当前部分开始的页面大于正在打印的页面,则意味着我们刚刚开始了一个新部分,它将打印在下一页(当前页面已满)。在这种情况下,我们不添加标记。
  • 如果当前部分已在上一页或当前页中开始,则意味着当前部分将在下一页继续(否则,我们将在分页符之前有一个新部分)。在这种情况下,我们会打印标记。

为了做到这一点,我设置了一个计数器来保留当前部分的起始页,如这个答案

具体如下:

\documentclass[12pt, oneside]{article}
\usepackage[paperwidth=12cm, paperheight=18cm, top=2.2cm, bottom=2cm, left=1.6cm, right=1.6cm]{geometry}
\usepackage{ifthen}
\usepackage{lipsum}

% Allow to get the start page of current section
\newcounter{currentsection}
\renewcommand{\thecurrentsection}{\roman{currentsection}}
\let\latexsection\section
\RenewDocumentCommand{\section}{sO{#3}m}{%
  \stepcounter{currentsection}%
  \xdef\currentsectionlabel{css-\thecurrentsection}%
  \IfBooleanTF{#1}
    {\latexsection*{#3}}
    {\latexsection[#2]{#3}\label{\currentsectionlabel}}%
}
\newcommand{\currentsectionpage}{\pageref{\currentsectionlabel}}

% Configure footnote
\usepackage{fancyhdr}
\fancyhf{}
\fancyfoot[C]{\thepage}
\pagestyle{fancy}

\fancyfoot[R]{ % If you have 'twoside' and only want it in the odd pages, change R to RO.
    \ifthenelse{\thepage<\currentsectionpage}{}{\bf continued $\triangleright$}}


\begin{document}

\section{Title}
\lipsum[1-2]

\section{Title}
\lipsum[1]

\section{Title}
\lipsum[1]

\section{Title}
\lipsum[1-4]

\fancyfoot[R]{} % Never print 'continued' on last page

\end{document}

重要提示:请记住您可能需要编译两次因此页面引用计算正确。

相关内容