如果我使用自定义图号,如何获取子图的正确格式

如果我使用自定义图号,如何获取子图的正确格式

我是一个重度 LaTeX 用户,但对 Tex 编程的实现知之甚少。我正在写一个较长的文档,希望有这样的图号:chaper.section.figure_number 例如图 4.3.10。经过一番搜索,我找到了这个解决方案,效果很好:

\makeatletter
\@addtoreset{equation}{section}
\@addtoreset{figure}{section}
\@addtoreset{table}{section}
\def\thefigure{\thesection.\@arabic\c@figure}
\def\thetable{\thesection.\@arabic\c@table}
\def\theequation{\thesection.\@arabic\c@equation}
\makeatother

,虽然我不知道为什么。当我使用带有标签的子图时,不幸的是,我得到了这样的引用:chaper.figure_nuber 例如 4.30(a)。但我想要的是:chapter.section.figure_number.(a,,b,c..) 例如 4.2.10(a)。我想我必须像上面那样定义一个额外的命令,但从子图文档中我无法说出哪个以及如何...

我将不胜感激任何帮助

答案1

以下设置应该适合您需要的工作。请注意,我使用的是较新的subcaption包而不是较旧的subfig包,并且我使用了包\numberwithin提供的命令amsmath

\documentclass{book}
\usepackage{amsmath,    % for \numberwithin and \eqref commands
            subcaption} % for subfigure environment
\usepackage[demo]{graphicx} % remove 'demo' option for real document
\numberwithin{equation}{section}
\numberwithin{figure}{section}
\numberwithin{table}{section}

\begin{document}
\chapter{First Chapter}
\section{New ideas}

\begin{figure}[h]
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\columnwidth]{somegraph.pdf}
\caption{First subfig} \label{fig:1a}
\end{subfigure}
\hspace{\fill} % maximize horizontal separation of subfigs
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\columnwidth]{anothergraph.pdf}
\caption{First subfig} \label{fig:1b}
\end{subfigure}
\caption{The first figure}
\end{figure}

A display-style equation:
\begin{equation}\label{eq:1}
a^2+b^2=c^2
\end{equation}

And here are cross-references to subfigures \ref{fig:1a} and \ref{fig:1b} 
as well as to equation~\eqref{eq:1}.
\end{document}

在此处输入图片描述

相关内容