使用补充材料 (SM) 生成论文变得越来越普遍。理想情况下,我希望编写一个包含正文和 SM 的文档,以便生成所有 latex 自动引用和超链接。许多期刊都喜欢我们通过图 S1、S2 等指定 SM 中的图表。我曾经使用过的一种方法是
\renewcommand{\thefigure}{S\arabic{figure}}
\setcounter{figure}{0}
然而,这会产生问题,因为现在我将拥有多个对象:图 1 和图 S1 具有相同的标识符。
我找到了另一种方法:
\newcounter{sfigure}
\renewcommand{\thefigure}{S\arabic{sfigure}}
但现在我需要补充
\stepcounter{sfigure}
每个图形之后
定义语法是什么
\newcounter{sfigure}
这样每次数字计数器是否增加?
答案1
超链接在添加链接时,计数器会在幕后做一些狡猾的事情,这就是为什么重置计数器会导致与相应超链接混淆的原因。要解决这个问题,您要么需要欺骗 hyperref,要么欺骗 latex 来做您想做的事情。
我认为欺骗 latex 可能更容易,所以我建议重新定义图形计数器。与其将计数器重置为,不如0
“记住”主文档中的图形数量,比如在宏中\presupfigures
,然后重新定义\thefigure
,以便它打印一个S
以及通过减去获得的“调整后的”图形数量\presupfigures
:
\renewcommand\thefigure{S\fpeval{\arabic{figure}-\presupfigures}}
这里\fpeval
,来自韓膠囊包,是一种方便的减法方法,但当然还有其他方法可以做到这一点。
以下 MWE 提供了完整的详细信息。为了完整起见,我还以同样的方式调整了章节编号。
\documentclass{article}
\usepackage{hyperref}
\usepackage{xfp}
\newcommand\SupplementaryMaterials{%
\xdef\presupfigures{\arabic{figure}}% save the current figure number
\xdef\presupsections{\arabic{section}}% save the current section number
\renewcommand\thefigure{S\fpeval{\arabic{figure}-\presupfigures}}
\renewcommand\thesection{S\fpeval{\arabic{section}-\presupsections}}
}
\begin{document}
\section{Main text}
\begin{figure}\caption{Nice one caption!}\label{Fig:1}
Here is a nice figure
\end{figure}
\SupplementaryMaterials
\section{Supplementary text}
\begin{figure}\caption{Nice two caption!}\label{Fig:2}
Here is a nicer figure
\end{figure}
A reference to the nice figure: see \autoref{Fig:1}
A reference to the nicer figure: see \autoref{Fig:2}
\end{document}
输出如下:
您无法从此图像检查超链接是否有效,但如果您编译自己的 MWE 版本,您会发现它们有效。
顺便说一句,最好提供一个最小工作示例提问时。我不能完全确定我是否已经解决了您的问题,因为问题中没有包含足够的信息来重现它。