Posible incompatibilidad entre varwidth y ocgcolorlinks (hyperref/ocgx2)

Posible incompatibilidad entre varwidth y ocgcolorlinks (hyperref/ocgx2)

En el ejemplo simple siguiente, una referencia dentro del varwidthentorno falla debido a que hyperrefel paquete se cargó con la opción ocgcolorlinks. Agregar ocgx2(con la misma opción) empeora esto aún más.

\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}

Producción

¿Alguien puede proporcionar una solución que permita el uso de ref/ href/ cref/... dentro varwidthdel entorno sin deshabilitar ocgcolorlinksla opción hyperrefo ocgx2?

Respuesta1

Podrías intentar restaurar localmente \pdfliteral a la definición original (varwidth la redefine):

\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}

información relacionada