控制 PDF 输出的选项

控制 PDF 输出的选项

我在 LaTeX 文件中看到一行内容\pdfoptionsminorversion=6。这改变了 PDF 的次要版本,我通过查看生成的 PDF 确认了这一点。现在,此选项似乎没有在任何地方记录,所以我很好奇。还有哪些其他选项和/或环境可以控制 PDF 输出?

答案1

该选项现在称为\pdfminorversion(自 pdfTeX 1.30.0 2005-08-01 起)。它记录在 pdfTeX手动的

\pdfminorversion(整数) 此原语设置生成文件的 PDF 版本和所包含 PDF 的最新允许 PDF 版本。例如,\pdfminorversion=3告诉 pdfTeX 将 PDF 版本设置为 1.3,并且只允许包含版本号最高为 1.3 的 PDF 文件。默认值为\pdfminorversion5,生成 PDF 版本为 1.5 的文件。如果指定,此原语必须出现在任何数据写入生成的 pdf 文件之前,因此您应该将其放在文件的最开始。此命令已在 pdfTeX 1.30.0 中作为\pdfoptionpdfminorversion 命令的缩写同义词引入,现已过时。

分布在这里改变了默认值;例如,TeX Live 2010 设置\pdfminorversion=5其格式的构建时间,因此可以启用对象压缩(如下所述)。

这并不完全正确,因为当前 pdfTeX 1.40.15(无需进一步配置)的默认值是 4。表 2 显示了这个正确值。

一些软件包支持:

  • 包裹pdf14将 PDF 版本设置为 1.4(即对象流压缩之前)。

  • 包中有一个设置 PDF 版本的hyperref选项。pdfversion

其他 TeX 引擎/DVI 驱动程序:

  • LuaTeX:\pdfminorversion同 pdfTeX。

    在 Lua 中情况更复杂,因为tex.pdfminorversion如果其设置无效,则不会抛出错误消息,因为版本已经写入。PDF 文件的最开头,即 PDF 标头,已经以版本号开头(例如%PDF-1.5)。将版本设置为 1.4 的示例:

    \directlua{
      if tex.pdfminorversion \string~= 4 then
        if (status.pdf_gone and status.pdf_gone > 0)
        or (status.pdf_ptr and status.pdf_ptr > 0) then
          tex.error("PDF version cannot be changed anymore")
        else
          tex.pdfminorversion = 4
        end
      end
    }
    

    对于 luatex 版本 0.95.0(TeX Live 2016):

    \directlua{
    if pdf.getminorversion() \string~= 7 then
      if (status.pdf_gone and status.pdf_gone > 0)
      or (status.pdf_ptr and status.pdf_ptr > 0) then
        tex.error("PDF version cannot be changed anymore")
      else
        pdf.setminorversion(7)
      end
    end
    }
    
  • dvipdfm(x)

    • 命令行选项:

      -V number     Set PDF minor version [4]
      

      例子:

      dvipdfmx -V 4 test.dvi
      
    • \special{pdf:minorversion 3}查看\special{pdf:minorversion 7}评论的 AndreKR)。如果给出了多个特惠,则第一页上最新的特惠将获胜,第一页之后的特惠将被忽略。此外,不支持的值将被默默忽略。

  • 特克斯

    • 可以通过输出驱动程序 () 的命令行选项-V(参见)设置版本。可以通过命令行上的XeTeX 选项将该选项传递给输出驱动程序:dvipdfmxxdvipdfmx-output-driver

      xelatex -output-driver="xdvipdfmx -V4" test.tex
      
    • \special{pdf:minorversion 3}查看\special{pdf:minorversion 7}评论的 AndreKR)。如果给出了多个特惠,则第一页上最新的特惠将获胜,第一页之后的特惠将被忽略。此外,不支持的值将被默默忽略。

  • Ghostscript 提供了简写命令:ps2pdf12ps2pdf13ps2pdf14可以用来生成版本 1.2、1.3 或 1.4 的 PDF 文件。ps2pdf当前设置 1.4,来自 shell 脚本ps2pdf

    # Currently, we produce PDF 1.4 by default, but this is not guaranteed
    # not to change in the future.
    version=14
    

    用于设置 PDF 版本的完整 ghostscript 选项,例如 1.4:

    -dCompatibilityLevel=1.4
    

相关内容