OPmac mnote 有超链接错误吗?

OPmac mnote 有超链接错误吗?

在排版以下内容时(使用 pdfTeX 或 luaTeX),边注中交叉引用的最右边括号被着色,好像是超链接的一部分(尽管实际上不是链接的一部分),但我认为它不应该是。左边括号是黑色的,不是链接的一部分:

\input opmac

% Enable hyperlinks
\hyperlinks\Red\Red

\newcount\somecounter \somecounter 1

\label[test]\wlabel{T.\the\somecounter} This is a test

More Text and now we put a cross reference in a marginal note: \mnote{[\ref[test]]}

\bye

截屏

到目前为止,我只通过 \mnote 在边注中看到过这种行为。

答案1

这个问题在OPmac 技巧 0037从 2014 年 3 月开始。我会尝试翻译它:

如果您需要使用 s 切换段落中的颜色\mnote,则可能会出现颜色混淆。\mnote在其出现时由宏处理,但它通过原始方式插入到当前段落行之后\vadjust\mnote在其末尾具有与当前行相同的颜色。 OPmac Mar2014 或更高版本通过添加颜色的可能性解决了该问题\mnotehook。此颜色在每个“局部”中具有“全局”有效性,\mnote并且不会影响主段落中行的颜色。例如,您需要将所有\mnotes 都设为蓝色:

\def\mnotehook{\noindent\Blue}

这里需要\noindent,因为垂直模式下的颜色标记会破坏文本的正确位置\mnote

为什么 OPmac 默认不声明\def\mnotehook{\noindent\Black}?因为默认行为是从 s 的主段落当前文本中继承颜色\mnote

文本中可以有更多颜色(例如,\mnote以 声明的组的形式)。如果此处未使用 ,则颜色在文本末尾结束。\localcolor\localcolor\mnote

答案2

\mnote清除颜色,在\mnoteC

\def\currcolork{}
\def\currcolorK{}

然后链接设置\Red组内的颜色:

{\localcolor \Red}

\localcolor通过 恢复分组后的颜色\restorecolor。但由于 开始时的当前颜色\mnote为空,因此不会恢复任何内容,颜色仍为红色。

解决方法:

\mnote{[\Black\ref[test]]}

然后链接后颜色就可以恢复为黑色了。

相关内容