![pdfx 包给我包 hyperref 的选项冲突](https://linux22.com/image/260739/pdfx%20%E5%8C%85%E7%BB%99%E6%88%91%E5%8C%85%20hyperref%20%E7%9A%84%E9%80%89%E9%A1%B9%E5%86%B2%E7%AA%81.png)
我正在使用以下包将 PDF 转换为 PDF/A 格式
\usepackage[a-1b]{pdfx}
当我编译时,收到以下错误。
“软件包 hyperref 的选项冲突”
我已经在 TEX 中搜索过,但到目前为止还没有找到任何有效的解决方案。
我在TexShop中使用Mac OS Tex进行编译。排版设置为LaTex。
先感谢您。
编辑
下面是我想要实现的一个小例子
\documentclass[english,lof,lot]{thesis}
\errorcontextlines=9
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\usepackage{lmodern}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Added Packages
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{caption}
\usepackage{algorithmic}
\usepackage{array}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[figuresright]{rotating}
\usepackage{float}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PDF/A
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[a-1b]{pdfx}
// begin document here...
其中 thesis.cls 是包含以下内容的文档类
\RequirePackage{ifpdf}
\ifpdf
\RequirePackage[pdfpagelabels]{hyperref}
\else
\RequirePackage{hyperref}
\fi
由于我没有编写该课程,所以我想知道如何才能克服该错误。
当我尝试使用此配置进行编译时,出现以下错误
软件包 hyperref 已使用选项 [pdfpagelabels] 加载。现在已尝试使用选项 [pdftex,pdfa] 加载。将全局选项:pdfpagelabels、pdftex、pdfa 添加到您的 \documentclass 声明中可能会修复此问题。
答案1
那应该是
\RequirePackage{ifpdf}
\ifpdf \PassOptionsToPackage{pdfpagelabels}{hyperref} \fi
\RequirePackage{hyperref}
答案2
关注@egreg 评论
软件包 pdfx 已加载 hyperref;如果您需要为此设置其他选项,请使用 \hypersetup{options here}
我删除了类文件中的此代码
\RequirePackage{ifpdf}
\ifpdf
\RequirePackage[pdfpagelabels]{hyperref}
\else
\RequirePackage{hyperref}
\fi
在 .tex 文件中我做了以下操作
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PDF/A
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[a-1b]{pdfx}
\hypersetup{pdfpagelabels}
现在它可以编译了,当我通过 Adobe 打开它时,它说它符合 PDF/A 标准。
我认为这是可行的,因为我是通过 PdfLaTex 编译的,但我不确定。我不是这方面的专家。
如果有更好的解决方案,请告诉我。我会尝试并删除我的答案的标记。
PS@Herbert,感谢您的支持。