如何强制子图的标题位于一行上?

如何强制子图的标题位于一行上?

我希望每个标题subfigure都在同一行,因为标题不会太长而需要换行。有什么方法可以强制将其放在一行上吗?

这是一个最小工作示例:

\documentclass[a4paper,12pt]{article}

\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{epstopdf}

\begin{document}
These captions will look very bad.
\begin{figure*}[thp!]
    \centering
    \begin{subfigure}[t]{0.5\textwidth}
    \centering
        \centerline{\includegraphics[height=8cm, width = 13cm]{file.eps}}
        \caption{This long caption should fit on one line still}
    \end{subfigure}
    \begin{subfigure}[t]{0.5\textwidth}
    \centering
        \centerline{\includegraphics[height=8cm, width = 13cm]{file.eps}}
        \caption{This long caption should also fit on one line}
    \end{subfigure}%
\end{figure*}

\end{document} 

答案1

将 {0.5\textwidth} 更改为 {1\textwidth}

我仍然不确定这到底是做什么的,但这解决了这个问题

\documentclass[a4paper,12pt]{article}

\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{epstopdf}

\begin{document}
These captions will look very bad.
\begin{figure*}[thp!]
    \centering
    \begin{subfigure}[t]{1\textwidth}
    \centering
        \centerline{\includegraphics[height=8cm, width = 13cm]{file.eps}}
        \caption{This long caption should fit on one line still}
    \end{subfigure}
    \begin{subfigure}[t]{1\textwidth}
    \centering
        \centerline{\includegraphics[height=8cm, width = 13cm]{file.eps}}
        \caption{This long caption should also fit on one line}
    \end{subfigure}%
\end{figure*}

\end{document} 

答案2

由于两个图表的宽度均为 13 厘米,因此我将两个subfigure环境的宽度也设置为 13 厘米。我假设您希望子标题的宽度与相关图表的宽度相同,但不能更宽。

然后,您可以省略环境中的两个\centerline包装器和两条\centering指令subfigure。我还会省略环境[t]的定位限定符subfigure,因为它们除了增加代码混乱之外什么也不做。

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{epstopdf}

\begin{document}
These captions no longer look bad.

\begin{figure}[thp!]
\centering
    \begin{subfigure}{13cm}
        \includegraphics[height=8cm, width = \linewidth]{file.eps}
        \caption{This long caption fits on one line}
    \end{subfigure}

    \bigskip  % create some vertical separation between the subfigures
    \begin{subfigure}{13cm}
        \includegraphics[height=8cm, width = \linewidth]{file.eps}
        \caption{This long caption also fits on one line}
    \end{subfigure}
\end{figure}

\end{document} 

答案3

\captionsetup{width=0.6\linewidth}您可以分别使用命令和来设置图形标题或子标题的宽度\captionsetup[subfigure]{width=0.6\linewidth}。如果您使用序言中提到的命令,则该选项将应用于文档中的所有图形。您还可以在要更改其标题宽度的特定图形中使用它们。有关更多详细信息,请参阅如何调整子标题的宽度设置特定子字幕的子字幕宽度

相关内容