我正在编写一篇需要分成 4 个部分的文本,每个部分都有自己的目录和附录。需要四个单独的 pdf。
但是,页码和章节编号必须从一个部分延续到另一个部分,例如,如果DEEL1
(英文PART1
:)在第 10 页结束,DEEL2
则必须从第 11 页继续。因为我知道每个文档的长度,所以我手动完成了这项工作\setcounter{page}{10}
(分段也是如此,尽管我不确定如何让附录分段工作)。
我的目录被分成每个部分的文件夹。
DELEN
├── DEEL1
├── DEEL2
├── DEEL3
└── DEEL4
现在我希望能够引用不在该特定部分的内容。例如:如果\label{prt1:sec:section2}
在第一部分,我希望也能够\ref{prt1:sec:section2}
在第二、三和四部分中使用。
这可能吗?
答案1
deel1.tex
目录中的文件deel1
\documentclass[a4paper]{article}
\usepackage{lastpage,xr,refcount,etoolbox}
\externaldocument{../deel2/deel2}
\externaldocument{../deel3/deel3}
\makeatletter
\patchcmd{\lastpage@putl@bel}{LastPage}{LastPage1}{}{}
\makeatother
\begin{document}
\tableofcontents
\section{First deel1}\label{first1}
\section{Second deel1}\label{second1}
\ref{first1} at page \pageref{first1}
\ref{second1} at page \pageref{second1}
\ref{first2} at page \pageref{first2}
\ref{second2} at page \pageref{second2}
\ref{first3} at page \pageref{first3}
\ref{second3} at page \pageref{second3}
\end{document}
deel2.tex
目录中的文件deel2
\documentclass[a4paper]{article}
\usepackage{lastpage,xr,refcount,etoolbox}
\externaldocument{../deel1/deel1}
\externaldocument{../deel3/deel3}
\makeatletter
\patchcmd{\lastpage@putl@bel}{LastPage}{LastPage2}{}{}
\makeatother
\begin{document}
\setcounter{page}{\getpagerefnumber{LastPage1}}
\stepcounter{page}
\tableofcontents
\section{First deel2}\label{first2}
\section{Second deel2}\label{second2}
\ref{first1} at page \pageref{first1}
\ref{second1} at page \pageref{second1}
\ref{first2} at page \pageref{first2}
\ref{second2} at page \pageref{second2}
\ref{first3} at page \pageref{first3}
\ref{second3} at page \pageref{second3}
\end{document}
deel3.tex
目录中的文件deel3
\documentclass[a4paper]{article}
\usepackage{lastpage,xr,refcount,etoolbox}
\externaldocument{../deel1/deel1}
\externaldocument{../deel2/deel2}
\makeatletter
\patchcmd{\lastpage@putl@bel}{LastPage}{LastPage3}{}{}
\makeatother
\begin{document}
\setcounter{page}{\getpagerefnumber{LastPage2}}
\stepcounter{page}
\tableofcontents
\section{First deel3}\label{first3}
\section{Second deel3}\label{second3}
\ref{first1} at page \pageref{first1}
\ref{second1} at page \pageref{second1}
\ref{first2} at page \pageref{first2}
\ref{second2} at page \pageref{second2}
\ref{first3} at page \pageref{first3}
\ref{second3} at page \pageref{second3}
\end{document}
笔记
我们必须修补\lastpage@putl@bel
才能在不同的文档中使用不同的标签(“前缀”策略由負責会更麻烦)。超链接使用的是\lastpage@putl@belhyper
(相同代码)。
同样的方案也适用于引用,如果激流包被使用。