Re: Breite von Satzobjekten bestimmen
Dirk Hünniger (via tex-d-l Mailing List) <[email protected]> Mon, 6 Apr 2026 13:52:26 +0200
| Newsgroups | gmane.comp.tex.german |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format...
------------=_1775476414-62323-57
Content-Type: multipart/alternative;
boundary="------------NlpootE0zEHo206Be70KTzzX"
Content-Language: en-US, de-DE
This is a multi-part message in MIME format.
--------------NlpootE0zEHo206Be70KTzzX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hallo Uwe,
diese Beobachtung ist auf alle Fälle interessant. LaTeX bekommt also
schon irgendwie mit das da etwas schief läuft. Das log file
algorithmisch auszuwerten erscheint mir allerdings auf den ersten Blick
zu unzuverlässig. Wenn man das als Mensch liest kommt man da ganz gut
klar. Aber maschinell wird das denke ich schwierig. Ich hatte sonst noch
daran gedacht. Aus dem erzeugten PDF ein SVG zu machen und es von
inkscape auf die minimale benötigt Größe zuschneiden zu lassen und dann
die Breite davon zu bestimmen, das erscheint mir ebenfalls irgendwie
unangemessen.
Vielen Dank und Viele Grüße Dirk
On 4/6/26 13:31, Uwe Ziegenhagen (via tex-d-l Mailing List) wrote:
> Ich bin mir nicht sicher, ob es das nicht mitbekommt. Im Log deines
> Beispiels steht:
>
> Overfull \hbox (28.57755pt too wide) in paragraph at lines 6--6
>
> []$[]$|
>
> Passe ich das entsprechend an, dann gibt es diese Meldung nicht mehr:
>
> \documentclass{article}
>
> \newlength{\ml}
>
> \begin{document}
>
> \settowidth{\ml}{\begin{tabular}{|p{30pt}|}
>
> $\begin{array}{cc}a&b\end{array}$
>
> \end{tabular}}\the\ml
>
> \end{document}
>
> Aber viel Ahnung hab ich nicht davon.
>
> Uwe
>
>
> Am Mo., 6. Apr. 2026 um 12:39 Uhr schrieb Dirk Hünniger
> <[email protected]>:
>
> Hallo Uwe,
>
> ich habe deine Idee mal ausprobiert und folgendes Minimalbeispiel
> konstruiert:
>
> \documentclass{article}
> \newlength{\ml}
> \begin{document}
> \settowidth{\ml}{\begin{tabular}{|p{1pt}|}
> $\begin{array}{cc}a&b\end{array}$
> \end{tabular}}\the\ml
> \end{document}
>
> Ausgabe ist immer noch 13pt. Das Problem scheint zu sein das LaTeX
> über den rechten Rand hinaus schreibt und es irgendwie selbst
> nicht mitbekommt, dass es das getan hat.
>
> Viele Grüße Dirk
>
> On 4/5/26 17:41, Uwe Ziegenhagen (via tex-d-l Mailing List) wrote:
>> Hilft dir das vielleicht?
>>
>> https://tex.stackexchange.com/questions/359585/what-unit-of-measurement-is-widthof-using
>>
>> \widthof klingt irgendwie danach.
>>
>> Uwe
>>
>> Am So., 5. Apr. 2026 um 12:39 Uhr schrieb Dirk Hünniger
>> <[email protected]>:
>>
>> Hallo Jakob,
>>
>> Vielen Dank für deinen Hinweis auf das Wort umbrechen. Davon
>> hatte ich
>> noch nie gehört. Bei der Sache mit tabularx bin ich leider
>> nicht weiter
>> gekommen. So wie ich das verstehe werden zuerst die Breiten
>> aller
>> Spalten, die kein X haben, berechnet und diese Summe wird
>> dann von der
>> vorgegebenen Maximalbreite abgezogen und das Ergebnis durch
>> die Anzahl
>> Spalten mit X geteilt und dann wird dieser Wert als
>> Spaltenbreite der
>> Spalten mit X festgelegt. Leider kann ich aber dadurch auch
>> nicht die
>> unten erklärte Minimalbreite eines Satzobjekts bestimmen.
>> Folgendes
>> Minimalbeispiel
>>
>> \documentclass{article}
>> \usepackage{tabularx}
>> \begin{document}
>> \newsavebox{\mybox}\sbox{\mybox}{\begin{tabularx}{13pt}{|X|}
>> $\begin{array}{cc}a&b\end{array}$
>> \end{tabularx}}\the\wd\mybox{}
>> \end{document}
>>
>> Liefert immer noch die Ausgabe 13.0 pt. Ich will halt
>> herausfinden wie
>> breit ein Satzobjekt minimal seien muss egal wie häufig es
>> umbrochen wird.
>>
>> Viele Grüße Dirk
>>
>> On 4/4/26 21:42, Jakob Mendel (via tex-d-l Mailing List) wrote:
>> > Hallo Dirk,
>> >
>> > sieh Dir mal das Paket tabularx an. Es stellt den
>> Spaltentyp X
>> > bereit, der eine Erweiterung des Spaltentyps p ist und tun
>> sollte, was
>> > Dir vorschwebt.
>> >
>> > Viel Erfolg
>> > Jakob
>> >
>> > P. S. M. W. heißt das Verb zu "Umbruch" "umbrechen"
>> (Betonung auf der
>> > zweiten Silbe) mit den Formen "zu umbrechen" und "umbrochen
>> werden".
>> > Man will ja keinen Zaun umbrechen (Betonung auf der ersten
>> Silbe),
>> > damit er flach auf der Erde liegt.
>> >
>> >
>> > Am 04.04.26 um 13:07 schrieb Dirk Hünniger (via tex-d-l
>> Mailing List):
>> >> Hallo,
>> >>
>> >> ich mache mir derzeit wieder Gedanken zum Tabellensatz in
>> LaTeX. Ziel
>> >> ist es die optimalen Breiten der Spalten einer Tabelle
>> algorithmisch
>> >> zu bestimmen. Hierzu kann es erforderlich sein den Text
>> innerhalb
>> >> einer Tabellenzelle umzubrechen. Hierfür kenne ich nur die
>> >> Möglichkeit das mit einer Direktive der Form p{1cm} o.ä. im
>> >> Tabellenkopf zu fordern. Zu bestimmen ist also was ich
>> anstelle von
>> >> 1cm hinschreiben soll. Mir ist aufgefallen das bestimmte
>> Satzobjekte
>> >> nicht umgebrochen werden können. Beispiel (a) hierzu:
>> >>
>> >> $\begin{array}{cc}a&b\end{array}$
>> >>
>> >> Andere jedoch schon. Beispiel (b) hierzu:
>> >>
>> >> a b c d
>> >>
>> >> Mein Ziel ist nun in einem Programm diese beiden Fälle
>> erkennen und
>> >> unterscheiden zu können. Konkret will ich für jedes
>> Satzobjekt
>> >> bestimmen wie breit es minimal sein muss. Minimal bedeutet
>> dabei das
>> >> es so häufig als möglich umgebrochen wird um eine
>> möglichst geringe
>> >> Breite zu erhalten. In Beispiel (b) erreiche ich diese mit
>> folgendem
>> >> Code:
>> >>
>> >> \documentclass{article}
>> >> \begin{document}
>> >> \newsavebox{\mybox}\sbox{\mybox}{\begin{tabular}{|p{1pt}|}
>> >> a b c d
>> >> \end{tabular}}\the\wd\mybox{}
>> >> \end{document}
>> >>
>> >> Die Ausgabe ist 13.0pt
>> >>
>> >> Die analoge Konstruktion für Beispiel (a) wäre dann:
>> >>
>> >> \documentclass{article}
>> >> \begin{document}
>> >> \newsavebox{\mybox}\sbox{\mybox}{\begin{tabular}{|p{1pt}|}
>> >> $\begin{array}{cc}a&b\end{array}$
>> >> \end{tabular}}\the\wd\mybox{}
>> >> \end{document}
>> >>
>> >> Die Ausgabe ist wiederum 13.0pt. Hier schreibt LaTeX nach
>> rechts über
>> >> den Rand hinaus, so dass die Ausgabe kleiner ist als der
>> tatsächlich
>> >> benötigt Platz. Gibt eine Möglichkeit um die oben erklärte
>> minimale
>> >> Breite eines Satzobjektes zu bestimmen?
>> >>
>> >> Viele Grüße Dirk
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>> --
>> FAQ: http://texfragen.de/
>> Durchsuchbares Archiv:
>> https://www.listserv.dfn.de/sympa/arc/tex-d-l
>> Unsubscribe/Verwaltung:
>> https://www.listserv.dfn.de/sympa/info/tex-d-l
>>
>>
>>
>> --
>> Dr. Uwe Ziegenhagen
>> 0179-7476050
>> <http://www.uweziegenhagen.de>
>>
> --
> FAQ: http://texfragen.de/
> Durchsuchbares Archiv: https://www.listserv.dfn.de/sympa/arc/tex-d-l
> Unsubscribe/Verwaltung: https://www.listserv.dfn.de/sympa/info/tex-d-l
>
>
>
> --
> Dr. Uwe Ziegenhagen
> 0179-7476050
> <http://www.uweziegenhagen.de>
>
--------------NlpootE0zEHo206Be70KTzzX
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hallo Uwe,</p>
<p>diese Beobachtung ist auf alle Fälle interessant. LaTeX bekommt
also schon irgendwie mit das da etwas schief läuft. Das log file
algorithmisch auszuwerten erscheint mir allerdings auf den ersten
Blick zu unzuverlässig. Wenn man das als Mensch liest kommt man da
ganz gut klar. Aber maschinell wird das denke ich schwierig. Ich
hatte sonst noch daran gedacht. Aus dem erzeugten PDF ein SVG zu
machen und es von inkscape auf die minimale benötigt Größe
zuschneiden zu lassen und dann die Breite davon zu bestimmen, das
erscheint mir ebenfalls irgendwie unangemessen.</p>
<p>Vielen Dank und Viele Grüße Dirk </p>
<div class="moz-cite-prefix">On 4/6/26 13:31, Uwe Ziegenhagen (via
tex-d-l Mailing List) wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAML7JCj0en-SMbg7YS5i62jGZ3fDYkBJQzfzOCfZ4eZ_MQq8pQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div class="gmail_default"
style="font-family:times new roman,serif">Ich bin mir nicht
sicher, ob es das nicht mitbekommt. Im Log deines Beispiels
steht:</div>
<div class="gmail_default"
style="font-family:times new roman,serif"><br>
</div>
<div class="gmail_default"
style="font-family:times new roman,serif">
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">Overfull \hbox (28.57755pt too wide) in paragraph at lines 6--6</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">[]$[]$| </p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">
</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">Passe ich das entsprechend an, dann gibt es diese Meldung nicht mehr:</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">
</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">
</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\documentclass{article}</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\newlength{\ml}</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\begin{document}</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\settowidth{\ml}{\begin{tabular}{|p{30pt}|}</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">$\begin{array}{cc}a&b\end{array}$</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\end{tabular}}\the\ml</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">\end{document}</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">
</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">Aber viel Ahnung hab ich nicht davon.</p>
<p style="margin:0px;text-indent:0px;white-space:pre-wrap">
</p>
Uwe</div>
<div class="gmail_default"
style="font-family:times new roman,serif"><br>
</div>
</div>
<br>
<div class="gmail_quote gmail_quote_container">
<div dir="ltr" class="gmail_attr">Am Mo., 6. Apr. 2026 um
12:39 Uhr schrieb Dirk Hünniger <<a
href="mailto:[email protected]" moz-do-not-send="true"
class="moz-txt-link-freetext">[email protected]</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hallo Uwe,</p>
<p>ich habe deine Idee mal ausprobiert und folgendes
Minimalbeispiel konstruiert:</p>
<p>\documentclass{article}<br>
\newlength{\ml}<br>
\begin{document}<br>
\settowidth{\ml}{\begin{tabular}{|p{1pt}|}<br>
$\begin{array}{cc}a&b\end{array}$<br>
\end{tabular}}\the\ml<br>
\end{document}</p>
<p>Ausgabe ist immer noch 13pt. Das Problem scheint zu sein
das LaTeX über den rechten Rand hinaus schreibt und es
irgendwie selbst nicht mitbekommt, dass es das getan hat.</p>
<p>Viele Grüße Dirk</p>
<div>On 4/5/26 17:41, Uwe Ziegenhagen (via tex-d-l Mailing
List) wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_default"
style="font-family:times new roman,serif">Hilft dir
das vielleicht?</div>
<div class="gmail_default"
style="font-family:times new roman,serif"><br>
</div>
<div class="gmail_default"
style="font-family:times new roman,serif"><a
href="https://tex.stackexchange.com/questions/359585/what-unit-of-measurement-is-widthof-using"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://tex.stackexchange.com/questions/359585/what-unit-of-measurement-is-widthof-using</a></div>
<div class="gmail_default"
style="font-family:times new roman,serif"><br>
</div>
<div class="gmail_default"
style="font-family:times new roman,serif">\widthof
klingt irgendwie danach.</div>
<div class="gmail_default"
style="font-family:times new roman,serif"><br>
</div>
<div class="gmail_default"
style="font-family:times new roman,serif">Uwe</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am So., 5. Apr. 2026
um 12:39 Uhr schrieb Dirk Hünniger <<a
href="mailto:[email protected]"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">[email protected]</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hallo
Jakob,<br>
<br>
Vielen Dank für deinen Hinweis auf das Wort umbrechen.
Davon hatte ich <br>
noch nie gehört. Bei der Sache mit tabularx bin ich
leider nicht weiter <br>
gekommen. So wie ich das verstehe werden zuerst die
Breiten aller <br>
Spalten, die kein X haben, berechnet und diese Summe
wird dann von der <br>
vorgegebenen Maximalbreite abgezogen und das Ergebnis
durch die Anzahl <br>
Spalten mit X geteilt und dann wird dieser Wert als
Spaltenbreite der <br>
Spalten mit X festgelegt. Leider kann ich aber dadurch
auch nicht die <br>
unten erklärte Minimalbreite eines Satzobjekts
bestimmen. Folgendes <br>
Minimalbeispiel<br>
<br>
\documentclass{article}<br>
\usepackage{tabularx}<br>
\begin{document}<br>
\newsavebox{\mybox}\sbox{\mybox}{\begin{tabularx}{13pt}{|X|}<br>
$\begin{array}{cc}a&b\end{array}$<br>
\end{tabularx}}\the\wd\mybox{}<br>
\end{document}<br>
<br>
Liefert immer noch die Ausgabe 13.0 pt. Ich will halt
herausfinden wie <br>
breit ein Satzobjekt minimal seien muss egal wie
häufig es umbrochen wird.<br>
<br>
Viele Grüße Dirk<br>
<br>
On 4/4/26 21:42, Jakob Mendel (via tex-d-l Mailing
List) wrote:<br>
> Hallo Dirk,<br>
><br>
> sieh Dir mal das Paket tabularx an. Es stellt
den Spaltentyp X <br>
> bereit, der eine Erweiterung des Spaltentyps p
ist und tun sollte, was <br>
> Dir vorschwebt.<br>
><br>
> Viel Erfolg<br>
> Jakob<br>
><br>
> P. S. M. W. heißt das Verb zu "Umbruch"
"umbrechen" (Betonung auf der <br>
> zweiten Silbe) mit den Formen "zu umbrechen" und
"umbrochen werden". <br>
> Man will ja keinen Zaun umbrechen (Betonung auf
der ersten Silbe), <br>
> damit er flach auf der Erde liegt.<br>
><br>
><br>
> Am 04.04.26 um 13:07 schrieb Dirk Hünniger (via
tex-d-l Mailing List):<br>
>> Hallo,<br>
>><br>
>> ich mache mir derzeit wieder Gedanken zum
Tabellensatz in LaTeX. Ziel <br>
>> ist es die optimalen Breiten der Spalten
einer Tabelle algorithmisch <br>
>> zu bestimmen. Hierzu kann es erforderlich
sein den Text innerhalb <br>
>> einer Tabellenzelle umzubrechen. Hierfür
kenne ich nur die <br>
>> Möglichkeit das mit einer Direktive der Form
p{1cm} o.ä. im <br>
>> Tabellenkopf zu fordern. Zu bestimmen ist
also was ich anstelle von <br>
>> 1cm hinschreiben soll. Mir ist aufgefallen
das bestimmte Satzobjekte <br>
>> nicht umgebrochen werden können. Beispiel (a)
hierzu:<br>
>><br>
>> $\begin{array}{cc}a&b\end{array}$<br>
>><br>
>> Andere jedoch schon. Beispiel (b) hierzu:<br>
>><br>
>> a b c d<br>
>><br>
>> Mein Ziel ist nun in einem Programm diese
beiden Fälle erkennen und <br>
>> unterscheiden zu können. Konkret will ich für
jedes Satzobjekt <br>
>> bestimmen wie breit es minimal sein muss.
Minimal bedeutet dabei das <br>
>> es so häufig als möglich umgebrochen wird um
eine möglichst geringe <br>
>> Breite zu erhalten. In Beispiel (b) erreiche
ich diese mit folgendem <br>
>> Code:<br>
>><br>
>> \documentclass{article}<br>
>> \begin{document}<br>
>>
\newsavebox{\mybox}\sbox{\mybox}{\begin{tabular}{|p{1pt}|}<br>
>> a b c d<br>
>> \end{tabular}}\the\wd\mybox{}<br>
>> \end{document}<br>
>><br>
>> Die Ausgabe ist 13.0pt<br>
>><br>
>> Die analoge Konstruktion für Beispiel (a)
wäre dann:<br>
>><br>
>> \documentclass{article}<br>
>> \begin{document}<br>
>>
\newsavebox{\mybox}\sbox{\mybox}{\begin{tabular}{|p{1pt}|}<br>
>> $\begin{array}{cc}a&b\end{array}$<br>
>> \end{tabular}}\the\wd\mybox{}<br>
>> \end{document}<br>
>><br>
>> Die Ausgabe ist wiederum 13.0pt. Hier
schreibt LaTeX nach rechts über <br>
>> den Rand hinaus, so dass die Ausgabe kleiner
ist als der tatsächlich <br>
>> benötigt Platz. Gibt eine Möglichkeit um die
oben erklärte minimale <br>
>> Breite eines Satzobjektes zu bestimmen?<br>
>><br>
>> Viele Grüße Dirk<br>
>><br>
>><br>
>><br>
><br>
><br>
><br>
<br>
-- <br>
FAQ: <a href="http://texfragen.de/" rel="noreferrer"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">http://texfragen.de/</a><br>
Durchsuchbares Archiv: <a
href="https://www.listserv.dfn.de/sympa/arc/tex-d-l"
rel="noreferrer" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">https://www.listserv.dfn.de/sympa/arc/tex-d-l</a>
<br>
Unsubscribe/Verwaltung: <a
href="https://www.listserv.dfn.de/sympa/info/tex-d-l" rel="noreferrer"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://www.listserv.dfn.de/sympa/info/tex-d-l</a></blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div>Dr. Uwe Ziegenhagen</div>
<div>0179-7476050<br>
<<a href="http://www.uweziegenhagen.de"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">http://www.uweziegenhagen.de</a>></div>
</div>
</div>
<br>
<fieldset></fieldset>
</blockquote>
</div>
-- <br>
FAQ: <a href="http://texfragen.de/" rel="noreferrer"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">http://texfragen.de/</a><br>
Durchsuchbares Archiv: <a
href="https://www.listserv.dfn.de/sympa/arc/tex-d-l"
rel="noreferrer" target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://www.listserv.dfn.de/sympa/arc/tex-d-l</a>
<br>
Unsubscribe/Verwaltung: <a
href="https://www.listserv.dfn.de/sympa/info/tex-d-l"
rel="noreferrer" target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://www.listserv.dfn.de/sympa/info/tex-d-l</a></blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div>Dr. Uwe Ziegenhagen</div>
<div>0179-7476050<br>
<<a href="http://www.uweziegenhagen.de" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">http://www.uweziegenhagen.de</a>></div>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
</body>
</html>
--------------NlpootE0zEHo206Be70KTzzX--
------------=_1775476414-62323-57
Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
--
FAQ: http://texfragen.de/
Durchsuchbares Archiv: https://www.listserv.dfn.de/sympa/arc/tex-d-l
Unsubscribe/Verwaltung: https://www.listserv.dfn.de/sympa/info/tex-d-l
------------=_1775476414-62323-57--