테이블 셀 내의 줄 바꿈 줄 간격 문제

테이블 셀 내의 줄 바꿈 줄 간격 문제

줄바꿈을 강제할 때 환경 내부의 줄 간격에 문제가 있습니다 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 사이의 간격이 너무 넓어 단일 줄 바꿈이 가능하지 않습니다. 단일 간격이어야 합니다.

지금은 라텍스가 2행과 3행의 Itemhead와 Itemplace 줄 사이에 더 넓은 줄을 사용하도록 강제하는 이유가 무엇인지 모르겠습니다. 이는 Itemplace 줄 다음의 텍스트와 관련이 있는 것 같습니다. 명령 \iteminfo후에 호출하면 \itemplace이상한 동작이 표시되기 때문입니다.

OSX 10.10.1에서 MacTex 2014를 사용하고 있습니다.

OSX 10.10.1 Preview-App의 모습은 다음과 같습니다. OSX 10.10.1 Preview-App의 모습은 다음과 같습니다.

답변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

관련 정보