為什麼“ftcap”和“caption”產生不同的垂直間距?

為什麼“ftcap”和“caption”產生不同的垂直間距?

我通常會加載該caption包來修復類中表格及其標題之間的間距article。由於我不使用該caption包的任何其他功能,因此我決定嘗試使用專用包ftcap來修復它。然而,當我嘗試每個包時,我在頁面上得到的垂直空間量略有不同。對於以下 MWE,當我使用 時ftcap,與我使用 時的輸出相比,所有文字在頁面上都稍微向上移動caption。據我所知,表格和標題之間的間距在兩者之間是相同的(大概是 10.0pt)。

微量元素:

\documentclass{article}

\usepackage{caption}  % a bit less than 1mm lower
%\usepackage{ftcap}  % a bit less than 1mm higher

\begin{document}
    
This is a paragraph.

\begin{table}
    \caption{This is a caption.}
    \begin{tabular}{c}
        This is a table.
    \end{tabular}
\end{table}

\end{document}

使用下面的程式碼可以更清楚地看到差異:

\documentclass{article}

\usepackage{fgruler}
\textwidth=\paperwidth
\oddsidemargin=-1in
\parindent=0pt

\usepackage{caption}  % a bit less than 1mm lower
%\usepackage{ftcap}  % a bit less than 1mm higher

\begin{document}
    
\rule{2cm}{0.1pt}
This is a paragraph.

\begin{table}
    \caption{This is a caption.}
    \begin{tabular}{c}
        \rule{2cm}{0.1pt}
        This is a table.
    \end{tabular}
\end{table}

\end{document}

我嘗試過查看這兩個包的文檔和實作。caption相當複雜,所以我無法充分理解它。

答案1

caption和的實現ftcap是不同的。

據我所知,差異是由於caption在標題中添加了支柱引起的,這不是透過ftcap不修改\caption命令來完成的。

我們舉三個例子。頂部細線由showframe幾何選項添加,顯示文字區塊的頂部邊緣。

ftcap沒有\strut

\documentclass{article}
\usepackage[pass,showframe]{geometry}

\usepackage{ftcap}  % a bit less than 1mm higher

\begin{document}

\begin{table}[htp]
\centering
    \caption{This is a caption.}
Something
\end{table}

\end{document}

在此輸入影像描述

ftcap\strut

\documentclass{article}
\usepackage[pass,showframe]{geometry}

\usepackage{ftcap}  % a bit less than 1mm higher

\begin{document}

\begin{table}[htp]
\centering
    \caption{\strut This is a caption.}
Something
\end{table}

\end{document}

在此輸入影像描述

caption

\documentclass{article}
\usepackage[pass,showframe]{geometry}

\usepackage{caption}  % a bit less than 1mm lower

\begin{document}

\begin{table}[htp]
\centering
    \caption{This is a caption.}
Something
\end{table}

\end{document}

在此輸入影像描述

標題和文字之間的間距也有微小的差異。

結論

使用任一包,您都不能希望不同的實現(特別是複雜的實現,例如caption's)產生相同的輸出。

相關內容