子浮动标题宽度要求和对齐问题

子浮动标题宽度要求和对齐问题

我遇到了水平和垂直子浮点上的子标题宽度要求冲突的问题。我花了大量时间在这里和更广泛的地方搜索,仔细阅读了subfig软件包文档等,我发现问题出在宽度上。

对于水平排列的子浮动,子标题需要 3 英寸宽;对于垂直排列的子浮动,子标题需要 5 英寸宽。如果我指定 3 英寸的子标题宽度,5 英寸图像的子标题看起来很糟糕。如果我指定任何超过 3 英寸子标题宽度的值,3 英寸图像的子标题会向右偏移并超出页面。当我根本没有指定标题宽度时,子浮动的子标题会变得非常窄和奇怪。

我不知道该如何解决这个问题;两个子浮点排列都需要包含在同一个文档中。我意识到自定义环境可能有用,但不知道该如何为此目的构建一些东西。

这是 MWE 的示例(就我的能力而言,这是第一次尝试......)

\documentclass[11pt]{article}
\usepackage{tabulary}
\usepackage{ctable}
\usepackage{epsfig}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{multirow}
\usepackage{amssymb}
\usepackage{subfig}

\captionsetup[subfloat]{
nearskip=20pt,
width=3in
}

\captionsetup{
format=hang,
width=5.5in,
}

\begin{document}

\title{Title}
\author{Me}
\date{\today}
\maketitle

Vertically arranged images:

\begin{figure}[htbp]
\begin{center}
\subfloat[Calibration image on the front of the view guide.]{\label{fig:vizcardfront}}\includegraphics[width=5in]{figures/viewcardfront.jpg}
\subfloat[Data submission form on the back of the view guide.]{\label{fig:vizcardback}}\includegraphics[width=5in]{figures/viewcardback.jpg}
\caption{The visibility monitoring view guide.}
\label{fig:viewcard}
\end{center}
\end{figure}

Horizontally arranged images:

\begin{figure}[htpb]
\begin{center}
\subfloat[A plantcam at a monitoring plot.]{\label{fig:plantcam}}{\includegraphics[width=3in]{figures/plantcam.jpg}}
\hfill
\subfloat[A HOBO$\textsuperscript{\textregistered}$ data logger for air and soil data.]{\label{fig:logger}}{\includegraphics[width=3in]{figures/logger.jpg}}
\caption{Automatic data collection instruments.}
\label{fig:autodata}
\end{center}
\end{figure}

\end{document}

任何帮助都将非常感谢!

答案1

以下是一些解决您当前情况的建议:

  • 请注意subfloat符号:

    \subfloat[<LoF>][<subcaption>]{<body>}
    

    由于您的<body>文本仅包含一个\label命令,因此<subcaption>(实际上是<LoF>条目)必须围绕“非常细”的东西,从而导致其排版不正确。请参阅subfig文档对此进行解释。

  • 此外,\label还应包括在内<body>

  • 如果将整个内容放在\subfloat固定宽度的环境中,则标题将根据该宽度换行。minipage例如,这可以通过环境来实现。在下面的最小示例中,我定义了两个新命令:

    \vertfig[<subcaption>]{<body>}% For vertical figure placement
    \horizfig[<subcaption>]{<body>}% For horizontal figure placement
    

    您可以用它来替换传统的\subfloat。以-width\vertfig形式排版其内容,而 则以-width形式排版其内容。 两者都删除了第二个可选参数,因为它对您来说似乎无关紧要。5inminipage\horizfig3inminipage\subfloat[..][..]{...}

    正如您所见,不需要固定宽度\captionsetup,因为字幕会换行到包含它们的框中。

不同宽度的不同子浮动

\documentclass[11pt]{article}
\usepackage[a3paper]{geometry}% http://ctan.org/pkg/geometry
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
%\usepackage{caption}% http://ctan.org/pkg/caption
\usepackage{subfig}% http://ctan.org/pkg/subfig
\newsubfloat{figure}
\pagestyle{empty}% No header/footer
\newcommand{\vertfig}[2][]{%
  \begin{minipage}{5in}\subfloat[#1]{#2}\end{minipage}}
\newcommand{\horizfig}[2][]{%
  \begin{minipage}{3in}\subfloat[#1]{#2}\end{minipage}}
\begin{document}

\begin{figure}[ht]
  \centering
  \vertfig% \subfloat
    [This is probably the biggest tiger you will ever see in your life.
     The caption associated with this subfloat should span more than one
     line even though the width of the contents is 5in.]
    {\includegraphics[width=5in]{tiger}\label{fig:vizcardfront}}

  \vertfig% \subfloat
    [Data submission form on the back of the view guide.]
    {\includegraphics[width=5in]{tiger}\label{fig:vizcardback}}
  \caption{The visibility monitoring view guide.}\label{fig:viewcard}
\end{figure}

\begin{figure}[ht]
  \centering
  \horizfig%\subfloat
    [Here is another picture of the tiger, this time a little smaller.
     It is still very fierce-looking, right?]
    {\includegraphics[width=3in]{tiger}\label{fig:plantcam}}
  \hfill
  \horizfig%\subfloat
    [A HOBO$\textsuperscript{\textregistered}$ data logger for air and soil data.]
    {\includegraphics[width=3in]{tiger}\label{fig:logger}}
  \caption{Automatic data collection instruments.}\label{fig:autodata}
\end{figure}

\end{document}

geometry仅用于设置纸张尺寸a3paper

相关内容