标题 + 子图中未使用字体大小的图形参考编号

标题 + 子图中未使用字体大小的图形参考编号

一个奇怪的行为:如果我使用包子图并且在字体更改环境中添加标题,则当我通过引用调用图形时没有图形编号。

梅威瑟:

\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}

在此处输入图片描述

相关内容