[toc]
使用LaTeX的过程中总免不了要在一个大图中包含好几个子图。当前在LaTeX中插入多个子图使用的最新版本的包围subfig,基本上好的主流的国外期刊都会具体要求使用该包。
1 问题描述
我在使用该包的过程中遇到的一个问题为:
我需要的子图的展现方式为
我刚开始使用的代码为
\begin{figure}[!htb]
\centering
\subfloat[]{\label{Fig:R1}%%
\includegraphics[width=2.3in]{fig2_r1.eps}}
\quad
\subfloat[]{\label{Fig:R2}%%
\includegraphics[width=2.3in]{fig2_r2.eps}}\\
\caption{不同发起角色的不完全执行实例的推荐准确度对比:\ref{Fig:R1}发起人角色为$r1$,\ref{Fig:R2}发起人角色为$r2$}
\label{Fig:RecAccuracy}
\end{figure}
上述代码运行的结果为
完全不符合我的需要。怎么办呢?
2 解决过程及方案
我刚开始第一个想到的是查阅包subfig的帮助文档1,但是由于该文档有将近70页的长度,我没耐心细致地看完它,直接跳到该文档的例子章节,来查看又没有满足我的要求的代码示例,无果。于是在google上面搜索,利用关键词“subfig”、“LaTeX subfig”、以及”LaTeX subfig 子图标号引用”等,没找到需要的方案。于是接着利用Baidu来进行相似的查询,仍然无果。我想利用全英文的单词来查询,但又苦于没有合适的英文单词来表达“子图标号引用”,没继续查询下去。这时时间已用去大概半个小时,正在我一筹莫展之际,我想干脆就认真地看subfig的帮助文档,毕竟那儿有subfig的完整的使用说明。
果然我看到11页的时候,嗅到了解决方案的味道:
The \subref command is provided to give an alternative reference to a sub-float. The standard \ref command returns a label built by concatenating the \p@float + \thesubfloat, which is often of the form “1a”. The \subref command returns the label shown on the List-of-Floats page, which may be in the format “(a)”.
顺着上面的例子,我就将代码中出现\ref的地方全部替换为\subref,再次运行,顺利得到我想要的结果。
3 启示
先人说“欲速则不达”是有道理的。当你以某种你认为节省的方式寻求某个问题的答案时,反而不能快速找到。同时,在网上我们找不到某个问题的解决方案时,不要灰心,让自己来解决这个问题。
- Steven Douglas Cochran. The subfig Package. 2004. ↩