мини-страница упаковка tabularx переполненный ящик

мини-страница упаковка tabularx переполненный ящик
  1. Строка Zur Erläuterung der...должна ввести следующий список. Это приводит к неполному заполнению hbox, и я просто не могу от этого избавиться.

  2. Чтобы сохранить контент на одной странице, я нашел решение в каком-то посте: обернуть все на мини-страницу. Правильная ли это процедура? Потому что это приводит к переполнению полей размером около 104pt.

  3. То же самое и с табличкой внутри. На самом деле выглядит так, как и ожидалось, но предупреждения сводят меня с ума...

Я уже несколько раз замечал проблему с мини-страницами в моем документе. И я стараюсь всегда работать с шириной строки... Одно, что нужно добавить: я уже глобально установил отсутствие отступа в своей преамбуле. Вот мой код:

\documentclass[
paper=a4,
parskip=half*   %vertikaler Abstand nach Absätzen
]{scrreprt}

\tolerance=2000
\emergencystretch=1em
\hfuzz=2pt
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tabularx}

\begin{document}
    \noindent\begin{minipage}{\linewidth}
    Zur Erläuterung der Vorgehensweise definiert Bechmann die folgenden Variablen:

    \begin{tabularx}{\linewidth}{p{.35\linewidth}X}
        $K_1,K_2,\dots,K_n$ & die n Kriterien, bezüglich der bewertet werden soll.\\
        $A_1,A_2,\dots,A_m$ & die m verschiedenen Alternativen, die bewertet werden sollen.\\
        $g_1,g_2,\dots,g_n$ & Gewichte der Kriterien\\
        $k_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielertrag des i-ten Kriteriums bezüglich der j-ten Alternative\\
        $e_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielerfüllungsgrad des i-ten Kriteriums\\
        $N_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Teilnutzwert des i-ten Kriteriums bezüglich der j-ten Alternative\\
        $N_j$ $j=1,\dots,m$ & Nutzwert der j-ten Alternative\\
    \end{tabularx}

    \vskip .5em
    es gilt dabei $N_{ij}=g_i*e_{ij}$ \\ und $N_j=N_{1j}+N_{2j}+\dots+N_{nj}=\displaystyle\sum_{i=1}^{n}N_{ij}$
    \end{minipage}
\end{document}

Кстати: если это имеет значение: я использую TexStudio 2.10.6 и MikTeX 2.9

Это предупреждение.

решение1

Как я уже сказал в своем комментарии, у вас проблема с \parindent. Ширина вашей мини-страницы с \textwidthне начинается с левой границы текста бит после parindentи, следовательно, на ее величину выступает правая граница текста, вызывая предупреждение Overfull \hbox (15.0pt too wide) in paragraph at lines 9--31. Если вы добавляете перед begin{minipage}˛командой \noindentили устанавливаете ее \parindentв ноль, это предупреждение исчезает:

\documentclass{article}
    \usepackage{tabularx}
%\setlength{\parindent}{0pt}

    \usepackage[showframe]{geometry}

\begin{document}
\noindent
\begin{minipage}{\textwidth}
Zur Erläuterung der Vorgehensweise definiert Bechmann die folgenden Variablen:

\vspace{\baselineskip}
    \begin{tabularx}{\linewidth}{lX}
$K_1,K_2,\dots,K_n$ & die $n$ Kriterien, bezüglich der bewertet werden soll.\\
$A_1,A_2,\dots,A_m$ & die $m$ verschiedenen Alternativen, die bewertet werden sollen.\\
$g_1,g_2,\dots,g_n$ & Gewichte der Kriterien\\
$k_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$
                    & Zielertrag des $i$-ten Kriteriums bezüglich der j-ten Alternative\\
$e_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$
                    & Zielerfüllungsgrad des $i$-ten Kriteriums\\
$N_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$
                    & Teilnutzwert des $i$-ten Kriteriums bezüglich der $j$-ten Alternative\\
$N_j$ $j=1,\dots,m$ & Nutzwert der $j$-ten Alternative\\
    \end{tabularx}

\vskip .5\baselineskip
es gilt dabei $N_{ij}=g_i*e_{ij}$  

und $N_j=N_{1j}+N_{2j}+\dots+N_{nj}=\displaystyle\sum_{i=1}^{n}N_{ij}$
    \end{minipage}
\end{document}

Редактировать:Я исправил некоторые опечатки в данном MWE. Также следует отметить: если вы хотите, чтобы содержимое таблицы первого столбца начиналось с левой границы мини-страницы, то вам следует сделать следующее

\begin{tabularx}{\linewidth}{@{}lX}

Предложенное решение также работает с вашим классом документа (добавленным при завершении вашего MWE:\documentclass[paper=a4,parskip=half*]{scrreprt}

Редактировать (2):Вот изображение вашей мини-страницы, созданной с помощью MWE.

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

Я также добавляю недостающую часть вашего примера (извините за это)

решение2

1)\noindent\begin{minipage}

2) нет необходимости быть \\раньше tabularx, если необходимо

\makebox[\linewidth]{Zur Erläuterung der Vorgehensweise definiert Bechmann die folgenden Variablen:}

3)p{.3\linewidth}

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\noindent\begin{minipage}{\linewidth}
\makebox[\linewidth]{Zur Erläuterung der Vorgehensweise definiert Bechmann die folgenden Variablen:}
    \begin{tabularx}{\linewidth}{p{.3\linewidth}X}
        $K_1,K_2,\dots,K_n$ & die n Kriterien, bezüglich der bewertet werden soll.\\
        $A_1,A_2,\dots,A_m$ & die m verschiedenen Alternativen, die bewertet werden sollen.\\
        $g_1,g_2,\dots,g_n$ & Gewichte der Kriterien\\
        $k_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielertrag des i-ten Kriteriums bezüglich der j-ten Alternative\\
        $e_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielerfüllungsgrad des i-ten Kriteriums\\
        $N_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Teilnutzwert des i-ten Kriteriums bezüglich der j-ten Alternative\\
        $N_j$ $j=1,\dots,m$ & Nutzwert der j-ten Alternative\\
    \end{tabularx}

    \vskip .5em
    es gilt dabei $N_{ij}=g_i*e_{ij}$ \\ und $N_j=N_{1j}+N_{2j}+\dots+N_{nj}=\displaystyle\sum_{i=1}^{n}N_{ij}$
    \end{minipage}
\end{document}

решение3

Пожалуйста, приложите полные минимальные рабочие примеры, включая соответствующие пакеты, которые вы используете.

Ваш код создает как недозаполненный, так и переполненный блок. Я не думаю, что создание мини-страницы действительно помогает здесь. Я могу порекомендовать обернуть среду \tabularx{}в \table{}среду, которая в вашем примере не создает переполненных блоков. Также пакет геометрии помогает, если вы хотите изменить ширину своей страницы.

  \documentclass{article}
  \usepackage[top=4cm, bottom=3cm, left=3cm, right=4cm]{geometry}
  \usepackage{tabularx}
  \begin{document}
     \begin{table}
          Zur Erläuterung der Vorgehensweise definiert Bechmann die folgenden Variablen: \\[0.5cm]
     \begin{tabularx}{\linewidth}{p{.35\linewidth}X}
          $K_1,K_2,\dots,K_n$ & die n Kriterien, bezüglich der bewertet werden soll.\\
          $A_1,A_2,\dots,A_m$ & die m verschiedenen Alternativen, die bewertet werden sollen.\\
          $g_1,g_2,\dots,g_n$ & Gewichte der Kriterien\\
          $k_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielertrag des i-ten Kriteriums bezüglich der j-ten Alternative\\
          $e_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Zielerfüllungsgrad des i-ten Kriteriums\\
          $N_{ij}$ $i=1,\dots,n$ $j=1,\dots,m$ & Teilnutzwert des i-ten Kriteriums bezüglich der j-ten Alternative\\
          $N_j$ $j=1,\dots,m$ & Nutzwert der j-ten Alternative\\
     \end{tabularx}
         \vskip .5em
     es gilt dabei $N_{ij}=g_i*e_{ij}$ und $N_j=N_{1j}+N_{2j}+\dots+N_{nj}=\displaystyle\sum_{i=1}^{n}N_{ij}$
    \end{table}
\end{document}

Редактировать:Оказывается, \table{}wrap на самом деле не исправляет переполненный hbox. Вместо этого пакет геометрии исправил его, расширив sitewidth, что может быть неподходящим решением. Однако переполненные hbox обычно можно исправить принудительной гипотенизацией, используя \-в первом предложении данного примера.

решение4

Часто описанные симптомы вызваны отступом parskip. В этом очевидном случае это можно легко решить, установив либо локально \noindentперед соответствующим абзацем, либо в общем виде как глобальное определение \setlength{\parindent}{0pt}.

В моем конкретном случае проблема была вызвана опцией класса parskip=half*документаКОМА-Скрипт. Я заметил это, когда комментировал parksip=half* и нашел решение page 71наКОМА-Скриптруководство.

половина*

Между абзацами должно быть свободное пространство в полстроки по вертикали; в конце абзаца должно быть не менее четверти строки свободного пространства.

Проблема заключалась во втором условии: «не менее четверти строки свободного места в конце абзаца».

половина-

вертикальный интервал между абзацами — одна строка

Поэтому я перешел на half-команду сохранения вертикального пространства и избавления от переполненных ящиков.

Надеюсь, это поможет другим людям, столкнувшимся с той же проблемой.

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