Mögliche Inkompatibilität zwischen varwidth und ocgcolorlinks (hyperref/ocgx2)

Mögliche Inkompatibilität zwischen varwidth und ocgcolorlinks (hyperref/ocgx2)

Im einfachen Beispiel unten schlägt eine Referenz innerhalb varwidthder Umgebung fehl, weil hyperrefdas Paket mit der Option geladen wurde ocgcolorlinks. Das Hinzufügen ocgx2(mit der gleichen Option) macht das Ganze noch schlimmer.

\documentclass{article}

\usepackage{varwidth}
\usepackage[ocgcolorlinks]{hyperref}
%\usepackage[ocgcolorlinks]{ocgx2}

\begin{document}
    \section{A section} \label{sec}

    A reference outside \texttt{varwidth}: sec.~\ref{sec}.

    \noindent
    \begin{varwidth}{\textwidth}
        A reference \hphantom{outside }\llap{inside} \texttt{varwidth}: sec.~\ref{sec}.
    \end{varwidth}
\end{document}

Ausgabe

refKann jemand einen Fix bereitstellen, der die Verwendung von / href/ cref/… innerhalb der Umgebung ermöglicht, varwidthohne ocgcolorlinksdie Option hyperrefoder zu deaktivieren ocgx2?

Antwort1

Sie könnten versuchen, \pdfliteral lokal auf die ursprüngliche Definition zurückzusetzen (varwidth definiert es neu):

\documentclass{article}
\usepackage{varwidth}
\usepackage{hyperref}
\usepackage[ocgcolorlinks]{ocgx2}

\begin{document}
    \section{A section} \label{sec}

    A reference outside \texttt{varwidth}: sec.~\ref{sec}.

    \makeatletter
    \noindent
    \begin{varwidth}{\textwidth}
        A reference \hphantom{outside }\llap{inside}\texttt{varwidth}: sec.~\mbox{\let\pdfliteral\@@vwid@pdfliteral\ref{sec}}.
    \end{varwidth}
    \makeatother
\end{document}

verwandte Informationen