解决方案

解决方案

解决方案

在 MWE 中可以找到生成符合 PDF/X 标准的文档的完整解决方案,并回答以下问题:禁用所有文档交互性(以符合 PDF/X 规范)

改编的 MWE 和编译方法取自 Leonid 对这个问题的回答。

请注意,解决方案需要使用 TeXLive 2015(或更高版本)进行编译。

原始问题

我正在尝试使用 XeLaTeX 编译我的源代码以生成符合 PDF/X-1a:2001 的文档。使用pdfx软件包(同时使用最新的 TeX 发行版)可以获取 PDF/X-1a:2001,但前提是文档是使用 编译的pdflatex

由于我在文档中使用了 OTF 和 TTF 字体,因此我必须使用 XeLaTeX 来编译它。这是 MWE:

\documentclass{book}
\usepackage[x-1a1]{pdfx}
\begin{document}
Some text
\end{document}

当我尝试使用 MiKTeX 2.9 编译该文档时xelatex出现以下错误并且编译停止:

! Undefined control sequence.
l.111 \pdfminorversion
                      =4 %  assumed for PDF/A ;  options may change this for...

? 

有没有办法用 XeLaTeX 编译 PDF/X-1a:2001,无论是使用pdfx还是使用不同的包?

附言:我使用了MiKTeX 2.9,因为我不想更新TeX Live 2013/Debian我通常使用的发行版。使用 MiKTeX,我可以获得最新版本的pdfx软件包。

编辑:由于 Leonid 的回答并不明显,而且只在评论中提到,请注意你需要 TeXLive 2015 才能让 Leonid 的答案完全发挥作用。TeXLive 2013(由系统的包管理器安装)或 MiKTeX 2.9 不起作用(截至 2016 年 3 月这是事实;当您读到本文时,情况可能会发生变化)。


我也尝试编译这个 MWE 来LuaLaTeX查看它是否有效。没有。我收到以下错误:

! Undefined control sequence.
\pdfx@findUUID ... \pdfx@tmpstring {\pdfmdfivesum 
                                                  {#1}} \expandafter \pdfx@e...
l.360 \pdfx@findUUID{\jobname.pdf}

?

如果 LuaLaTeX 的版本很重要:lualatex --version输出

This is LuaTeX, Version beta-0.76.0-2013062821  (MiKTeX 2.9 64-bit) (rev 4627)

答案1

您需要使用\special命令将一些特定的元数据放入生成的 pdf 中,使用hyperref打包然后使用 xelatex 选项进行编译-output-driver="xdvipdfmx -V 3"。看例子:

% !TeX program = xelatex 
%%%%Needs to be compiled with commandline: "xelatex.exe -output-driver="xdvipdfmx -V 3" %.tex" % as PDF 1.3 required by PDF/X
\documentclass{book}

%%%%%%%%% PDF-X stuff, IF USING xelatex %%%%%%%%%
%(mm size * 72)/25.4 = bp size
\usepackage{atbegshi}
\AtBeginShipout{% %A hook that is executed for every page (after first one)
    \special{pdf: put @thispage
      <<
        /TrimBox [0 0 210.990 162.086] %put here other numbers = size of page in bp
      >>
    }
}
\special{pdf: put @thispage
  <<
    /TrimBox [0 0 210.990 162.086] %put here other numbers = size of page in bp
  >>
}
\special{pdf:docinfo
  <<
    /GTS_PDFXVersion (PDF/X-1:2001)
    /GTS_PDFXConformance (PDF/X-1a:2001)
  >>
}

\special{pdf:put @catalog
<<
  /PageMode /UseNone
  /OutputIntents [
    <<
      /Info (none)
      /Type /OutputIntent
      /S /GTS_PDFX
      /OutputConditionIdentifier (Custom)
      /RegistryName (http://www.color.org/)
    >>
  ]
>>
}%

\usepackage{datetime} % for \pdfdate command

\usepackage{hyperref} % for \hypersetup

\hypersetup{% 
    pdftitle={DocTitle},% PDF/X document should have a title
    pdfinfo={% Setting some more PDF/X stuff for xelatex
        ModDate={D:\pdfdate},% PDF/X document should have a modification date
        Trapped={False},% PDF/X document should have Trapped tag set
    },
}


\begin{document}
Some text
\end{document}

另一个示例,可在lualatexpdflatex中编译xelatexhttp://gist.github.com/LSinev/98c0a40e94f4507922a8

相关内容