
Я написал две таблицы, которые сталкиваются с похожей проблемой. Они заканчиваются беспорядком из недо- и переполненных ящиков. Я заметил много тем с недо- и переполненными ящиками здесь, но я пока не смог это исправить.
Первая таблица касается только не полностью заполненных полей. Я пытался избавиться от этого с помощью переносов, но мне это не удалось:
\begin{tabularx}{\textwidth}{X|X|X|X}
Aus welchen Gründen... ?[Aufgrund der ges. Nachweispflicht (wie Brandschutz, Arbeitsschutz, etc.)] & Aus welchen Gründen... ? [Einweisung zur Nutzung medizinischer Geräte] & Aus welchen Gründen... ?[Zur generellen zeit- und ortsungebundenen Weiterbildung von Mitarbeitern] & Aus welchen Gründen wurde eLearning in Ihrem Klinikum implementiert [Sonstiges]\\ \hline
Ja & Nein & Nein & Ja\\
N/A & N/A & N/A & N/A\\
Ja & Ja & Nein & Nein\\
Nein & Ja & Nein & Nein\\
N/A & N/A & N/A & N/A\\
\end{tabularx}
Во второй таблице рассматриваются как недозаполненные, так и переполненные ячейки, а переполненные ячейки показаны маленькими черными квадратами.
\begin{tabularx}{\textwidth}{XX|XXX|XXX}
\multicolumn{2}{X}{Alternativen} & \multicolumn{3}{|X}{$A_1$} & \multicolumn{3}{|X}{$A_2$}\\
\toprule
Kriterium & Gewicht & Zielertrag & Zielerfül\-lungsgrad & Teil\-nutzwert & Zielertrag & Zielerfül\-lungsgrad & Teil\-nutzwert \\
\midrule
$K_1$ & $g_1$ & $k_1$ & $e_{11}$ & $N_{11}=g_1 e_{11}$ & $k_{12}$ & $e_{12}$ & $N_{12}=g_1 e_{12}$ \\
$K_2$ & $g_2$ & $k_{21}$ & $e_{21}$ & $N_{21}=g_2 e_{21}$ & $k_{22}$ & $e_{22}$ & $N_{22}=g_2 e_{22}$ \\
$K_3$ & $g_3$ & $k_{31}$ & $e_{31}$ & $N_{31}=g_3 e_{31}$ & $k_{32}$ & $e_{32}$ & $N_{32}=g_2 e_{32}$ \\
\bottomrule
Summe der Gewichts\-faktoren & $g_1+g_2+g_3$ & \multicolumn{2}{X}{Nutzwert von $A_1$} & $N_1$ & \multicolumn{2}{X}{Nutzwert von $A_2$} & $N_2$ \\
\end{tabularx}
Существует ли общее правило, которому нужно следовать, чтобы создавать великолепные динамичные таблицы со столбцами без переполненных и недозаполненных ячеек?
решение1
Использовать
\documentclass[ngerman]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{tabularx,booktabs,ragged2e}
\renewcommand\tabularxcolumn[1]{>{\hspace{0pt}\RaggedRight}p{#1}}
\begingroup
\begin{document}\tabcolsep=3pt
\begin{tabularx}{\textwidth}{@{}XX|XXX|XXX@{}}
\rlap{Alternativen} & & $A_1$ & & & $A_2$\\\toprule
Kriterium & Gewicht & Zielertrag & Zielerfüllungsgrad & Teilnutzwert &
Zielertrag & Zielerfüllungsgrad & Teilnutzwert \\
\midrule
$K_1$ & $g_1$ & $k_1$ & $e_{11}$ & $N_{11}=g_1 e_{11}$ & $k_{12}$ & $e_{12}$ &
$N_{12}=g_1 e_{12}$ \\
$K_2$ & $g_2$ & $k_{21}$ & $e_{21}$ & $N_{21}=g_2 e_{21}$ & $k_{22}$ & $e_{22}$ &
$N_{22}=g_2 e_{22}$ \\
$K_3$ & $g_3$ & $k_{31}$ & $e_{31}$ & $N_{31}=g_3 e_{31}$ & $k_{32}$ & $e_{32}$ &
$N_{32}=g_2 e_{32}$ \\
\bottomrule
Summe der Gewichtsfaktoren & $g_1+g_2+g_3$ & \rlap{Nutzwert von
$A_1$}& & $N_1$ & \rlap{Nutzwert von $A_2$} & & $N_2$ \\
\end{tabularx}
\endgroup
\end{document}
в противном случае первое слово в абзаце не будет переноситься. \hspace{0pt}
дураки pdftex
, что это будет первое слово в абзаце. Разумнее использовать lualatex
вместо этого он перенесет первое слово.
решение2
В качестве небольшой вариации ответа, предоставленного @Herbert, я могу скомпилировать этот документ без единого предупреждения:
\documentclass[draft]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tabularx,booktabs,ragged2e}
\newcolumntype{Y}{>{\hspace{0pt}\RaggedRight}X}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{Y|Y|Y|Y}
Aus welchen Gründen... ?[Aufgrund der ges. Nachweispflicht (wie
Brandschutz, Arbeitsschutz, etc.)]
& Aus welchen Gründen... ? [Einweisung zur Nutzung medizinischer
Geräte]
& Aus welchen Gründen... ?[Zur generellen zeit- und ortsungebundenen
Weiterbildung von Mitarbeitern]
& Aus welchen Gründen wurde eLearning in Ihrem Klinikum
implementiert [Sonstiges] \\ \hline
Ja & Nein & Nein & Ja \\
N/A & N/A & N/A & N/A \\
Ja & Ja & Nein & Nein \\
Nein & Ja & Nein & Nein \\
N/A & N/A & N/A & N/A \\
\end{tabularx}
\vspace{3ex}
\noindent
\begin{tabularx}{\textwidth}{YY|YYY|YYY}
\multicolumn{2}{l}{Alternativen} & \multicolumn{3}{|l}{$A_1$}
& \multicolumn{3}{|l}{$A_2$}\\
\toprule
Kriterium & Gewicht & Zielertrag & Zielerfüllungsgrad
& Teilnutzwert & Zielertrag & Zielerfüllungsgrad & Teilnutzwert \\
\midrule
$K_1$ & $g_1$ & $k_1$ & $e_{11}$ & $N_{11}=g_1 e_{11}$ & $k_{12}$ & $e_{12}$ & $N_{12}=g_1 e_{12}$ \\
$K_2$ & $g_2$ & $k_{21}$ & $e_{21}$ & $N_{21}=g_2 e_{21}$ & $k_{22}$ & $e_{22}$ & $N_{22}=g_2 e_{22}$ \\
$K_3$ & $g_3$ & $k_{31}$ & $e_{31}$ & $N_{31}=g_3 e_{31}$ & $k_{32}$ & $e_{32}$ & $N_{32}=g_2 e_{32}$ \\
\bottomrule
Summe der Gewichtsfaktoren & $g_1+g_2+g_3$
& \multicolumn{2}{Y}{Nutzwert von $A_1$} & $N_1$ & \multicolumn{2}{Y}{Nutzwert von $A_2$} & $N_2$ \\
\end{tabularx}
\end{document}