Unterschiedliche Zeilenabstände in minipage

Schriftbild, Absätze und Auflistungen einstellen


leitnerg
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 12. Nov 2010, 08:49
Wohnort: Wien

Unterschiedliche Zeilenabstände in minipage

Beitrag von leitnerg »

Hallo LaTeX-Forum! Meine ersten Gehversuche mit LaTex sind schon ein paar Jahre her. Jetzt versuche ich wieder, mich der Technik zu nähern. Leider stoße ich immer wieder auf einige Probleme, die ich allein durch FAQ, Google & Co. nicht lösen kann. Daher hoffe ich, jemand aus diesem Forum kann mir helfen:

Wenn mit \setlength{\parskip}{Höhe} ein Abstand zwischen den Absätzen definiert wird und später durch \vspace verringert wird, unterscheiden sich die Abständ des "normalen" Seitenkontext von denen in einer \minipage oder \figure.

Ist der Abstand \parskip}{0pt}, ist die Ausgabe in den diversen environments identisch.
\documentclass[11pt,a4paper,draft]{scrartcl}
\usepackage[ngerman]{babel}

\setlength{\parindent}{0pt}

\newcommand{\defpadding}{1ex}
\setlength{\parskip}{\defpadding}

\begin{document}

\par AbstandXXX\par\vspace{-\defpadding}AbstandXXX\par
\begin{minipage}[t]{1\textwidth}
\par AbstandXXX\par\vspace{-\defpadding}AbstandXXX\par
\end{minipage}

\vspace{10mm}

\setlength{\parskip}{0pt}
\par AbstandXXX\par\vspace{-\defpadding}AbstandXXX\par
\begin{minipage}[t]{1\textwidth}
\par AbstandXXX\par\vspace{-\defpadding}AbstandXXX\par
\end{minipage}

\end{document}
Ich würde aber gerne für das gesamte Dokument den Abstand bestimmen und nur in wenigen Ausnahmen diesen (teilweise) entfernen. Hoffentlich kann mir einer der Gurus dabei helfen.

Liebe Grüße,
Georg

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Zunächst sei erwähnt, dass man Absatzabstand nicht (allein) dadurch realisieren sollte, dass man \parskip selbst setzt. KOMA-Script bietet dafür Optionen, die man auch verwenden sollte!

Desweiteren sollte in Dokumenten mit Absatzabstand in der Regel kein vertikaler Abstand kleiner als der Absatzabstand sein. Dafür gibt es eine ganz einfache Begründung: Ein vertikaler Abstand dient der Untergliederung eines Textes. Die kleinste gliedernde Einheit eines Dokuments ist der Absatz. Es darf keinen vertikalen Abstand geben, der kleiner ist als der Abstand der kleinsten gliedernden Einheit, weil sonst die größere gliedernde Einheit geringer hervorgehoben wäre als die kleinste.

Die Definition von \defpadding in Deinem Beispiel ist in jedem Fall überflüssig, da man \parskip selbst natürlich auch als Argument von \vspace verwenden kann.

minipage ist wie \parbox ein Bereich, der diverse Längen selbst bestimmt. Dazu gehört auch, dass \parskip und \parindent auf 0 gesetzt werden. So ist die Umgebung spezifiziert. Es gibt ein Paket, dessen Namen mir leider gerade entfallen ist, das dies ändert. Man kann das auch durch wenig mehr als eine Zeile im Header erreichen:
\documentclass[parskip=half,DIV=12,fontsize=10]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\makeatletter
\g@addto@macro\@parboxrestore{\KOMAoptions{parskip=half}\selectfont}
\makeatother

\begin{document}
\blindtext

\noindent\begin{minipage}{.45\linewidth}
\blindtext

\blindtext
\end{minipage}\hfill
\begin{minipage}{.45\linewidth}
\blindtext

\blindtext
\end{minipage}
\end{document}
Du musst Dir aber im Klaren darüber sein, dass dies so für alle Umgebungen gilt, die irgendwie mit \parbox oder minipage zu tun haben. Wenn sich irgend ein Paketautor (zu Recht!) auf die Originalfunktion verlassen hat, dann knallt es möglicherweise. Alternativ kannst Du Dir natürlich eine eigene Umgebung definieren, bei der \KOMAoption{parskip=half}\selectfont automatisch am Anfang ausgeführt wird. Dann bist Du auf der sicheren Seite.

leitnerg
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 12. Nov 2010, 08:49
Wohnort: Wien

Beitrag von leitnerg »

KOMA hat geschrieben:...Die kleinste gliedernde Einheit eines Dokuments ist der Absatz. Es darf keinen vertikalen Abstand geben, der kleiner ist als der Abstand der kleinsten gliedernden Einheit, weil sonst die größere gliedernde Einheit geringer hervorgehoben wäre als die kleinste.
Danke für die Erklärung. Das werde ich berücksichtigen.
KOMA hat geschrieben:Alternativ kannst Du Dir natürlich eine eigene Umgebung definieren, bei der \KOMAoption{parskip=half}\selectfont automatisch am Anfang ausgeführt wird. Dann bist Du auf der sicheren Seite.
Ja, so werde ich das machen. Herzlichen Dank für die rasche Hilfe!

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Wow, endlich mal wieder jemand, der sich für ungefragte Erklärungen sogar bedankt. Das freut mich!

Wenn die Frage damit beantwortet ist, solltest Du den Status entsprechend anpassen. Wenn die Frage noch nicht beantwortet ist, bitte angeben, was noch fehlt.

Markus
(Moderator)

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Rückgabewert von \KOMAoptions{parskip=full+}?

Beitrag von IrenaSekuta »

Hallo Markus,
[...]minipage ist wie \parbox ein Bereich, der diverse Längen selbst bestimmt. Dazu gehört auch, dass \parskip und \parindent auf 0 gesetzt werden.[...]

Du musst Dir aber im Klaren darüber sein, dass dies so für alle Umgebungen gilt, die irgendwie mit \parbox oder minipage zu tun haben. Wenn sich irgend ein Paketautor (zu Recht!) auf die Originalfunktion verlassen hat, dann knallt es möglicherweise. [...]
Ich habe deinen Vorschlag zu beherzigen, jedoch stoße ich momentan noch bei der programmtechnischen Umsetzung.

Mein Versuch, die Länge von \parskip direkt mit \KOMAoptions{parskip=full+} zu ändert, scheitert. Anbei mein Minimalbeispiel:
\documentclass[ngerman,parskip=full+]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{babel}
\usepackage{blindtext}

%\makeatletter 
%\g@addto@macro\@parboxrestore{\KOMAoptions{parskip=full+}\selectfont} 
%\makeatother

\begin{document}
\section{Verschieden Absatztrennungen}
\blindtext

\blindtext\\
Und hier der nächste Satz.

\blindtext\par
Und hier der nächste Satz

\section{Das ganze in einer Minipage-Umgebung}

\begin{minipage}{\textwidth}
\setlength{\parskip}{12pt}
%\setlength{\parskip}{\KOMAoptions{parskip=full+}}  <-- funktioniert so nicht!
\blindtext

\blindtext\\
Und hier der nächste Satz.

\blindtext\par
Und hier der nächste Satz
\end{minipage}

\end{document}
Ich vermute einmal, dass \KOMAoptions{parskip=full+} keine Länge als Rückgabewert hat, wie sie von \parskip benötigt wird. Eventuell passt der Begriff "Rückgabewert" nicht so richtig. Ich stellte mir vor, dass \KOMAoptions eine Art Funktion ist, die irgendetwas in Bezug auf den ihr übergebenen Parameter (hier full+) macht und einen Rückgabewert besitzt, so wie es bei anderen Programmiersprachen üblich ist. Und ich vermute stark, dass das sooo nicht ganz richtig oder im extremsten Fall schlicht und ergreifend falsch ist. :-)

Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

CollmDante

Beitrag von CollmDante »

Wenn ich die vorhergehenden Antworten richtig verstanden habe, soll es wohl so gemeint sein, wenn man es auf die Umgebung minipage beschränken will:
\documentclass[ngerman,parskip=full+]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{babel}
\usepackage{blindtext}

%\makeatletter
%\g@addto@macro\@parboxrestore{\KOMAoptions{parskip=full+}\selectfont}
%\makeatother

\begin{document}
\section{Verschieden Absatztrennungen}
\blindtext

\blindtext\\
Und hier der n"achste Satz.

\blindtext\par
Und hier der n"achste Satz

\section{Das ganze in einer Minipage-Umgebung}

\begin{minipage}{\textwidth}
\KOMAoptions{parskip=full+}\selectfont
\blindtext

\blindtext\\
Und hier der n"achste Satz.

\blindtext\par
Und hier der n"achste Satz
\end{minipage}

\end{document}

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Danke, funktioniert!

Beitrag von IrenaSekuta »

Hallo CollmDantem,

funktioniert einwandfrei.

Mich ärgert nur, dass ich m.E. darauf auch hätte selber kommen können.


Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Antworten