对于某些样式,似乎\label
必须包含该语句\caption
才能保持良好的引用。这是为什么?
答案1
实际上,\label
必须出现在 之后(不一定在 里面)\caption
,因为该命令会增加与 的参数关联的\caption
计数器。\label
答案2
\caption
(重新)定义一个宏\@currentlabel
,然后\label
使用。
我最近看到有人发了一篇帖子,内容类似
{\itshape \caption{foo bar}}\label{foobar}
(任何有经验的人都会对此感到困惑,但这种事确实发生了。)
然后由于\@currentlabel
是在一个组内定义的,\label
最终引用了最后\caption
一个不是在一个组内,因为该值还没有从组内部导出。
放入\label
标题内解决了以下问题这以一种“强有力”的方式,
对于通常被误导的人来说,只要说“将 \label 放在 (或其他) 之后\caption
;中间不要有空格或换行符”就足够了
分组效果同样适用于部分和其他可以标记的事物。
答案3
mbq 声称某些模板会弄乱标签系统。如果是这样,您就不要使用标签。
fwiw,我已经下载并扫描了 mbq 提到的 jss 内容,没有发现任何迹象表明标签处理不是标准处理。