我喜欢截取一些旧文本,然后将其放在美观的 PDF/LaTeX 文件中。通常,几页旧文本可以放在一个 PDF 信函页面上。我想找到一种方法来让文本自由流动在 PDF 页面上,但 PDF 上的页码与原始文本相匹配。我以前曾使用过一种方法,在页边空白处添加原始作品的页码但是我想知道是否有办法更宽松地使用 LaTeX 页码?
我尝试在下面说明我所寻找的内容。
+------------------------+ +------------------------+ +------------------------+
| A ........... 1 | | | | |
| B ........... 4 | | \section{C} | | |
| C ........... 5 | | \setcounter{page}{6} | | |
| D ........... 6 | | | | \section{F} |
| E ........... 7 | | | | Lorem ipsum dolor |
| F ........... 8 | | \section{D} | | dolor sit amet. |
| | | | | Duis in sodales, |
| \section{A} | | \setcounter{page}{7} | | vulputate ligula. |
| \setcounter{page}{4} | | \section{E} | | |
| \section{B} | | | | |
| 1/4 | | 5/6/7 | | 8 |
+------------------------+ +------------------------+ +------------------------+
答案1
我不知道这有多么强大,但这里有一个可能适合你的实现:
\documentclass{article}
\usepackage[paper=a6paper]{geometry}% Just for this example
\usepackage{fancyhdr, afterpage}
\newcommand{\newpagenumber}{\thepage}
\pagestyle{fancy}
\fancyhf{}% Clear header/footer
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\newpagenumber}
\makeatletter
\let\old@addcontentsline\addcontentsline% Store original \addcontentsline
\newcommand{\setnextsectionpage}[1]{% \setnextsectionpage{<new page number>}
\afterpage{% Adjust things after this page
\setcounter{page}{\numexpr#1+1}% Correct page number
\gdef\newpagenumber{\thepage}}% Restore single page number as footer
\g@addto@macro{\newpagenumber}{/#1}% Append new (false) page number
\renewcommand{\addcontentsline}[3]{%
% Falsify \thepage to be a page that is specifically set
\addtocontents{##1}{\protect\contentsline{##2}{##3}{#1}}%
\let\addcontentsline\old@addcontentsline}% Restore default behaviour
}
\makeatother
\begin{document}
\tableofcontents% Page 1
\section{First section}% Page 1
\setnextsectionpage{4}
\section{Second section}% Page 4
\clearpage
\section{Third section}% Page 5
\setnextsectionpage{6}
\section{Fourth section}% Page 6
\setnextsectionpage{7}
\section{Fifth section}% Page 7
\clearpage
\section{Last section}% Page 8
\end{document}
在构建页面时,页脚会根据当前页面上的“假页面”进行修改。然后afterpage
用于修改页码和恢复默认\thepage
页脚。
对进行轻微的修改使\addcontentsline
我们能够插入我们决定的任何页码,如所指定的\setnextsectionpage{<new page number>}
。