对齐图形标题行

对齐图形标题行

我有一张带 LaTeX 标题的图像:

\begin{figure}[H]
\centering
   \includegraphics[width=0.8\textwidth,height=0.8\textheight,keepaspectratio]{img/image9}
   \caption{Text text text text text text\\*
   On the basis of: \cite{Smi00}}
\label{fig:fig}
\end{figure}

它看起来像这样:

|                                                           |
|___________________________________________________________|
          Figure 3.3 Text text text text text text
                   On the basis of: [4]

...

我想对齐两行标题,但保持整个标题居中,即将其更改为如下形式:

|                                                           |
|___________________________________________________________|
          Figure 3.3 Text text text text text text
          On the basis of: [4]

...

不是:

|                                                           |
|___________________________________________________________|
Figure  3.3    Text    text    text     text    text     text
On the basis of: [4]

...

或者:

|                                                           |
|___________________________________________________________|
          Figure 3.3 Text text text text text text
On the basis of: [4]

...

...但我的所有尝试都失败了。

有人知道怎么做吗?

答案1

包裹varwidth提供的环境varwidthminipage,但如果行较短,宽度会减小。可以使用环境varwidth通过包定义的自己的标题格式格式化标题文本caption

\documentclass{article}

\usepackage{caption}
\usepackage{varwidth}
\DeclareCaptionFormat{varwidth}{%
  \begin{varwidth}{\linewidth}#1#2#3\end{varwidth}%
}
\captionsetup{format=varwidth}

\begin{document}
\begin{figure}
  \centering
  \rule{.8\linewidth}{1ex}% simulating \includegraphics
  \caption{Text text text text text text\\*
    On the basis of [1]}
 \label{fig:fig}
\end{figure}
\end{document}

结果

评论:

  • 对于图形列表中的标题条目,您可以使用可选参数\caption来提供没有明确换行符的(更短)版本。

答案2

以下是实现此目的的一种方法:

\documentclass{article}

\makeatletter
\def\figwidth{15pc}% Adjust the caption width here
\long\def\@makecaption#1#2{%
 \vskip\abovecaptionskip
 \sbox\@tempboxa{#1: #2}%
 \ifdim \wd\@tempboxa >\figwidth
   \mbox{}\hfill\parbox{\figwidth}{%
   #1: #2\par}\hfill\mbox{}%
 \else
   \global \@minipagefalse
   \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
 \fi
 \vskip\belowcaptionskip}

\begin{document}

\begin{figure}[H]
\centering
  \fbox{\hbox to 20pc{\vbox to 5pc{\mbox{}}}}
  \caption{Text text text text text text
  On the basis of: }
\label{fig:fig}
\end{figure}

\end{document}

请通过调整宏来根据需要设置标题的宽度\figwidth

相关内容