PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Blocksatz und Zentrierung in einem Absatz?



Maverick
29-08-2007, 10:02
Hallo!

Ich würde gerne im folgenden Absatz (eine quote-Umgebung) die letzte Zeile zentrieren. Hat jemand eine Ahnung, wie ich das bewerkstelligen könnte? Klappt nicht so richtig ...


% Summary
\begin{quote}
\begin{footnotesize}
\emph{Politische Philosophie als Theorie von Staaten und deren Organisation. Im Zentrum steht der Begriff des Staates. Abgrenzung zu Politikwissenschaft und Soziologie. Verzahnung innerhalb der Philosophie. }
\end{footnotesize}
\end{quote}
% Summary Ende

Maverick
30-08-2007, 22:20
*mal_nachoben_hol*

Ich bin mal so frech. Idee hat keiner von euch? Ich würde gerne in der Quote-Umgebung die letzte Zeile zentrieren. Beim caption-Paket heißt dort die Funktion "justification=centerlast".

Falls ich mich missverständlich ausrichte (Wikipedia):


Blocksatz: Die Ränder sind sowohl auf der linken als auch auf der rechten Seite bündig. Die letzte Zeile eines im Blocksatz formatierten Textes ist in der Regel am linken Absatzrand orientiert und der Text läuft entsprechend seiner restlichen Länge aus. In selteneren Fällen, z. B. bei manchen Gedichten oder um einen besonderen optischen Effekt zu erreichen, kann die letzte Zeile auch auf die Spaltenbreite zentriert werden.

Und genaus das möchte ich ...

Stefan_K
31-08-2007, 11:58
Hallo Maverick,

dann orientiere Dich doch am Quelltext des caption-Paketes.
Ich habe centerlast-betreffendes mal daraus in Deine quote-Umgebung eingebaut:

\begin{quote}
\begin{footnotesize}
\makeatletter
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax
\emph{Politische Philosophie ... Verzahnung innerhalb der Philosophie.}\par
\makeatother
\end{footnotesize}
\end{quote}

Wenn Du es mehrfach brauchst, empfiehlt sich natürlich ein Makro für solche Absätze.

Viele Grüße,

Stefan

cookie170
31-08-2007, 12:12
In dem Buch Latex-Hacks von Anselm, ähm, Lingnau (?) gibt es dazu ein Makro. Da ich gerade umziehe, komme ich vorerst nicht dran. Aber da war das genau beschrieben.

Gruß,
Alexander

(nur falls die Lösung von Stefan nicht so funktioniert...)

Maverick
31-08-2007, 12:16
Hallo Stefan!

Vielen, vielen Dank. Das klappt prima!

Leider klappt mein MB mit Makro noch nicht, bin aber am Probieren ... Sieht da einer von den Experts einen Fehler?


%% MINIBEISPIEL

\documentclass[12pt,a4paper]{scrbook}
%% \usepackage[ansinew]{inputenc}
%% \usepackage[latin1]{inputenc}
%% \usepackage[applemac]{inputenc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{betababel}
\usepackage{lmodern}

\newcommand{\test}[1]{
\begin{quote}
\begin{footnotesize}
\makeatletter
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax
\emph{#1}\par
\makeatother
\end{footnotesize}
\end{quote}}

%% DOKUMENTENBEGINN
\begin{document}

\test{Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.}

\end{document}

Stefan_K
31-08-2007, 12:54
Hallo Maverick,

es sollte schon gehen, wenn Du \makeatletter und \makeatother außerhalb des neuen Makros schreibst.
Besser als ein Makro per newcommand finde ich eine neue Umgebung. Mal dahingehend modifiziert:

\makeatletter
\newenvironment{centerlastquote}{%
\begin{quote}
\begin{footnotesize}
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax
\em
}{%
\par
\end{footnotesize}
\end{quote}
}
\makeatother
...
\begin{centerlastquote}
... langer Text ...
\end{centerlastquote}


\emph (braucht Parameter) habe ich zum Schalter \em geändert, dessen Wirkung sowieso mit der schließenden quote-Umgebung aufgehoben wird.

Ich hab übrigens mal in dem Buch von Anselm Lingnau nachgesehen, das Alexander erwähnte, dort ist es auch in einer Umgebung umgesetzt und analog, nur eben mit \setlength-Befehlen.

Viele Grüße,

Stefan

Maverick
31-08-2007, 13:27
Hallo Stefan!

Wirklich vielen Dank für deine Mühen! Danke!

Ein kleines Problem habe ich noch: Lass' mal dieses MB durch --> Es sind hier die Zeilenabstände nun anders. Wo "drehst" du denn da für eine Änderung??


%% MINIBEISPIEL

\documentclass[12pt,a4paper]{scrbook}
%% \usepackage[ansinew]{inputenc}
%% \usepackage[latin1]{inputenc}
%% \usepackage[applemac]{inputenc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{betababel}
\usepackage{lmodern}

\makeatletter
\newenvironment{centerlastquote}{%
\begin{quote}
\begin{footnotesize}
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax
\em
}{%
\par
\end{footnotesize}
\end{quote}
}
\makeatother



%% DOKUMENTENBEGINN
\begin{document}

\begin{centerlastquote}
Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.
\end{centerlastquote}

% Summary
\begin{quote}
\begin{footnotesize}
\emph{Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt.Das ist ein langer Text und er dient nur dazu, um zu prüfen, ob die letzte Zeile zentriert wird. Wir werden sehen, ob es klappt. }
\end{footnotesize}
\end{quote}
% Summary Ende
\end{document}

Stefan_K
31-08-2007, 14:28
Hi Maverick,

wenn das \par hinter \end{footnotesize} verschoben wird, stimmen die Zeilenabstände überein.

Viele Grüße,

Stefan

Maverick
31-08-2007, 14:36
Stimmt, aber dann ist die letzte Zeile nicht mehr zentriert! :D

Grrr.

Stefan_K
31-08-2007, 16:10
Ok, dann zusätzlich zur Verschiebung von \par noch alle drei skip-Angaben zwischen \begin{quote} und \begin{footnotesize} setzen, dann paßts wieder. :)

Stefan

Maverick
31-08-2007, 16:24
Super! Es klappt. Wobei ich nicht verstehe, warum es durch Umordnen der Befehle plötzlich klappt?!

Für die Nachwelt das funktionierende MB:


%% MINIBEISPIEL

\documentclass[12pt,a4paper]{scrbook}
%% \usepackage[ansinew]{inputenc}
%% \usepackage[latin1]{inputenc}
%% \usepackage[applemac]{inputenc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{betababel}
\usepackage{lmodern}
\usepackage{blindtext}

\makeatletter
\newenvironment{centerlastquote}{%
\begin{quote}
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax
\em
\begin{footnotesize}
}{%
\end{footnotesize}
\par
\end{quote}
}
\makeatother



%% DOKUMENTENBEGINN
\begin{document}

\begin{centerlastquote}
\blindtext
\end{centerlastquote}

\end{document}