У меня проблемы с межстрочным интервалом внутри 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 использовать более широкую линию между строками Itemhead и Itemplace в строках 2 и 3. Должно быть, это как-то связано с текстом после строки Itemplace. Потому что если я вызываю \iteminfo
после \itemplace
команды, она показывает это странное поведение.
Я использую MacTex 2014 на OSX 10.10.1.
Вот как это выглядит в 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
Причина, по которой вы получаете разные результаты по интервалам, заключается в том, что (а) вы используете \newline
вместо для вставки переносов строк и (б) для элементов типа Itemhead ( ), Itemplace ( ) и Iteminfo ( ) \par
используются разные размеры шрифта .\normalsize
\footnotesize
\scriptsize
Межстрочный интервал, используемый в (логическом) абзаце, зависит от размера шрифта, действующего в данный момент.конецтекущего абзаца. Важно, \newline
вставляет разрыв строки, но это ненетначать новый абзац. Таким образом, в группе Itemhead1/Itemplace1/Iteminfo1 интервал между Itemhead1 и Itemplace1 соответствует \scriptsize
материалу (и, следовательно, довольно плотный), как \scriptsize
и в конце "абзаца". Этот эффект скрыт, поскольку у вас есть \vspace{3pt}
инструкции перед каждым элементом Iteminfo.
Наоборот, в случае Itemhead2/Itemplace2 и Itemhead3/Itemplace 3 окончательный размер шрифта абзаца равен \footnotesize
, и, таким образом, вы получаете (немного) более широкий интервал, чем для первой группы.
Если вам абсолютно, безусловно необходимо получить очень узкий интервал, подходящий для \scriptsize
материала, вы можете получить этот результат, вставив инструкцию \scriptsize
сразу после \itemplace{Itemplace 2}
. Однако, я думаю, вам лучше заменить все \newline
инструкции на \par
и избавиться от \vspace{3pt
инструкций.