latex 插入图片_[LaTeX 尝试] 以插图形式输出 PDF 文件的所有页面

本文介绍了如何在LaTeX中使用宏包插入PDF文件,并通过循环输出PDF的所有页面。讨论了插入PDF的两种效果,以及如何指定插入的页面选项。详细讲解了获取PDF总页码的方法,强调了完整文件名的重要性,并提供了记录完整文件名的解决方案。最后,给出了一个循环输出所有页面的示例。
摘要由CSDN通过智能技术生成

本文已加入专栏文章目录,归入「进阶使用」文章系列。

插入 PDF 的两种效果

用 latex 生成 pdf 时,插图功能(通常通过 graphicx 宏包的 includegraphics 命令)除了支持 eps、jpg 等常见图片格式,还支持 pdf 格式。

插入 pdf 图片,有两种效果

  1. 像插图那样,一页 pdf 就像是一个 eps 或 jpg 图片,插一张图就像是输入了一个大号的字符。这是 includegraphics 提供的功能。
  2. 像合并 pdf 文件那样,相当于先用 latex 生成 main.pdf,然后把另一个 pdf 文件(的一部分)和 main.pdf 合并。这是 pdfpages 宏包提供的功能。

两者的差异是,在最终输出的 pdf 里,

  • graphicx 插入的 pdf 页面,角色是某页里的一个大一点的符号,这一页里还能包含其他内容;
  • pdfpages 插入的 pdf 页面,角色是一个整页。

本文提供一种尝试,使得在用第一种效果插入 pdf 时,能一次插入所有页面。

指定页面的选项

pdfpages 提供的 pages 选项, 允许用户指定要插入

  • 哪一页 pages=2
  • 哪几页 pages=1,3,5
  • 哪个页面范围 pages=1-3,4-

includegraphics[<options>]{<image file>} 也有 page 选项,从选项命名上可以看出,它只接受一个数字,即每次只插入一页。

获取 PDF 文件的总页码

插图终究需要引擎的底层支持,而 xetex 和 pdftex 引擎,

  • 都只支持一次插入一页 pdf,这意味着需要在 latex 层面做「输入所有页面」的循环
  • 也都提供了获取 pdf 文件总页数的 primitive

TeX-SX 上的问答 Get number of pages of external PDF 提供了在 pdftex、xetex 和 luatex 三种引擎下的页码获取方法。我们参考它,做一个只支持 pdftex 和 xetex 的

usepackage{
    iftex}

% Store number of pages of pdf file #2 in command #1.
%   Usage: @getPageNumOfPdf{@pagecount}{image.pdf}
%   Ref: https://tex.stackexchange.com/q/198091
def@getPageNumOfPdf#1#2{
    %
  ifPDFTeX
    pdfximage{
    #2}%
    xdef#1{
    thepdflastximagepages}%
  elseifXeTeX
    % trailing space in `"#2" ` is necessary
    xdef#1{
    theXeTeXpdfpagecount"#2" }%
  else
    PackageError{
    TEST}{
    Support en
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值