varwidth와 ocgcolorlinks(hyperref/ocgx2) 간의 비호환성 가능성

varwidth와 ocgcolorlinks(hyperref/ocgx2) 간의 비호환성 가능성

아래의 간단한 예에서는 옵션으로 로드된 패키지 varwidth로 인해 환경 내부 참조가 실패합니다 . 동일한 옵션을 사용하여 추가하면 상황이 더욱 악화됩니다.hyperrefocgcolorlinksocgx2

\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/... 를 사용할 수 있는 수정 사항을 제공할 수 있는 사람이 있습니까 ?varwidthocgcolorlinkshyperrefocgx2

답변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}

관련 정보