在排版以下内容时(使用 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
并且不会影响主段落中行的颜色。例如,您需要将所有\mnote
s 都设为蓝色:
\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]]}
然后链接后颜色就可以恢复为黑色了。