我有各种尺寸的纵向和横向图形。我试图找到一种余地,根据图形的水平尺寸为其添加标题。在我的 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}
其产生的结果与上面相同。