Por que `ftcap` e `caption` produzem espaçamentos verticais diferentes?

Por que `ftcap` e `caption` produzem espaçamentos verticais diferentes?

Costumo carregar o captionpacote para corrigir o espaçamento entre as tabelas e suas legendas na articleclasse. Como não uso nenhum outro recurso do captionpacote, decidi tentar usar o pacote dedicado ftcappara corrigi-lo. No entanto, quando tento cada pacote, obtenho quantidades ligeiramente diferentes de espaço vertical na página. Com o MWE a seguir, quando uso ftcap, todo o texto se move um pouco mais para cima na página em comparação com a saída quando uso caption. Pelo que sei, o espaço entre a tabela e a legenda é idêntico entre as duas (presumivelmente 10,0pt).

MWE:

\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}

O código a seguir pode ser usado para ver a diferença com mais clareza:

\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}

Tentei analisar a documentação e implementação de ambos os pacotes. captioné um pouco mais complexo, então não consegui entender muito bem.

Responder1

A implementação de captione ftcapsão diferentes.

Pelo que posso ver, a diferença é causada pela captionadição de um strut na legenda, o que não é feito por ftcapisso não modifica o \captioncomando.

Vamos fazer três exemplos. A régua fina superior é adicionada pela showframeopção de geometria, mostrando a borda superior do bloco de texto.

ftcapcom nenhum\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}

insira a descrição da imagem aqui

ftcapcom\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}

insira a descrição da imagem aqui

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}

insira a descrição da imagem aqui

Há também uma pequena diferença no espaçamento entre a legenda e o texto.

Conclusão

Use qualquer um dos pacotes, você não pode esperar que implementações diferentes (em particular uma complexa como captiona de) produzam a mesma saída.

informação relacionada