chemnum、hyperref 和 .eps 文件兼容性

chemnum、hyperref 和 .eps 文件兼容性

我意识到,在过去的几年里,在previewhyperref(见这里Ulrike Fisher 的问题引用一对)。当使用chemnum.eps 文件(即来自 ChemDraw)中的自动编号 TMP 标签时,建议使用以下代码:

\makeatletter
\ifpdf
\def\@tempa{off}
\ifnum\pdf@shellescape=\@ne\relax
\ifnum\pdf@strcmp
{\pdf@filemoddate{\jobname.tex}}
{\pdf@filemoddate{\jobname-pics.pdf}}
>0 \relax
\def\@tempa{on}
\fi
\fi
\PassOptionsToPackage{\@tempa}{auto-pst-pdf}
\else
\disable@package@load{hyperref}{}
\disable@package@load{bookmark}{}
\fi
\makeatother

这适用于 MWE,也适用于我使用的所有其他软件包(与化学相关和不相关)。但是,由于研究生院论文的要求,此修复不适用于自定义文件.sty。由于此自定义文件.sty包含hyperref,因此编译总是导致GPL Ghostscript 10.02.1: Unrecoverable error, exit code 1在许多情况下发现的错误。无论上述代码是否放在此文件中,hyperref都会不断导致错误。

我唯一的解决方法是将所有hyperref选项移至主程序的前言部分.tex,而不是将其埋入包中。这是不好的做法吗?

使用该chemnum包自动编号已保存为.eps文件(打开文本嵌入)的 ChemDraw 文件的一个 MWE 如下:

\documentclass[]{book}% I'm writing a dissertation after all

\usepackage{auto-pst-pdf}

\makeatletter
\ifpdf
\def\@tempa{off}
\ifnum\pdf@shellescape=\@ne\relax
\ifnum\pdf@strcmp
{\pdf@filemoddate{\jobname.tex}}
{\pdf@filemoddate{\jobname-pics.pdf}}
>0 \relax
\def\@tempa{on}
\fi
\fi
\PassOptionsToPackage{\@tempa}{auto-pst-pdf}
\else
\disable@package@load{hyperref}{}
%\disable@package@load{bookmark}{}
\fi
\makeatother

\usepackage{chemnum}

\usepackage{hyperref}

\begin{document}

\begin{figure}
\replacecmpd[]{1}%tag defaults to TMP and should include a number at the end
\includegraphics{examplefigure.eps}

\end{figure}
\end{document}

我不完全确定如果没有附加文件它是否算作 MWE examplefigure.eps,但你可以使用你最喜欢的一个。

只是为了完整性,我pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape %.tex在 TeXStudio 上使用 TeXLive2023。

hyperref自定义包之类的包放入序言本身是不是不好的做法?有没有更好的选择?

相关内容