使用 ocgcolorlinks 中断待办事项列表

使用 ocgcolorlinks 中断待办事项列表

当尝试使用\listoftodoscolorinlistoftodosocgcolorlinks,文本会从待办事项列表中消失。确切地说,文本仍然在那里,我可以复制它,但看不到它——它变得透明。没有选项colorinlistoftodos或没有ocgcolorlinks,一切都正常。

为什么会发生这种情况? 有什么解决方法吗?

梅威瑟:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[colorlinks]{hyperref}
\usepackage[ocgcolorlinks]{ocgx2}
\usepackage[colorinlistoftodos]{todonotes}

\begin{document}

Testing \todo{This is a todonote.}

\listoftodos

\end{document}

答案1

ocgx2这是使用该选项的一个极端情况ocgcolorlinks,请参见https://gitlab.com/agrahn/ocgx2#package-option-ocgcolorlinks

链接文本中的图形对象需要用命令进行保护\ocglinkprotect{...}

在下面的代码中,相应的命令被todonotes相应地修补:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[ocgcolorlinks]{ocgx2}
\usepackage[colorinlistoftodos]{todonotes}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter
\renewcommand{\@todonotes@addElementToListOfTodos}{%
    \if@todonotes@colorinlistoftodos%
        \addcontentsline{tdo}{todo}{%
            \ocglinkprotect{\fcolorbox{\@todonotes@currentbordercolor}%
                {\@todonotes@currentbackgroundcolor}%
                {\textcolor{\@todonotes@currentbackgroundcolor}{o}}}%
            \ \@todonotes@caption}%
    \else%
        \addcontentsline{tdo}{todo}{\@todonotes@caption}%
    \fi}%
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

Testing \todo{This is a todonote.}

\listoftodos

\end{document}

另一个选项可能是hyperref选项linktocpage,它仅将页码转换为超链接。

相关内容