PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Definition von Zeilenabstand in Zitaten



Skunk
16-01-2009, 15:30
Hallo,
ich habe seit einem Update von Lyx 1.5 auf Lyx 1.6.1 ein Problem mit dem Zeilenabstand. Ich tippe gerade ein Dokument mit 1,5-fachem Zeilenabstand, in dem die Zitate aber mit einfachem Zeilenabstand gesetzt werden sollen. Das hat bisher mittels einer Neudefinition der quote und quotation Umgebung (siehe unten) auch gut funktioniert, mittlerweile aber gibt es den sonderbaren Effekt, dass auch im Absatz vor der entsprechenden Umgebung der Zeilenabstand automatisch von 1,5 auf 1 wechselt - da der Text im Absatz zuvor aber Standard-Text ist sollte der Abstand natürlich wie im restlichen Dokument 1,5-fach sein und nicht auf 1 gesetzt werden (screenshot im Anhang).
Im Quelltext finde ich nichts außergewöhnliches in unmittlbarer Umgebung des Zitats, keine Befehl, der da nicht hingehört.

Hier die Definition der Umgebungen im Latex-Vorspann:


\let\oldquotation=\quotation
\let\oldendquotation=\endquotation
\renewenvironment{quotation}
{\singlespacing\small\oldquotation}
{\oldendquotation}
\let\oldquote=\quote
\let\oldendquote=\endquote
\renewenvironment{quote}
{\singlespacing\small\oldquote}
{\oldendquote}


Und hier der komplette Vorspann des Dokuments:



\documentclass[12pt,ngerman,english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=3cm,bmargin=2cm, lmargin=2cm,rmargin=3.5cm}
\usepackage{amsmath}
\usepackage{makeidx}
\makeindex
\usepackage{setspace}
\usepackage[authoryear]{natbib}
\onehalfspacing

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
\newenvironment{lyxlist}[1]
{\begin{list}{}
{\settowidth{\labelwidth}{#1}
\setlength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
\renewcommand{\makelabel}[1]{##1\hfil}}}
{\end{list}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{enumitem}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[OR]{\thepage}
\fancyhead[OL]{Chapter \nouppercase{\leftmark }}
\let\oldquotation=\quotation
\let\oldendquotation=\endquotation
\renewenvironment{quotation}
{\singlespacing\small\oldquotation}
{\oldendquotation}
\let\oldquote=\quote
\let\oldendquote=\endquote
\renewenvironment{quote}
{\singlespacing\small\oldquote}
{\oldendquote}

\usepackage{babel}

\begin{document}

Hat jemand einen Tipp? - Danke im Voraus!

Michael

cookie170
16-01-2009, 17:01
Viel zu kompliziert. Zitate kann man kleiner und einzeilig setzen, indem man in der Präambel die Zitatumgebung verbiegt:



\renewenvironment{quote}%
{\singlespacing\list{}{\rightmargin\leftmargin\sma ll}%
\item\relax}
{\endlist}


Dies setzt natürlich voraus, dass setspace geladen wird und auf einen anderen Wert als einzeilig gestellt wird.

Gruß,
Alexander

Skunk
16-01-2009, 17:34
Danke, aber das bringt mich leider noch nicht weiter. Nachdem ich die Kommentarzeichen (%) entfernt hatte, konnte ich zwar mit dem Code in der Präambel kompilieren, aber die Zeilenabstand war nun überall auf 1,5. Laut Anweisung zum setspace Paket kann man ihn mit \setstretch{1.25} entsprechend ändern, aber das bringt nichts für den Zitatabstand, der bleibt ebenfalls auf 1.5. Eine Idee, was ich falsch mache?
Grüße,
M

Skunk
16-01-2009, 18:26
Gut, jetzt habe ich herausgefunden, warum der Code keine Auswirkung hatte: Ich hatte quote und quotation Umgebungen verwechselt, die eine neu definiert, aber die andere im Dokument verwendet. Das habe ich jetzt behoben, der Code funktioniert fast(!) wie er sollte.
Der Witz ist: Es gibt den gleichen Effekt. Absätze vor den Zitaten werden wie die Zitate einzeilig gesetzt, alle anderen Standard-Absätze 1,5 zeilig. Also leider keine Veränderung im vergleich zu vorher.

Noch eine Idee?

Danke und Grüße,
Michael

krihaa
16-01-2009, 19:16
Hallo,

yup, hier ne Idee:

\documentclass[12pt,ngerman,english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry,babel,blindtext}
\geometry{verbose,a4paper,tmargin=3cm,bmargin=2cm, lmargin=2cm,rmargin=3.5cm}
\usepackage{amsmath}
\usepackage{makeidx}
\makeindex
\usepackage{setspace}
\usepackage[authoryear]{natbib}
\onehalfspacing

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
\newenvironment{lyxlist}[1]
{\begin{list}{}
{\settowidth{\labelwidth}{#1}
\setlength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
\renewcommand{\makelabel}[1]{##1\hfil}}}
{\end{list}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{enumitem}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[OR]{\thepage}
\fancyhead[OL]{Chapter \nouppercase{\leftmark }}

\renewenvironment{quote}%
{\singlespacing\list{}{\rightmargin\leftmargin\sma ll}%
\item\relax}
{\endlist}


\begin{document}
\blindtext
%
\begin{quote}
\blindtext
\end{quote}
\blindtext

\begin{quote}
\blindtext
\end{quote}
\blindtext
\end{document}
Gibt bei mir im Absatz vor dem ersten Zitat auch den einzeiligen Abstand. Bei der Version mit der Leerzeile passt es dann.

Gruß

Skunk
16-01-2009, 20:12
Danke, das ist ganz interessant.
Allerdings scheint es mehr ein Workaround zu sein, d.h. entweder gibt es im Code oder im Programm einen Fehler, denn eigentlich sollte eine Neudefinition von Zeilenabständen innerhalb einer Umgebung ja ohne solche Tricks möglich sein. Es ist ziemlich umständlich, vor jedem Zitat einen leeren Kommentar einzufügen, zumal ich eigentlich auch weiterhin mit Lyx arbeiten wollte.
Gibt es wenigstens eine Möglichkeit das zu automatisieren? In die Definition der Quote/Quotation-Umgebung kann man es wohl leider nicht einbauen...
Grüße

rais
16-01-2009, 23:08
Moin moin,

Danke, das ist ganz interessant.
Allerdings scheint es mehr ein Workaround zu sein, d.h. entweder gibt es im Code oder im Programm einen Fehler, denn eigentlich sollte eine Neudefinition von Zeilenabständen innerhalb einer Umgebung ja ohne solche Tricks möglich sein. Es ist ziemlich umständlich, vor jedem Zitat einen leeren Kommentar einzufügen, zumal ich eigentlich auch weiterhin mit Lyx arbeiten wollte.
Gibt es wenigstens eine Möglichkeit das zu automatisieren? In die Definition der Quote/Quotation-Umgebung kann man es wohl leider nicht einbauen...

ja das geht, wenn Du vorm \singlespacing in der quote-Umgebung einen neuen Absatz beginnst, etwa


\documentclass[12pt,ngerman,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel,blindtext}
\usepackage{setspace}
\onehalfspacing

\renewenvironment{quote}{%
\ifhmode\par\fi
\singlespacing
\list{}{\rightmargin\leftmargin\small}%
\item\relax
}{%
\endlist
}


\begin{document}
\blindtext
%
\begin{quote}
\blindtext
\end{quote}
\blindtext

\begin{quote}
\blindtext
\end{quote}
\blindtext
\end{document}

MfG

Skunk
18-01-2009, 11:23
Wunderbar, jetzt funktioniert das einwandfrei. Danke an alle für die Hilfe!