
Я уже искал эту проблему, но ни одно решение мне не помогло...
Есть ли простой способ сделать перенос строки в ячейке таблицы?
Мне просто нравится писать Gleitführung
через дефис: Gleit- \newline führung
.
\begin{table}[htb!]
\begin{tabularx}{\textwidth}{|l||X|X|}
\hline
& \textbf{\large Vorteile} & \textbf{\large Nachteile}\\
\hline
\textbf{Gleitführung} & \vspace{-0,6cm}
\begin{itemize}[itemsep=-4pt]
\item blablabla
\vspace{-\baselineskip}
\end{itemize}
&
\vspace{-0,6cm}
\begin{itemize}[itemsep=-4pt]
\item blablabla
\vspace{-\baselineskip}
\end{itemize}
\\
Уже пробовал некоторые решения с \parbox
, \mbox
, ... не сработало.
решение1
В слове "Gleitführung" нет переноса строки, так как вы используете l
тип столбца для первого столбца. Ширина столбца l
— это просто ширина самой широкой ячейки в этом столбце.
Чтобы разрешить автоматический перенос строк вместе с правильной расстановкой переносов в этом столбце, я предлагаю вам (a) переключиться на p
тип столбца с подходящим выбором ширины и (b) включить расстановку переносов, выдав директиву, \RaggedRight
а также \hspace{0pt}
директиву в настройке этого столбца. И, на всякий случай, если вы этого еще не сделали, вам также нужно будет загрузить пакет babel
с подходящей языковой опцией — скорее всего, ngerman
.
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tabularx,enumitem,ragged2e}
\begin{document}
\begin{table}[htb!]
\setlength\extrarowheight{3pt} % for a more "open" look
\begin{tabularx}{\textwidth}{%
|>{\RaggedRight\hspace{0pt}}p{1.5cm}|
|X|X|}
\hline
& \bfseries\large Vorteile & \bfseries\large Nachteile\\
\hline
\textbf{Gleitführung}
&
\begin{itemize}[nosep,leftmargin=*]
\item blablabla
\item blebleble
\end{itemize}
&
\begin{itemize}[nosep,leftmargin=*]
\item bliblibli
\item blobloblo
\end{itemize}\\
\hline
\end{tabularx}
\end{table}
\end{document}
решение2
С l, c, r
типом столбца вы можете использовать команды | \makecell
или \thead
из makecell
пакета, который был разработан для этого, и общее форматирование заголовков столбцов. Я бы также использовал hhline
и немного изменил параметры списка:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tabularx,enumitem,ragged2e, makecell, hhline}
\renewcommand\theadfont{\large\bfseries}
\renewcommand\cellset{\bfseries}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\begin{document}
\begin{table}[htb!]
\setlength\extrarowheight{4pt} % for a more "open" look
\begin{tabularx}{\textwidth}{|l| |X|X|}%
\hhline{|-||--|}
& \thead{Vorteile} & \thead{Nachteile} \\
\hhline{|-||--|}
\makecell[lc]{Gleit-\\führung}
&
\begin{itemize}[topsep=1pt, itemsep=1pt, leftmargin=*, after=\leavevmode\vspace*{-\baselineskip}]
\item blablabla
\item blebleble
\end{itemize}
&
\begin{itemize}[topsep=1pt, itemsep=1pt, leftmargin=*, after=\leavevmode\vspace*{-\baselineskip}]
\item bliblibli
\item blobloblo
\end{itemize}\\
\hhline{|-||--|}
\end{tabularx}
\end{table}
\end{document}
решение3
Вариант хорошего ответа Бернарда, в котором пакет cellspace
используется для большего вертикального пространства в ячейках и itemize
настройках, собран в \setlist{...}
:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cellspace, hhline, makecell, tabularx}
\renewcommand\theadfont{\large\bfseries}
\renewcommand\cellset{\bfseries}
%\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\usepackage{enumitem}
˙%\usepackage{ragged2e}
\begin{document}
\begin{table}[htb!]
\setlist[itemize]{nosep, topsep=1pt, itemsep=1pt, leftmargin=*,
before=\leavevmode\vspace{-\baselineskip}}
after =\leavevmode\vspace{-\baselineskip}}% <-- itemize settings
\setlength\cellspacetoplimit{4pt}% <-- cells' vertical space settings
\setlength\cellspacebottomlimit{4pt}% <-- cells' vertical space settings
\begin{tabularx}{\textwidth}{|Sl| |X|X|}% <-- Sl is column type which consider vertical spaces added by "cellspace" package
\hhline{|-||--|}
& \thead{Vorteile} & \thead{Nachteile} \\
\hhline{|-||--|}
\makecell[lc]{Gleit-\\führung}
&
\begin{itemize}
\item blablabla
\item gagagaga
\end{itemize}
&
\begin{itemize}
\item bliblibli
\item blobloblo
\end{itemize}\\
\hhline{|-||--|}
\end{tabularx}
\end{table}
\end{document}
решение4
Это своего рода хак, но вы можете определить таблицу внутри таблицы:
\begin{table}[htb!]
\begin{tabularx}{\textwidth}{|l||X|X|}
\hline
& \textbf{\large Vorteile} & \textbf{\large Nachteile}\\
\hline
\begin{tabular}{c}\textbf{Gleit}\\\textbf{führung} & \vspace{-0,6cm}
\begin{itemize}[itemsep=-4pt]
\item blablabla
\vspace{-\baselineskip}
\end{itemize}
&
\vspace{-0,6cm}
\begin{itemize}[itemsep=-4pt]
\item blablabla
\vspace{-\baselineskip}
\end{itemize}
\\