pdfx 包给我包 hyperref 的选项冲突

pdfx 包给我包 hyperref 的选项冲突

我正在使用以下包将 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}

现在它可以编译了,当我通过 Adob​​e 打开它时,它说它符合 PDF/A 标准。

我认为这是可行的,因为我是通过 PdfLaTex 编译的,但我不确定。我不是这方面的专家。

如果有更好的解决方案,请告诉我。我会尝试并删除我的答案的标记

PS@Herbert,感谢您的支持。

相关内容