Problemas de espaçamento entre linhas em uma célula da tabela

Problemas de espaçamento entre linhas em uma célula da tabela

Tenho problemas com o espaço de linha dentro de um longtableambiente ao forçar uma quebra de linha. O código a seguir deve ilustrar o problema.

\documentclass[11pt,paper=a4,11pt,parskip=half,draft]{scrartcl}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{longtable}
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{xcolor}

\usepackage{blindtext}

\definecolor{darkblue}{HTML}{212650}
\definecolor{grey}{HTML}{666666}

\newcommand{\itemdate}[1]{{\sffamily #1}}
\newcommand{\itemhead}[1]{{\sffamily\textcolor{darkblue}{\bfseries #1}}}
\newcommand{\itemplace}[1]{{\sffamily\itshape\footnotesize #1}}
% don't know why this cannot be local scope only ???!!!!
\newcommand{\iteminfo}[1]{\scriptsize #1}

% http://tex.stackexchange.com/a/7348/46403
% ragged2e packages provides text hyphenation in columns
\newcolumntype{L}[1]{>{\raggedright\hspace{0pt}\arraybackslash}p{#1}}   % left with dimension
\newcolumntype{J}[1]{>{\justifying\hspace{0pt}\arraybackslash}p{#1}}    % justify with dimension

\newcommand{\colwidth}[1]{%
    \dimexpr #1\textwidth-2\tabcolsep%
}%

\begin{document}

\begin{longtable}[!htbp]{|@{}L{\colwidth{0.2}}|L{\colwidth{0.8}}@{}|}

    \hline
    \itemdate{Itemdate 1} &
    \itemhead{Itemhead 1} \newline
    \itemplace{Itemplace 1} \vspace{3pt}\newline
    \iteminfo{\textbf{Iteminfo 1.1}: \blindtext[1]}
    \vspace{3pt}\newline%
    \iteminfo{\textbf{Iteminfo 1.2}: \blindtext[1]} \\

    \hline
    \itemdate{Itemdate 2} &
    \itemhead{Itemhead 2} \newline
    \itemplace{Itemplace 2} \\

    \hline
    \itemdate{Itemdate 3} &
    \itemhead{Itemhead 3} \newline
    \itemplace{Itemplace 3} \\
\end{longtable}

\end{document}

Também disponível emhttps://www.overleaf.com/2029617ptbycv#/5121602/

Espero que isso demonstre o problema bem o suficiente.

Se você observar o espaçamento entreCabeçalho do item 1eItemplace 1, este é o espaçamento entre linhas que eu gostaria de ter.

O espaçamento entre Itemhead 2 e Itemplace 2, bem como Itemhead 3 e Itemplace 3 é, na minha opinião, muito grande para uma única nova linha. Deve ser com espaçamento simples.

No momento, não tenho ideia do que força o látex a usar uma linha mais ampla entre as linhas Itemhead e Itemplace nas linhas 2 e 3. Deve ter algo a ver com o texto após a linha Itemplace. Porque se eu ligar \iteminfoapós o \itemplacecomando, isso mostra aquele comportamento estranho.

Estou usando o MacTex 2014 no OSX 10.10.1.

É assim que fica no aplicativo de visualização OSX 10.10.1 É assim que fica no aplicativo de visualização OSX 10.10.1

Responder1

Você deve sempre incluir o final do parágrafo (não \newline) se você tiver alterações de tamanho. Um parágrafo inteiro é definido com o espaçamento da linha de base em vigor no final do parágrafo, portanto, você estava obtendo configurações inconsistentes.

\documentclass[11pt,paper=a4,11pt,parskip=half,draft]{scrartcl}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{longtable}
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{xcolor}

\usepackage{blindtext}

\definecolor{darkblue}{HTML}{212650}
\definecolor{grey}{HTML}{666666}

\newcommand{\itemdate}[1]{{\sffamily #1}}
\newcommand{\itemhead}[1]{{\sffamily\textcolor{darkblue}{\bfseries #1}}\par}
\newcommand{\itemplace}[1]{{\sffamily\itshape\footnotesize #1\par}}
% don't know why this cannot be local scope only ???!!!!
\newcommand{\iteminfo}[1]{{\scriptsize #1\par}}

% http://tex.stackexchange.com/a/7348/46403
% ragged2e packages provides text hyphenation in columns
\newcolumntype{L}[1]{>{\raggedright\hspace{0pt}\arraybackslash}p{#1}}   % left with dimension
\newcolumntype{J}[1]{>{\justifying\hspace{0pt}\arraybackslash}p{#1}}    % justify with dimension

\newcommand{\colwidth}[1]{%
    \dimexpr #1\textwidth-2\tabcolsep%
}%

\begin{document}

\begin{longtable}[!htbp]{|@{}L{\colwidth{0.2}}|L{\colwidth{0.8}}@{}|}

    \hline
    \itemdate{Itemdate 1} &
    \itemhead{Itemhead 1}
    \itemplace{Itemplace 1}
    \iteminfo{\textbf{Iteminfo 1.1}: \blindtext[1]}
    \iteminfo{\textbf{Iteminfo 1.2}: \blindtext[1]} \\

    \hline
    \itemdate{Itemdate 2} &
    \itemhead{Itemhead 2}
    \itemplace{Itemplace 2} \\

    \hline
    \itemdate{Itemdate 3} &
    \itemhead{Itemhead 3}
    \itemplace{Itemplace 3} \\
\end{longtable}

\end{document}

Responder2

A razão pela qual você está obtendo resultados de espaçamento diferentes é porque (a) você está usando \newlineem vez de \parpara inserir quebras de linha e (b) tamanhos de fonte diferentes são usados ​​para itens do tipo Itemhead ( \normalsize), Itemplace ( \footnotesize) e Iteminfo ( \scriptsize).

O espaço entre linhas usado em um parágrafo (lógico) depende do tamanho da fonte em vigor nofimdo parágrafo atual. É importante ressaltar que \newlineinsere uma quebra de linha, mas isso acontecenãoiniciar um novo parágrafo. Assim, no grupo Itemhead1/Itemplace1/Iteminfo1, o espaçamento entre Itemhead1 e Itemplace1 é o apropriado para \scriptsizeo material (e, portanto, bastante apertado), como \scriptsizeestá em vigor no final do "parágrafo". Este efeito é obscurecido porque você tem \vspace{3pt}instruções antes de cada elemento Iteminfo.

Por outro lado, no caso de Itemhead2/Itemplace2 e Itemhead3/Itemplace 3, o tamanho final da fonte do parágrafo é \footnotesize, e você obtém um espaçamento (ligeiramente) maior do que o do primeiro grupo.

Se você absolutamente precisa obter o espaçamento muito apertado apropriado para o \scriptsizematerial, poderá obter esse resultado inserindo a instrução \scriptsizeimediatamente após \itemplace{Itemplace 2}. No entanto, acho melhor substituir todas \newlineas instruções \pare se livrar delas \vspace{3pt.

informação relacionada