如何根据图形的水平尺寸为其添加标题?

如何根据图形的水平尺寸为其添加标题?

我有各种尺寸的纵向和横向图形。我试图找到一种余地,根据图形的水平尺寸为其添加标题。在我的 thesis.cls 文件中,我已经将通用形式设置为\usepackage[centerlast,small,sc,bf]{caption}\setlength{\captionmargin}{20pt}。有没有聪明的方法可以做到这一点?

答案1

是的。使用floatrow包及其\ffigbox命令。(该包与该包配合良好caption。)

\documentclass{article}

\usepackage[centerlast,small,sc,bf]{caption}
\setlength{\captionmargin}{20pt}

\usepackage{floatrow}

\begin{document}

\begin{figure}
\ffigbox[\FBwidth]{%
  \rule{8cm}{4cm}%
}{%
  \caption{Hello, here is some text without a meaning.}%
}%
\end{figure}

\begin{figure}
\ffigbox[\FBwidth]{%
  \rule{4cm}{8cm}%
}{%
  \caption{Hello, here is some text without a meaning.}%
}%
\end{figure}

\end{document}

在此处输入图片描述

答案2

或者,可以使用 savebox 来避免使用 floatrow,例如

\documentclass{article}

\usepackage[centerlast,small,sc,bf]{caption}
\setlength{\captionmargin}{20pt}

\newsavebox\mybox
\newlength\myboxlen

\newcommand{\figcap}[2]{%
\sbox\mybox{#1}
\settowidth{\myboxlen}{\usebox{\mybox}}
\centering
\usebox\mybox
\hskip \textwidth
\parbox{\myboxlen}{#2}
}

\begin{document}

\begin{figure}
\figcap{%
  \rule{8cm}{4cm}%
}{%
  \caption{Hello, here is some text without a meaning.}%
  \label{fig:label1}%
}
\end{figure}

\begin{figure}
\figcap{%
  \rule{4cm}{8cm}%
}{%
  \caption{Hello, here is some text without a meaning.}%
  \label{fig:label2}%
}
\end{figure}

\end{document}

其产生的结果与上面相同。

相关内容