動的な列と多くのテキストを含む tabularx は、ボックスのアンダーフルとオーバーフルになります。

動的な列と多くのテキストを含む tabularx は、ボックスのアンダーフルとオーバーフルになります。

私は、同じような問題に直面している表を 2 つ書きました。それらは、不足ボックスと過剰ボックスの混乱に陥ります。ここでは、不足ボックスと過剰ボックスに関するスレッドが多数あることに気づきましたが、まだ修正できていません。

最初の表は、アンダーフルボックスのみを扱っています。ハイフネーションでこれを取り除こうとしましたが、うまくいきませんでした。

    \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}

表形式1

2 番目の表は、不足ボックスと過剰ボックスの両方を扱っており、過剰ボックスは小さな黒いボックスで示されています。

    \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}

表形式2

オーバーフィルやアンダーフィルのボックスのない、優れた動的な列付き表を作成するために、従うべき一般的なルールはありますか?

答え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}

ここに画像の説明を入力してください

関連情報