迷你頁包裝 tabularx 超滿盒

迷你頁包裝 tabularx 超滿盒
  1. 該行Zur Erläuterung der...應引入以下列表。這會產生一個未滿的水平盒,但我無法擺脫它。

  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)如有必要則無須\\beforetabularx

\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{}包裹並不能真正修復過滿的水平盒。相反,幾何套件透過擴大站點寬度來修復它,這可能不是合適的解決方案。然而,過滿的 hbox 通常可以透過\-在給定範例的第一句中使用強制假設來修復。

答案4

通常所描述的症狀是由 parskip 縮排引起的。在這種明顯的情況下,可以透過\noindent在相應段落之前本地設定或以通用方式作為全域定義來輕鬆解決\setlength{\parindent}{0pt}

在我的具體情況下,問題是由文件類選項產生parskip=half*KOMA腳本。我注意到這一點,因為我評論了parksip=half*並找到了解決page 71方案KOMA腳本手動的。

一半*

段落之間垂直間隔半行;段落末尾必須至少有四分之一行的可用空間

問題是第二個條件:「段落末尾至少有四分之一的行可用空間」。

一半-

段落之間的垂直間距為一行

因此,我切換到half-命令來保持垂直空間並擺脫過滿的盒子。

我希望這可以幫助其他遇到相同問題的人。

相關內容