\labelformat{计数器}{代码}
可以修改 \ref
的外形。对外形的修改在使用 \label
时就已经完成,直接写入到 .aux
文件里。
比如上一个问题 #如何输出一个行间的只显示计数器的数字的盒子 ,加上下面的代码,\ref
时就会加上 \fcolorbox
。
\labelformat{dycnt}{\fcolorbox{dyframecol}{dybackcol}{#1}}
#1
为 \thedycnt
。
\ref{<label>}
显示的内容实际上是 \r@<label>
的第一项,\r@<label>
由 \newlabel
定义,\newlabel
的第一个参数就是 <label>
,第二个参数就是 \r@<label>
的值,不加载 hyperref
时,它只有2项,加载 hyperref
时有5项。你可以查看 .aux
文件。
\r@<label>
的第一项在(前一次编译时)执行 \label{<label>}
时就已经确定了,(局部的)保存在 \@currentlabel
这个内部命令中。更详细的内容可以查看 source2e.pdf
和 hyperref.pdf
。
请问这样设置后文引用时该怎么引用,直接
\ref{1.1}
不能引用第一个\dy
啊@u26254
\ref{dy:1}
,以前怎么用现在就怎么用。@u26254 也可以使用
cleveref
宏包,\cref
也能修改外观。@u10307 大佬,我发现
\ref
引用之后默认带有一个淡蓝色填充,例如,如果再在 label 或 ref 上设置颜色盒子会叠加,请问怎么能把这个默认的蓝色填充取得,重新设置
@u26254 给出代码看看。
@u10307
效果就是
能否将1.1的蓝色背景取消,自定义颜色填充
@u26254 你试试下面的代码能不能输出这个结果:
改
\dyrefbox
就能修改\ref
的外观。\dyrefbox
一定要\protected
起来。可能你的代码就没编译成功,有没有加上
\labelformat
,颜色有没有定义,\tcbox
和旧版的\fcolorbox
都不是\protected
,写入到.aux
文件时可能出错,如果用了tcolorbox
定义了盒子,它会重新定义\thedycnt
,需要再改回来。@u10307 可以编译成功,但
ref
默认自带的蓝色方块依然存在,和ref
设置的彩色盒子颜色重叠,那个默认的蓝色方块没有取掉,不知道怎么回事@u10307 大佬,我发现了问题,是我的 PDF 阅读器有问题,显示有个蓝色方块,实际上并没有输出这个,我在浏览器上打开 这个PDF就正常,有点奇怪