![标题 + 子图中未使用字体大小的图形参考编号](https://linux22.com/image/299872/%E6%A0%87%E9%A2%98%20%2B%20%E5%AD%90%E5%9B%BE%E4%B8%AD%E6%9C%AA%E4%BD%BF%E7%94%A8%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%E7%9A%84%E5%9B%BE%E5%BD%A2%E5%8F%82%E8%80%83%E7%BC%96%E5%8F%B7.png)
一个奇怪的行为:如果我使用包子图并且在字体更改环境中添加标题,则当我通过引用调用图形时没有图形编号。
梅威瑟:
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\title{Test}
\section{Test}
Bla bla bla, please refer to Figure \ref{fig:flowchart}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{imgs/global_imgs/ffsmFlowChart3.pdf}
\begin{footnotesize} \caption{FFSM++ Flowchart} \end{footnotesize}
\label{fig:flowchart}
\end{figure}
\end{document}
结果是:
如果我删除 subfig 或不添加 footnotesize,它就可以正常工作。我应该将其报告为错误吗?在哪里?
答案1
caption
自动加载的包subfig
(除非你传递选项caption=false
)会进一步检查标题的位置\label
,以警告用户犯下标签的常见错误前標題。
之后你就得到了它,但有一个问题:该\caption
命令位于环境中,因此它设置的标签在 时被遗忘\end{footnotesize}
。你确实收到了警告
Package caption Warning: \label without proper \caption on input line 20.
See the caption package documentation for explanation.
如果删除subfig
,则不会收到任何警告,但引用是错误的,如下例所示:
\documentclass{article}
\usepackage[demo]{graphicx}
%\usepackage{subfig}
\begin{document}
\title{Test}
\section{A}
b
\section{Test}
Bla bla bla, please refer to Figure \ref{fig:flowchart}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{imgs/global_imgs/ffsmFlowChart3.pdf}
\begin{footnotesize} \caption{FFSM++ Flowchart} \end{footnotesize}
\label{fig:flowchart}
\end{figure}
\end{document}
当\label
扫描时,最新的\current@label
是发出的\section{Test}
,因为(不存在的)环境中的那个footnotesize
被遗忘了。
明确使用caption
(更好)并发出
\captionsetup{font=footnotesize}
应该尽可能避免像\footnotesize
文档中那样的明确标记。
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{subfig}
\captionsetup{font=footnotesize}
\begin{document}
\title{Test}
\section{A}
b
\section{Test}
Bla bla bla, please refer to Figure \ref{fig:flowchart}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{imgs/global_imgs/ffsmFlowChart3.pdf}
\caption{FFSM++ Flowchart}
\label{fig:flowchart}
\end{figure}
\end{document}
答案2
subfigure
已经过时很多年了,subfig
与 配合得不好
hyperref
。 包subcaption
是一个不错的选择。 字体切换是……开关,但不是环境。 请记住这一点。
最佳实践是在前言中定义全局事物,加载包subcaption
还提供包的功能
caption
。你现在可以访问一个强大的界面。
如果由于任何原因需要重新定义单个标题,请首先在标题参数中执行此操作。
\documentclass{article}
\usepackage{mwe}
\usepackage{subcaption}
\captionsetup{textfont=Large,
labelfont=footnotesize}
\begin{document}
\title{Test}
\section{Test}
Bla bla bla, please refer to Figure \ref{fig:flowchart}.
\begin{figure}
\centering
\caption{FFSM++}
\label{fig:flowchart}
\caption{\scriptsize FFSM++}
\end{figure}
\end{document}