包含的 pdf 的页码

包含的 pdf 的页码

是否可以显示包含的 pdf 文件的页码?目前,我使用 fancyhdr 有以下页脚/页眉定义

%-------------------------------------------------
% Header & Footer
%-------------------------------------------------
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{{\scriptsize}}
\fancyfoot[R]{{\scriptsize\thepage{}/\pageref{LastPage}}}
\fancyheadoffset{0mm}
\fancyfootoffset{0mm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

并使用 pdfpages 包含以下命令

\newcommand{\InsertPdfPages}[1]{%
\includepdf[pages={#1},pagecommand={\pagestyle{fancy}}]{./NP2-18.pdf}%
}

但我希望 pdf 包含的页面的页脚看起来像这样

\fancyfoot[R]{{\scriptsize\thepage{}(\thepdfincludedpage)/\pageref{LastPage}}}

结果包含的页面的页脚如下所示

169(23)/423 % <current page>(<number of pdf included page>)/<total number of pages>

答案1

开始的示例:

\documentclass{article}
\usepackage{lastpage}
\usepackage{pdfpages}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[R]{{\scriptsize\thepage/\pageref{LastPage}}}
\fancyheadoffset{0mm}
\fancyfootoffset{0mm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\fancypagestyle{fancyinsert}{%
  \fancyfoot[R]{{\scriptsize\thepage(\theinsertpage)/\pageref{LastPage}}}%
}

\newcounter{insertpage}
\newcommand{\InsertPdfPages}[1]{%
  \setcounter{insertpage}{0}%
  \includepdf[
    pages={#1},
    pagecommand={%
      \stepcounter{insertpage}%
      \thispagestyle{fancyinsert}%
    },
  ]{NP2-18.pdf}%
}

\begin{document}
  \InsertPdfPages{1-2}
  Last page.
\end{document}

不是很清楚,“插入页”是哪种页码:

  • 插入的 PDF 文档的绝对页码,
  • \thepage”插入的 PDF 文档的编号,
  • 插入页面范围的绝对页码。

该示例实现了后一种解释。


\thepage下一个示例提供了更复杂的页面范围的示例:

\documentclass{article}
\usepackage{lastpage}
\usepackage{pdfpages}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[R]{{\scriptsize\thepage/\pageref{LastPage}}}
\fancyheadoffset{0mm}
\fancyfootoffset{0mm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\fancypagestyle{fancyinsert}{%
  \fancyfoot[R]{{\scriptsize\thepage(\theinsertpage)/\pageref{LastPage}}}%
}

\newcounter{insertpage}
\newcommand{\InsertPdfPages}[1]{%
  \setcounter{insertpage}{0}%
  \includepdf[
    pages={#1},
    pagecommand={%
      \stepcounter{insertpage}%
      \thispagestyle{fancyinsert}%
    },
  ]{NP2-18.pdf}%
}

\begin{document}
  \renewcommand*{\theinsertpage}{%
    \ifcase\value{insertpage}%
      20\or
      21\or
      22\or
      23\or
      24\or
      41\or
      43\or
      44\or
      50\or
      51\or
      52%
    \fi
  }%
  \InsertPdfPages{20-24,41,43,44,50-52}
  Last page.
\end{document}

或者解析页面列表的变体:

\documentclass{article}
\usepackage{lastpage}
\usepackage{pdfpages}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[R]{{\scriptsize\thepage/\pageref{LastPage}}}
\fancyheadoffset{0mm}
\fancyfootoffset{0mm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\fancypagestyle{fancyinsert}{%
  \fancyfoot[R]{{\scriptsize\thepage(\theinsertpage)/\pageref{LastPage}}}%
}

\newcounter{insertpage}

\usepackage{kvsetkeys}
\makeatletter
\newcommand{\InsertPdfPages}[1]{%
  \comma@parse{#1}{\@InsertPdfPages}%
}
\newcommand*{\@InsertPdfPages}[1]{%
  \@@InsertPdfPages#1-#1-\@nil
}
\def\@@InsertPdfPages#1-#2-#3\@nil{%
  \InsertPdfPageRange{#1}{#2}%
}
\makeatother

\newcommand*{\InsertPdfPageRange}[2]{%
  \setcounter{insertpage}{#1}%
  \addtocounter{insertpage}{-1}%
  \includepdf[
    pages={#1-#2},
    pagecommand={%
      \stepcounter{insertpage}%
      \thispagestyle{fancyinsert}%
    },
  ]{NP2-18.pdf}%
}

\begin{document}
  \InsertPdfPages{20-24,41,43,44,50-52}
  Last page.
\end{document}

相关内容