以下の簡単な例では、オプションでパッケージがロードされた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}