Возможная несовместимость между varwidth и ocgcolorlinks (hyperref/ocgx2)

Возможная несовместимость между varwidth и ocgcolorlinks (hyperref/ocgx2)

В простом примере ниже ссылка внутри varwidthсреды дает сбой из-за hyperrefпакета, загруженного с опцией ocgcolorlinks. Добавление ocgx2(с той же опцией) делает ситуацию еще хуже.

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

Выход

Может ли кто-нибудь предоставить исправление, которое позволило бы использовать ref/ href/ cref/… внутри varwidthсреды без отключения ocgcolorlinksопции hyperrefили ocgx2?

решение1

Вы можете попробовать локально восстановить \pdfliteral до исходного определения (varwidth переопределяет его):

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

Связанный контент