
Это своего рода продолжение постаПроблемы с межстрочным интервалом в ячейке таблицы.
Я хочу иметь разные стили шрифта в одной ячейке таблицы. Пока что я узнал, что локальное изменение размера {\small this is a small style\par}
всегда должно завершаться на \par
, чтобы межстрочный интервал ( \baselineskip
) был хорошо скорректирован. Пока все хорошо. Это работает, как и ожидалось, каждый \par
делает перенос строки и корректирует межстрочный интервал. Проблема в том, что последний \par
в ячейке таблицы добавляет новую строку к тексту, что в данном случае нежелательно.
Мой вопрос заключается в том, существует ли другая команда latex, которая имеет тот же эффект, что и \par
для межстрочного интервала, но не добавляет новую строку? Или какой-то другой обходной путь был бы весьма признателен!
Вот небольшой пример (он во многом основан на коде из моего предыдущего поста):
\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{ifthen}
\usepackage{blindtext}
\definecolor{darkblue}{HTML}{212650}
% https://tex.stackexchange.com/a/218826/46403
\newcommand{\cvitemdate}[1]{\sffamily #1}
\newcommand{\cvitemhead}[1]{\sffamily\textcolor{darkblue}{\bfseries #1}}
\newcommand{\cvitemplace}[1]{\sffamily\itshape\footnotesize #1}
\newcommand{\cviteminfo}[1]{\scriptsize #1}
% formating info text
\newcommand{\cvitem}[5]{%
% 1st column
{\cvitemdate{#1}} &%
% 2nd column - first textline
{\cvitemhead{#2}\par}%
% 2nd column - second textline
\ifthenelse{\equal{#3}{}}{}{%
{\cvitemplace{#3}\par}%
}%
\ifthenelse{\equal{#5}{}}{\vspace{6pt}}{\vspace{3pt}}%
% 2nd column - third textline
\ifthenelse{\equal{#4}{}}{}{%
{\cviteminfo{#4}\par}%
}%
\ifthenelse{\equal{#5}{}}{}{\vspace{3pt}}%
% 2nd column - fourth textline
\ifdefined\isfull%
\ifthenelse{\equal{#5}{}}{}{%
{\cviteminfo{#5}\par}%
}%
\else\fi%
%\vspace*{-\baselineskip}
\tabularnewline%
}
% https://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
\newcommand{\colwidth}[1]{%
\dimexpr #1\textwidth-2\tabcolsep%
}%
\begin{document}
\begin{longtable}[!htbp]{|@{}L{\colwidth{0.2}}|L{\colwidth{0.8}}@{}|}
\hline
\cvitem{Itemdate 1}
{Itemhead 1}
{Itemplace 1}
{\textbf{Iteminfo 1.1}: \blindtext[1]}
{\textbf{Iteminfo 1.2}: \blindtext[1]}
\hline
\cvitem{Itemdate 2}
{Itemhead 2}
{Itemplace 2}
{}
{}
\hline
\cvitem{Itemdate 3}
{Itemhead 3}
{}
{}
{}
\hline
\end{longtable}
\end{document}
Онлайн доступно по адресуhttps://www.overleaf.com/2032147yzdvhq#/5128620/
решение1
Хотите что-то подобное?
Я заменил ваше определение на \cvitem
это:
\newcommand{\cvitem}[5]{%
{\cvitemdate{#1}} &%
{\cvitemhead{#2}\par}
\ifthenelse{\equal{#3}{}}%
{\vspace*{-\baselineskip}}%
{{\cvitemplace{#3}\par}
\ifthenelse{\equal{#4}{}}%
{\vspace*{-\baselineskip}}%
{{\vspace{6pt}\cviteminfo{#4}\par}
\ifthenelse{\equal{#5}{}}%
{}%
{\ifdefined\isfull\vspace{3pt}{\cviteminfo{#5}\par}\fi%
}%
\vspace*{-\baselineskip}%
}%
}%
\vspace*{-\baselineskip}%
\tabularnewline%
}
Полная МВЭ:
\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{ifthen}
\usepackage{blindtext}
\definecolor{darkblue}{HTML}{212650}
\newcommand\isfull
% http://tex.stackexchange.com/a/218826/46403
\newcommand{\cvitemdate}[1]{\sffamily #1}
\newcommand{\cvitemhead}[1]{\sffamily\textcolor{darkblue}{\bfseries #1}}
\newcommand{\cvitemplace}[1]{\sffamily\itshape\footnotesize #1}
\newcommand{\cviteminfo}[1]{\scriptsize #1}
% formatting info text
\newcommand{\cvitem}[5]{%
{\cvitemdate{#1}} &%
{\cvitemhead{#2}\par}
\ifthenelse{\equal{#3}{}}%
{\vspace*{-\baselineskip}}%
{{\cvitemplace{#3}\par}
\ifthenelse{\equal{#4}{}}%
{\vspace*{-\baselineskip}}%
{{\vspace{6pt}\cviteminfo{#4}\par}
\ifthenelse{\equal{#5}{}}%
{}%
{\ifdefined\isfull\vspace{3pt}{\cviteminfo{#5}\par}\fi%
}%
\vspace*{-\baselineskip}%
}%
}%
\vspace*{-\baselineskip}%
\tabularnewline%
}
% 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
\newcommand{\colwidth}[1]{%
\dimexpr #1\textwidth-2\tabcolsep%
}%
\begin{document}
\begin{longtable}[!htbp]{|@{}L{\colwidth{0.2}}|L{\colwidth{0.8}}@{}|}
\hline
\cvitem{Itemdate 1}
{Itemhead 1}
{Itemplace 1}
{\textbf{Iteminfo 1.1}: \blindtext[1]}
{\textbf{Iteminfo 1.2}: \blindtext[1]}
\hline
\cvitem{Itemdate 2}
{Itemhead 2}
{Itemplace 2}
{\textbf{Iteminfo 2.1}: \blindtext[1]}
{}
\hline
\cvitem{Itemdate 3}
{Itemhead 3}
{Itemplace 3}
{}
{}
\hline
\cvitem{Itemdate 4}
{Itemhead 4}
{}
{}
{}
\hline
\end{longtable}
\end{document}
РЕДАКТИРОВАТЬ
Если какой-либо аргумент между 3-м, 4-м и 5-м может быть пустым, замените приведенный выше код на:
\newcommand{\cvitem}[5]{%
{\cvitemdate{#1}} &%
{\cvitemhead{#2}\par}
\ifthenelse{\equal{#3}{}}
{}
{{\cvitemplace{#3}\par}}%
\ifthenelse{\equal{#4}{}}
{}
{{\vspace{6pt}\cviteminfo{#4}\par}}%
\ifthenelse{\equal{#5}{}}%
{}%
{\ifdefined\isfull\vspace{3pt}{\cviteminfo{#5}\par}\fi}%
\vspace*{-\baselineskip}%
\vspace*{-\baselineskip}%
\tabularnewline%
}