Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zentrieren einer list Umgebung

306 views
Skip to first unread message

Thomas Leonhardt

unread,
May 8, 2002, 5:20:06 AM5/8/02
to
Hallo,

ich würde gerne eine list Umgebung (itemize, enumerate) horizontal auf einer
Seite zentrieren.
Ich habe hierfür folgendes ausprobiert

\begin{center}
\begin{itemize}
\item A
\item B
\end{itemize}
\end{center}

außerdem noch die Verwendung von {\centering .... }.

Beides führt aber nicht zum Erfolg. Das einzige was ich bisher rausgefunden
habe ist,
dass man jeden item Eintrag einzeln zentrieren kann. Was aber etwas
umständlich ist.

Kann mir bitte jemand sagen, was ich übersehe, nicht gelesen habe oder
falsch machen.

Vielen Dank,
Thomas


Markus Kohm

unread,
May 8, 2002, 9:47:26 AM5/8/02
to
Thomas Leonhardt wrote:

> Kann mir bitte jemand sagen, was ich übersehe, nicht gelesen habe oder
> falsch machen.

\centering an der falschen Stelle:

\documentclass{article}

\begin{document}
\begin{itemize}\centering
\item Erster Punkt
\item Zweiter Punkt
\end{itemize}
\end{document}

Und nächstes Mal bitte ein vollständiges Beispiel, damit ich weniger Arbeit
habe (siehe FAQ: Was sollte ich gelesen haben ...).

Markus
--
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> scrguide
Lust zur Mitarbeit? --> http://www.socha.net/scrguide
Fragen zur Person? --> http://people.at.freenet.de/kohm/index.html

Thomas Leonhardt

unread,
May 13, 2002, 7:52:46 AM5/13/02
to
Hallo,

leider macht das nicht das was ich wollte. Ich habe mich wahrscheinlich
etwas
undeutlich ausgedrückt. Es soll die gesamte list Umgebung zentriert werden,
nicht
jedes einzelne Element.
Wenn ich das mache, was unten steht, dann sind alle item Einträge zentriert
und dem
entsprechent nicht mehr zueinander linksbündig.


> \documentclass{article}
>
> \begin{document}
> \begin{itemize}\centering
> \item Erster Punkt
> \item Zweiter Punkt
> \end{itemize}
> \end{document}

Im Prinzip müsste eine bounding-box für die list Umgebung berechnet werden
und diese
wird dann zentriert werden.

Ich habe dies mit dem folgende Code hinbekommen, die Frage ist nur, ob es
auch einfacher
geht.

\documentclass{article}

\begin{document}
\begin{center}
\begin{minipage}{9cm}
\begin{itemize}
\item Requirements Specifier
\begin{itemize}
\item Software Requirements Specification
\item Use Case
\item Use Case Package
\end{itemize}
\item System Analyst
\begin{itemize}
\item Glossary
\item Stakeholder Requests
\item Supplementary Specification
\item Use Case Model
\item Vision
\end{itemize}
\end{itemize}
\end{minipage}
\end{center}
\end{document}


Insbesondere ist das Problem, dass ich die Breite der minipage angeben muss.
Eigentlich sollte LaTeX die Breite aber entsprechend der längsten Zeile der
list Umgebung wählen.

Gruss, Thomas


Michael Weber

unread,
May 14, 2002, 5:01:36 AM5/14/02
to
"Thomas Leonhardt" <leon...@informatik.tu-darmstadt.de> writes:
>
> Insbesondere ist das Problem, dass ich die Breite der minipage angeben muss.
> Eigentlich sollte LaTeX die Breite aber entsprechend der längsten Zeile der
> list Umgebung wählen.

Aha; und was ist wenn die Breite des Materials, das zentriert werden
soll größer als \textwidth ist?

Und nicht immer stimmt der optische Eindruck mit den berechneten
Werten überein, z.B. bei verschieden langen Zeilen

ahoj ersma

Micha
--
Michael Weber Tel. +49-30-2093-3075; Fax +49-30-2093-3067
Institut f. Informatik, HU Berlin, Unter den Linden 6, D-10099 Berlin
mailto:mwe...@informatik.hu-berlin.de
http://www.informatik.hu-berlin.de/~mweber

Martin Vaeth

unread,
May 14, 2002, 1:30:32 PM5/14/02
to
Michael Weber <mwe...@informatik.hu-berlin.de> schrieb:

> "Thomas Leonhardt" <leon...@informatik.tu-darmstadt.de> writes:
>>
>> Insbesondere ist das Problem, dass ich die Breite der minipage angeben muss.
>> Eigentlich sollte LaTeX die Breite aber entsprechend der längsten Zeile der
>> list Umgebung wählen.
>
> Aha; und was ist wenn die Breite des Materials, das zentriert werden
> soll größer als \textwidth ist?

So wie Thomas' Frage klang, vermute ich, dass er von vornherein weiß, dass
dieser Fall nicht eintritt. Außerdem ist offensichtlich, was in diesem Fall
am besten passieren sollte: Nichts (d.h. die {item}-Liste wird `normal'
bei \textwidth umbruchen und kein Zentrieren passiert).

> Und nicht immer stimmt der optische Eindruck mit den berechneten
> Werten überein, z.B. bei verschieden langen Zeilen

Mir erscheint dieses optische Argument nur als eine zweifelhafte Entschuldigung
dafür, dass es in LaTeX nicht (oder wohl nur mit großem Aufwand) machbar ist
[ich lasse mich hier gerne eines anderen belehren].
Im Moment fällt mir als einzige Lösung für Thomas' Problem nur ein, auf
{itemize} zu verzichten, und statt dessen eine Tabelle zu bilden und dort
`von Hand' das itemize-Verhalten nachzubauen.
So ein ähnliches Problem gibt es übrigens auch immer bei Rechnungen oder
ähnlichen Listen:

1. TeX und LaTeX --,--
2. LaTeX-Lernen und -Ärger (s.u.) 800,--
3. Word x.y 300,--
4. Word-update und -Ärger und 8 000,--
durch Bugs verlorene Daten

Sorry, wenn ich jetzt etwas sauer klinge, aber mich hat das unlängst sehr
frustiert:
In den Haupteinträgen oben `meint' man eigentlich ein {enumerate}, aber weil
rechts was hinmuss, bleibt nur eine Tabelle übrig. Die "Hauptspalte"
ist dabei auch noch doppelt lästig, weil man ausprobieren muss, ob der
Inhalt (beim gerade eingestellten Font) noch in eine l-Spalte passt, oder
ob man sie mit tabularx durch Festlegung der Tabellenbreite auf \linewidth
umbrechen muss - das sind natürlich die einzigen sinnvollen Alternativen,
aber welche man nehmen muss, muss man probieren und bei Änderung der
Schriftgröße ggf. umschwenken: Das verstehe ich nicht unter logischem Markup.
Und die Nummern links von Hand hinzuschreiben, ist auch nicht gerade
logisches Markup. Ganz zu schweigen vom Trennen der Tabelle am
Seitenende bei tabularx (ja, ich kenne ltxtable, aber z.B. einen einzelnen
Brief in zwei oder gar mehr Files aufteilen zu müssen, ist nicht so prickelnd).
Natürlich kann man vieles umgehen: Für die Nummerierung kann man sich einen
Macro schreiben, oder die ganze Tabelle vorher parsen und Nummerierungsbefehle
`automatisch' einfügen. Man kann die Tabelle (oder beim Parsen Teile davon)
in ein Boxregister setzen und die Längen ausmessen und erst später entsprechend
setzen usw. Aber das ist alles sehr viel Handarbeit. So komplex ist die obige
Tabelle doch eigentlich nicht! Eine *gute* Tabellen-Umgebung sollte das m.E.
alles zur Verfügung stellen. Gibt es ein Paket, das so etwas kann?
Oder schreibt jemand an so etwas, oder hat es zumindest vor?
Oder ist so etwas für LaTeX 3 geplant?
Vielleicht kann mich aber auch jemand auf eine einfache Lösung hinweisen,
die ich nur nicht sehe!?

Jürgen Göbel

unread,
May 15, 2002, 1:47:46 AM5/15/02
to
va...@mathematik.uni-wuerzburg.de (Martin Vaeth) wrote:

> So ein ähnliches Problem gibt es übrigens auch immer bei Rechnungen oder
> ähnlichen Listen:
>
> 1. TeX und LaTeX --,--
> 2. LaTeX-Lernen und -Ärger (s.u.) 800,--
> 3. Word x.y 300,--
> 4. Word-update und -Ärger und 8 000,--
> durch Bugs verlorene Daten
>
> Sorry, wenn ich jetzt etwas sauer klinge, aber mich hat das unlängst sehr
> frustiert:

[...]

Wirf doch mal einen Blick auf listliketab.sty von Scott Pakin. Bisher habe
ich nur die Doku gelesen und noch nicht mit dem Paket gearbeitet, könnte mir
aber vorstellen, daß zumindest einige Deiner Probleme damit (oder darauf
aufbauend) gelöst werden können.

Gruß

Jürgen

Martin Vaeth

unread,
May 15, 2002, 5:17:01 AM5/15/02
to
Jürgen Göbel <juergen...@lfk.eads.net> schrieb:

> va...@mathematik.uni-wuerzburg.de (Martin Vaeth) wrote:
>
>> So ein ähnliches Problem gibt es übrigens auch immer bei Rechnungen oder
>> ähnlichen Listen:
...
>
> Wirf doch mal einen Blick auf listliketab.sty von Scott Pakin.

Super! Da hat sich tatsächlich schon jemand die Mühe gemacht, und auch einen
tollen Ansatz gefunden!
Damit kann man jetzt natürlich auch die ursprünglich gestellte Frage
beantworten:

\usepackage{listliketab}

\storestyleof{itemize}
\begin{center}
\begin{listliketab}
\begin{tabular}{Ll}
\textbullet&Foo\\
\textbullet&Bar
\end{tabular}
\end{listliketab}
\end{center}

Wie in der Doku zu listliketab bemerkt, ist es noch etwas ärgerlich, dass man
\textbullet eingeben muss, und bei geschachtelten Listen versagt das Ganze.
(Zwar könnte ich mir vorstellen, dass man mit \multicolumn und verschachtelten
listliketab's hinkommt, aber das habe ich nicht probiert).

Markus Kohm

unread,
May 15, 2002, 10:13:09 AM5/15/02
to
Martin Vaeth wrote:

> Im Moment fällt mir als einzige Lösung für Thomas' Problem nur ein, auf
> {itemize} zu verzichten, und statt dessen eine Tabelle zu bilden und dort
> `von Hand' das itemize-Verhalten nachzubauen.

Da das ganze ohnehin nur interessant ist, wenn jeder Aufzählungspunkt in
eine Zeile passt, muss man da nicht viel "von Hand" machen:

\begin{center}
\begin{tabular}{@{\textbullet}l}
Rote Rüben \\
Weiße Rüben \\
Gelbe Rüben \\
\end{tabular}
\end{center}

ggf. kann man den Item-Abstand auch vergrößern. Aber bei solche kompakten
Listen wäre die Frage nach der Veringerung des Abstandes wahrscheinlich
ohnehin die nächste Frage gewesen.

Markus
--
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> scrguide
Lust zur Mitarbeit? --> http://www.socha.net/scrguide

Fragen zur Person? --> http://people.freenet.de/kohm/index.html

0 new messages