tabularx с динамическими столбцами и большим количеством текста, который оказывается в недо- и переполняющихся полях

tabularx с динамическими столбцами и большим количеством текста, который оказывается в недо- и переполняющихся полях

Я написал две таблицы, которые сталкиваются с похожей проблемой. Они заканчиваются беспорядком из недо- и переполненных ящиков. Я заметил много тем с недо- и переполненными ящиками здесь, но я пока не смог это исправить.

Первая таблица касается только не полностью заполненных полей. Я пытался избавиться от этого с помощью переносов, но мне это не удалось:

    \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

Во второй таблице рассматриваются как недозаполненные, так и переполненные ячейки, а переполненные ячейки показаны маленькими черными квадратами.

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

введите описание изображения здесь

Связанный контент