我有一张带 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
提供的环境varwidth
是minipage
,但如果行较短,宽度会减小。可以使用环境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
。