Possível incompatibilidade entre varwidth e ocgcolorlinks (hyperref/ocgx2)

Possível incompatibilidade entre varwidth e ocgcolorlinks (hyperref/ocgx2)

No exemplo simples abaixo, uma referência dentro varwidthdo ambiente falha devido ao hyperrefpacote carregado com a opção ocgcolorlinks. Ading ocgx2(com a mesma opção) torna isso ainda pior.

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

Saída

Alguém pode fornecer uma correção que permita o uso de ref/ href/ cref/… dentro varwidthdo ambiente sem desabilitar ocgcolorlinksa opção hyperrefou ocgx2?

Responder1

Você poderia tentar restaurar localmente \pdfliteral para a definição original (varwidth a 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}

informação relacionada