![ミニページラッピング tabularx オーバーフルボックス](https://rvso.com/image/327781/%E3%83%9F%E3%83%8B%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%20tabularx%20%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AB%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9.png)
この行では、
Zur Erläuterung der...
次のリストを導入する必要があります。これにより、不足している hbox が生成され、それを取り除くことができません。コンテンツを 1 ページにまとめるために、すべてをミニページにラップするという解決策を、ある投稿で見つけました。これは正しい手順でしょうか? これによって、約 のボックスがいっぱいになってしまうからです
104pt
。内部の表も同様です。実際には予想どおりのように見えますが、警告が気になります...
すでに私のドキュメントでミニページの問題に何度か気付きました。そして、私は常に行幅で作業するようにしています... 前に 1 つ追加します: 私はすでにプリアンブルでグローバルにインデントを設定していません。これが私のコードです:
\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 がいっぱいになりすぎる問題は解決されません。geometry パッケージは、サイト幅を広げることでこの問題を解決しましたが、これは適切な解決策ではないかもしれません。ただし、hbox がいっぱいになりすぎる問題は、通常、\-
例の最初の文で示したように、強制的にハイポテンシングすることで解決できます。
答え4
多くの場合、説明されている症状は parskip インデントによって発生します。この明らかなケースでは、\noindent
それぞれの段落の前にローカルに を設定するか、または によるグローバル定義として一般的な方法で を設定することで簡単に解決できます\setlength{\parindent}{0pt}
。
私の場合、問題はドキュメントクラスオプションによって発生しました。parskip=half*
。KOMAスクリプト. 私はparksip=half*をコメントアウトしたときにこれに気づき、解決策を見つけました。page 71
。KOMAスクリプトマニュアル。
半分*
段落間の縦方向のスペースは半行です。段落の最後には少なくとも四分の一行の空きスペースが必要です。
問題は、2 番目の条件、「段落の最後に少なくとも 4 分の 1 の行の空きスペースがあること」でした。
半分-
段落間の縦方向のスペースを1行にする
half-
そのため、垂直方向のスペースを維持し、オーバーフルのボックスを削除するコマンドに切り替えました。
これが同じ問題を抱えている他の人たちの助けになれば幸いです。