我想删除第二个子标题前面的多余边距(黄色部分)。我该怎么做?
我当前的代码如下。
\documentclass[a4paper,11pt]{report}
\usepackage{import}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{caption}
\newcommand\mycaption[2]{\caption{\textbf{#1}\newline\footnotesize#2}}
\captionsetup{font=small, labelfont=bf, singlelinecheck=false, tableposition=bottom, justification=justified}
\begin{document}
% test
\begin{figure}[h]
\captionsetup[subfloat]{farskip=1pt, captionskip=0pt} %<--I thought it does the job...
\centering
\captionsetup{width=0.7\linewidth}
\subfloat[First figure]
{%
\label{fig1}%
\includegraphics[clip,width=0.85\columnwidth]{myfig1.png} }
\vfill
\subfloat[Second figure]
{%
\label{fig2}%
\includegraphics[clip,width=0.85\columnwidth]{myfig2.png} }
\mycaption{Test}{Explanation blah blah...}
\label{figExamples}
\end{figure}
\end{document}
笔记
这可能是图形特定的问题,因此我在这里附加两张图片以供您参考。
答案1
第二幅图下方有一些空白。
使用trim={<left> <lower> <right> <upper>}
\documentclass[a4paper,11pt]{report}
\usepackage{import}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{caption}
\newcommand\mycaption[2]{\caption{\textbf{#1}\newline\footnotesize#2}}
\captionsetup{font=small, labelfont=bf, singlelinecheck=false, tableposition=bottom, justification=justified}
\begin{document}
% test
\begin{figure}[h]
\captionsetup[subfloat]{farskip=1pt, captionskip=0pt} %<--I thought it does the job...
\centering
\captionsetup{width=0.7\linewidth}
\subfloat[First figure]
{%
\label{fig1}%
\includegraphics[clip,width=0.85\columnwidth]{myfig1.png} }
\vfill
\subfloat[Second figure]
{%
\label{fig2}%
\includegraphics[trim={ 0pt 25pt 0pt 0pt}, clip,width=0.85\columnwidth]{myfig2.png} }% changed <<<<<<
\mycaption{Test}{Explanation blah blah...}
\label{figExamples}
\end{figure}
\end{document}
答案2
我无法重现您的问题。可能是第二张图片在图片下方包含一些空白。您可以通过fbox
在图片周围添加来检查这一点,例如:
\subfloat[Second figure \label{fig2}]
{\fbox{\includegraphics[width=0.8\linewidth]{example-image-duck}} }
\caption[Test]{ Test\\
\footnotesize
Explanation \lipsum*[66]}
您可以使用 samo 图像处理工具或使用包trim
选项删除白色空间graphicx
。
无关:
不太清楚你为什么定义\mycaption
。如果你想区分图片列表 (LoF) 中的文本和图片中的标题文本,你应该使用
\caption[<text in LoF>]{Text at figure}
例如:
\documentclass[a4paper,11pt]{report}
\usepackage{graphicx}
\usepackage{caption, subcaption}
\captionsetup{font=small,
labelfont=bf,
justification=justified,
singlelinecheck=false,
}
% changed page share for floats and text
\renewcommand{\topfraction}{.95}
\renewcommand{\bottomfraction}{.85}
\renewcommand{\textfraction}{.05}
\usepackage{lipsum}
\begin{document}
\begin{figure}[ht]
\centering
\subfloat[First figure \label{fig1}]
{\includegraphics[width=0.8\linewidth]{example-image-duck} }
\bigskip
\subfloat[Second figure \label{fig2}]
{\includegraphics[width=0.8\linewidth]{example-image-duck} }
\caption[Test]{ Test.\\
\footnotesize
Explanation \lipsum*[66]}
\label{figExamples}
\end{figure}
\lipsum[1]
\end{document}