我写了两个表格,它们面临着类似的问题。它们最终变成了一个混乱的盒子,盒子太满或太满。我注意到这里有很多盒子太满或太满的线程,但我还无法修复它。
第一个表格仅处理未满的框。我尝试使用连字符将其删除,但没有成功:
\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}