让 Latex 遵循任意的图形编号方案

让 Latex 遵循任意的图形编号方案

我正在抄写一本有很多插图的书的草稿。在这个阶段,作者插入了一些图片并删除了其他图片,所以他的图版编号是 1、2、3a、3b、3c、4、5、6、10、11……我现在想保留他的编号。我尝试了各种\renewcommand{\thefigure} 组合\setcounter似乎都没有用。

答案1

组合\renewcommand\thefigure{..} 里面 figure环境和\setcounter{figure}{..}\addtocounter{figure}{..}指令外部环境figure应该能完成这项工作。

在此处输入图片描述

\documentclass{article}
\begin{document} 
% be sure to remove the '[ht!]' placement specifiers in your real doc.

\begin{figure}[ht!] \caption{\dots} \end{figure} % 1
\begin{figure}[ht!] \caption{\dots} \end{figure} % 2
\begin{figure}[ht!] \renewcommand\thefigure{3a}\caption{\dots} \end{figure} % 3a
\begin{figure}[ht!] \renewcommand\thefigure{3b}\caption{\dots} \end{figure} % 3b
\begin{figure}[ht!] \renewcommand\thefigure{3c}\caption{\dots} \end{figure} % 3c
\setcounter{figure}{3} % b/c 'figure' counter has advanced to '5' in the meantime
\begin{figure}[ht!] \caption{\dots} \end{figure} % 4
\begin{figure}[ht!] \caption{\dots} \end{figure} % 5
\begin{figure}[ht!] \caption{\dots} \end{figure} % 6
\addtocounter{figure}{3} % skip over three numbers
\begin{figure}[ht!] \caption{\dots} \end{figure} % 10
\begin{figure}[ht!] \caption{\dots} \end{figure} % 11

\end{document}

答案2

由于编号没有规律,您可以制作一个主列表并将其用作查找表,然后将其加载到 expl3 属性列表中以保存击键。

洛夫

图片

如果情况发生变化并且您需要重新同步主列表,您可以在标题中输入实际的图形编号来提供帮助。

对于大量的数字,电子表格是高效的,它将每个主列表的编辑减少到六次击键。

平均能量损失

\documentclass{article}
\usepackage{graphicx}
\usepackage{xparse}

\ExplSyntaxOn

\prop_new:N \g_ap_figlabel_prop

\NewDocumentCommand \loadalist { +m } {
        \prop_gset_from_keyval:Nn
                \g_ap_figlabel_prop
                { #1 }
}


\NewDocumentCommand \getfiglabel { m } {
   \tl_set:Nx
   \l_tmpa_tl
   { #1 }
        \exp_args:NNo
    \prop_item:Nn
                \g_ap_figlabel_prop
                { \l_tmpa_tl }
}


\ExplSyntaxOff



\newcommand\testfig{\begin{figure}\begin{center}\includegraphics[width=1cm]{example-image}\caption{A caption (seq: \arabic{figure})}\end{center}\end{figure}}


\loadalist{1=1
,2=2
,3=3a
,4=3b
,5=3c
,6=4
,7=5
,8=6
,9=10
,10=11
,11=23
,12=52
}

\renewcommand{\thefigure}{\getfiglabel{\arabic{figure}}}

%========================================
\begin{document}
\listoffigures
\testfig
\testfig
\testfig
\testfig
\testfig
\testfig
\end{document}

或者这样做:

\renewcommand{\thefigure}{\getfiglabel{\arabic{figure}} (\arabic{figure})}

更加紧凑。

相关内容