Re: Breite von Satzobjekten bestimmen
Dirk Hünniger (via tex-d-l Mailing List) <[email protected]> Mon, 6 Apr 2026 10:48:54 +0200
| Newsgroups | gmane.comp.tex.german |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format...
------------=_1775465400-51115-6
Content-Language: en-US, de-DE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hallo Jakob,
ich arbeite an meinem Programm mediawiki2latex [1] welches automatisiert
LaTeX Dokumente aus Wikipedia Artikeln o.ä. erzeugt. Hierbei kann es
vorkommen, dass der zu konvertierenden Wikipedia Artikel Tabellen
enthält. Typischerweise sind dort jedoch keine Informationen über die
Spaltenbreiten in solchen Tabellen enthalten. Ich muss sie also
irgendwie selbst festlegen.
Wenn die Inhalte der Tabellenzellen schmal genug sind ist alles gut und
ich kann die Tabelle gegebenenfalls künstlich verbreitern um sie auf die
vollen Seitenbreite einzupassen. Das ist auch so schon implementiert und
funktioniert soweit. Wenn es aber mindestens eine Zelle gibt die sehr
viel Text enthält muss dieser Text umbrochen werden. Auch das habe ich
bereits mit gewissen Heuristiken implementiert und es funktioniert auch
bereits in vielen Fällen hinreichend gut. Auch gibt es eine Heuristik
die die gesamte Tabelle kleiner skaliert wenn zu viele Texte in Zellen
umbrochen werden müssten.
Ich habe jetzt aber noch mal angefangen darüber Gedanken zu machen wie
man das korrekter hinbekommen kann. Und beim bisherigen nachdenken ist
mir eingefallen, dass man eben kleinstmögliche Spaltenbreite als
Eingabewert für diese Rechnung benötigt und deswegen stelle ich diese Frage.
Viele Grüße Dirk
[1] https://mediawiki2latex.wmcloud.org/
On 4/6/26 10:11, Jakob Mendel (via tex-d-l Mailing List) wrote:
> Hallo Dirk,
>
>> [...] 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.
> Das verstehe ich ebenso.
>
>> 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.
> Das sollte so sein: Wenn Du die Breite (d. h. die Gesamtbreite) der
> Tabelle auf 13pt setzt und diese Tabelle in eine Box packst, wird die
> Box genau 13pt breit.
>
>> Ich will halt herausfinden wie breit ein Satzobjekt minimal seien
>> muss egal wie häufig es umbrochen wird.
> Mir ist bisher nicht klar, *wofür* Du die kleinstmögliche
> Spaltenbreite brauchst: Willst Du eine Tabelle mit möglichst schmalen
> Spalten erzeugen? Oder willst Du eine möglicht schmale Tabelle
> erzeugen, um z. B. umfließenden Text von optimaler Zeilenlänge zu haben?
>
> Falls letzteres zutrifft, sieh Dir mal die Pakete wrapfig und wrapfig2
> (Umgebung wraptable) an.
>
> Uwes Hinweis auf \settowidth ist auf alle Fälle hilfreich.
>
> Viele Grüße
> Jakob
>
------------=_1775465400-51115-6
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
------------=_1775465400-51115-6--