表セル内の改行の行間隔の問題

表セル内の改行の行間隔の問題

longtable強制的に改行するときに、環境内の行間隔に問題があります。次のコードで問題が説明されるはずです。

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

こちらでも入手可能https://www.overleaf.com/2029617ptbycv#/5121602/

これで問題が十分に説明できたと思います。

間隔を見てみるとアイテムヘッド 1そしてアイテムプレイス 1これが私が望む行間隔です。

Itemhead 2 と Itemplace 2 の間、および Itemhead 3 と Itemplace 3 の間のスペースは、単一の改行には広すぎると思います。シングルスペースにする必要があります。

現時点では、LaTeX が 2 行目と 3 行目の Itemhead 行と Itemplace 行の間に広い行間隔を使用するように強制する理由がわかりません。これは、Itemplace 行に続くテキストと関係があるに違いありません。コマンド\iteminfoの後にを呼び出すと\itemplace、奇妙な動作が表示されるからです。

私はOSX 10.10.1でMacTex 2014を使用しています。

OSX 10.10.1プレビューアプリではこんな感じです OSX 10.10.1プレビューアプリではこんな感じです

答え1

段落末尾を必ず含める必要があります(ない \newline) を使用してください。段落の最後には、段落全体のベースライン間隔が設定されるため、一貫性のない設定になります。

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

答え2

異なる間隔の結果になる理由は、(a)改行を挿入する\newlineために ではなくを使用しており、(b) Itemhead ( )、Itemplace ( )、および Iteminfo ( ) の種類の項目に異なるフォント サイズが使用されているためです。\par\normalsize\footnotesize\scriptsize

(論理的な)段落で使用される行間スペースは、その段落で有効なフォントサイズに依存します。終わり現在の段落の行を挿入します。重要なのは、\newline改行を挿入するが、ない新しい段落を開始します。したがって、Itemhead1/Itemplace1/Iteminfo1 グループでは、Itemhead1 と Itemplace1 の間の間隔は、 "段落" の終わりに有効な\scriptsize内容に適切なもの (したがって、非常に狭い)です。各 Iteminfo 要素の前に指示が\scriptsizeあるため、この効果は不明瞭です。\vspace{3pt}

逆に、Itemhead2/Itemplace2 および Itemhead3/Itemplace 3 の場合、段落の最終的なフォント サイズは となり\footnotesize、最初のグループよりも (わずかに) 広い間隔が得られます。

素材に適した非常に狭い間隔を絶対に取得する必要がある場合は、の直後に\scriptsize命令を挿入することでこの結果を得ることができます。ただし、すべての命令を に置き換えて、 命令を削除したほうがよいと思います。\scriptsize\itemplace{Itemplace 2}\newline\par\vspace{3pt

関連情報