![мини-страница упаковка tabularx переполненный ящик](https://rvso.com/image/327781/%D0%BC%D0%B8%D0%BD%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0%20%D1%83%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0%20tabularx%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%8F%D1%89%D0%B8%D0%BA.png)
Строка
Zur Erläuterung der...
должна ввести следующий список. Это приводит к неполному заполнению hbox, и я просто не могу от этого избавиться.Чтобы сохранить контент на одной странице, я нашел решение в каком-то посте: обернуть все на мини-страницу. Правильная ли это процедура? Потому что это приводит к переполнению полей размером около
104pt
.То же самое и с табличкой внутри. На самом деле выглядит так, как и ожидалось, но предупреждения сводят меня с ума...
Я уже несколько раз замечал проблему с мини-страницами в моем документе. И я стараюсь всегда работать с шириной строки... Одно, что нужно добавить: я уже глобально установил отсутствие отступа в своей преамбуле. Вот мой код:
\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-
команду сохранения вертикального пространства и избавления от переполненных ящиков.
Надеюсь, это поможет другим людям, столкнувшимся с той же проблемой.