Tanelorn.net

Medien & Phantastik => Multimedia => Multimedia - Software & Betriebsysteme => Thema gestartet von: Funktionalist am 18.02.2009 | 23:27

Titel: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 18.02.2009 | 23:27
Aloha,
schreibe gerade an meiner Diplomarbeit in dem wunderbaren Frustprogramm LaTex.
Da ich unglaublich viele Miniabsätze habe, wie:

"Es gilt also:"
"Somit lässt sich x schreiben als:"
...

stört das Einrücken enorm, da der Text extrem unruhig wird. Eine Leerzeile wäre wesentlich angenehmer.
Meinen kleinen Header habe ich mehr oder weniger von einem Kumpel diktiert bekommen (Danke Nukite!  :d), aber er ist gerade nicht on, also bekommt ihr die Ehre mir zu helfen ;D.
Zitat
\documentclass[12pt,twoside,parskip,leqno,fleqn]{report}
\usepackage{german}
\usepackage[latin1]{inputenc}
\usepackage{latexsym}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{a4wide}
\usepackage{amssymb}
\usepackage{ngerman}
\usepackage{txfonts}

Kennt jemand den Befehl dazu? Mein Google-Fu war zu schwach.

sers und Danke,
Alex
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Eulenspiegel am 18.02.2009 | 23:30
Wenn du einfach nur eine neue Zeile beginnen willst, ohne etwas einzurücken, schreibe:
\\

wenn du nach der Zeile etwas Platz haben willst, schreibe einfach
\\[3mm]

oder auch
\\[0.5cm]

Die Zahl gibt an, wieviele mm (bzw. cm) du Platz lässt, bevor die neue Zeile beginnt.

Ansonsten: Viel Erfolg mit deiner Diplomarbeit. :)
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 18.02.2009 | 23:36
wenn du nach der Zeile etwas Platz haben willst, schreibe einfach
\\[3mm]
Das geht? Sehr schön! Danke!
hatte gehofft, dass ich das einheitlich ändern könnte, da ich auch einige "längere" Textblöcke (ca. 20 Zeilen ;) ) habe, in denen Absätze auftauchen.
(Wenn man nach jeder Zeile strg+s drückt, weiß man, dass man zu lange geTeXt hat...)

Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Eulenspiegel am 19.02.2009 | 00:29
Schreib hier einfach einen kleinen Beispieltext rein und wie du ihn formatiert haben willst, und ich kann dir dann die entsprechenden Befehle geben.

zum Beispiel:
blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla. (Absatz und 1 Zeile frei lassen)

blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 00:46
1.1 Unsinnsbehauptung

Für besonders wagemutige ist 1=2.
(hier zum Beispiel)
Beweis:
Sei a \in IR mit a=b.
(hier zum Beispiel)
Also betrachte:
a=b                                      / *a
a^2=ab                                / +a^2 -2ab
Das Multiplizieren mit a ist erlaubt, da tjoa....sonst wäre es doof, gell?
(hier zum Beispiel)
Nach einigen Umformungen, die im Grunde ganz einfach sind, kommen wir zum nächsten Schritt.
2a^2 - 2ab =a^2 -ab             / :(a^2 - ab)
2=1
(das nach links schieben und Setzen des Kästchens kann ichauch nicht :( ) o

wird ungefähr klar, was ich meine? Ich könnte das auch mit \\[3mm] machen, aber das ist ne Heidenarbeit, da ich im Moment den TExt schon getippt habe. :(



Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 00:50
Habe es jetzt nicht getestet, aber folgendes müsste das Erwünschte bewirken

\parskip 12pt plus 1pt minus 1pt   % Setzt den vertikalen Abstand zwischen Absätzen auf 12 pt
                                   % Das Plus und Minus fügt Glue ein, d. h. TeX darf den Abstand um einen
                                   % Punkt vergrößern oder verkleinern, um ein gutes Layout
                                   % zu erzeugen (z. B. bündiger Abschluss der Seite
\parindent 0pt                     % Setzt die Einrückung der ersten Zeile auf 0 Pt

Das sind allerdings die TeX-Primitiven, es gint sicher auch einen eleganten Weg in LaTeX.

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 00:54
Gerade nochmal gegooglet:

\addtolength{\parskip}{\baselineskip}


Macht den Abstand genau eine Zeile groß.

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 00:56
(das nach links schieben und Setzen des Kästchens kann ichauch nicht :( ) o

Was meinst Du damit?

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 01:04
Ach ja:
Wenn Du die Formeln auch nicht eingerückt, sondern linksbündig willst (Du hast ja bei den Stiloptionen felqn angegeben) ist die zu setzende Dimension der mathindent, also

\mathindent 0pt
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 01:09
@Kirilow
Vielen Dank!
Das macht das gewünschte. Danke!
Wo ichs gerade sehe, weiß ich nur nicht, ob das auch will...Sieht jetzt irgendwie nach WOrd aus, auf einmal. ;D das andere wirkte irgendwie trotzdem übersichtlicher...probiere morgen mal an ein paar stellen das manuelle aus. ( \\[3mm])


ich glaube, ich schlafe mal drüber....*ach ja, habe mal meinen Header aufgeräumt bei der Gelegenheit...war ja peinlich, dass ich das 2geteilt hatte*


Gerade nochmal gegooglet:

\addtolength{\parskip}{\baselineskip}


Macht den Abstand genau eine Zeile groß.
Dann kann ich das 12pt aus der anderen Zeile(\parskip 12pt plus 1pt minus 1pt ) entfernen?
Was meinst Du damit?

Ich meine das Beweiskästchen am linken rechten Rand, das anzeigt, wann etwas abgeschlossen ist.

sers,
Alex
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Eulenspiegel am 19.02.2009 | 01:13
Zuerstmal, brauchst du ein paar mathematische Sympole. Da ich nicht weiß, in welchem Paket sie sind, würde ich dir empfehlen, erstmal folgende zwei Zeilen in den Header zu schreiben:
\usepackage{latexsym,epsfig,ngerman,moreverb,makeidx}
\usepackage{amsmath,amssymb,amstext, amsfonts}

(doppelte Pakte, die du schon drin hast, entfernen.)

Um dann eine Box zu schreiben, schreibe:
$\Box$

Um irgendetwas nach rechts zu verschieben, schreibe:
\nobreak\begin{flushright}
Hier beliebigen Text einfügen.
\end{flushright}

Das heißt, eine Box nach rechts zu setzen ist:
\nobreak\begin{flushright} $\Box$ \end{flushright}

Falls dir das zu viel Text ist, kannst du in die Kopfzeile zusätzlich schreiben:
\newcommand{\Ende}{\nobreak\begin{flushright} $\Box$ \end{flushright}}

oder auch:
\def\Ende{\nobreak\begin{flushright} $\Box$ \end{flushright}}

(Für den roten Text kannst du was beliebig anderes schreiben.

Überall, wo das Kästchen dann hin soll, musst du nur noch
\Ende
schreiben.
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 01:20
Wow!
Die Pakete habe ich je nachdem, was mein Editor meinte, im Header eingebunden. Sind im Großen und Ganzen, die, die Du genannt hast! Wusste nicht, dass man mit einem \usepackage-Befehl gleich mehrere einbinden kann.

Und habe mir gleich einen \fertig Befehl geschrieben/*hust* kopiert. ~;D

vielen Dank :d,
Alex
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 01:21
Dann kann ich das 12pt aus der anderen Zeile(\parskip 12pt plus 1pt minus 1pt ) entfernen?
Du kannst die Zeile damit komplett ersetzen. Der Unterschied besteht nur darin, dass sich der Abstand zwischen Absätzen dann auf die Schriftgröße einstellt (danach ist nämlich der Baselineskip skaliert) Du kannst im übrigen
1. Auch die Abstände kleiner als eine ganze Zeile machen, also z B.
\parskip 3mm plus 1pt minus 1pt
Dann ist der Abstand eben immer 3mm (+-1pt)
2. Das ganze an- bzw. abstellen, indem Du vor dem Bereich, wo Du diese Einrückung willst, den parskip zu erhöhen und den parindent auf 0 setzen und danach wieder umgekehrt. Schlauer macht man das dann aber per Makro oder environment.

Ich meine das Beweiskästchen am linken rechten Rand, das anzeigt, wann etwas abgeschlossen ist.
Ich glaube, die Box ist in amssym.
text \hfill$\Box$

Es gibt, glaube ich, auch eine proof-Umgebung, die das automatisch macht. Bin aber nicht sicher.

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 01:33
zu1.
*notier* hmm ja. ich lerne hier mehr, al s in den komischen Tutorials...
zu2.
Interessant. Wie kann man sich denn eine Environment schreiben und macht das Sinn? ;D
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 01:50
Interessant. Wie kann man sich denn eine Environment schreiben

so z. B.:

\newenvironment{absaetze}
{\addtolength{\parskip}{\baselineskip}\parindent 0pt}
{}


und macht das Sinn? ;D
Habe mit Environments noch nicht so viele Erfahrungen gemacht. Probier's einfach mal, wenn hässliche Nebenwirkungen auftreten, dann lass es besser bleiben.  ;)

Grüße
kirilow

Anhang: so nutzt man das neue environment

\documentclass[11pt,a4paper]{article}
\pagestyle{empty}
\usepackage{amsmath,amssymb,amstext, amsfonts}
\newenvironment{absaetze}
{\addtolength{\parskip}{\baselineskip}\parindent 0pt}
{}


\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d

\begin{absaetze}
huhu, ohne Einrückung: Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d

Dafür mit Abstand! Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d
\end{absaetze}

Hier wieder normales Verhalten: Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure d
\end{document}



EDIT: unsinn aus der source entfernt.
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 02:04
zu1.
ich lerne hier mehr, al  in den komischen Tutorials...

Ich fand die Tutorials auch immer unbefriedigend. Für den Hausgebrauch ist ein Buch empfehlenswert, und zwar:

Helmuth Kopka:
LATEX, Bd. 1: Einführung (Taschenbuch)
auch die anderen zwei Bände sind gut. Sollte es eigentlich in der Uni-Bibliothek geben.

Wenn man verstehen will, wie das funktioniert, sollte man sich einmal das TeXBook von Knuth ansehen, z B. hier:
http://net.ytu.edu.cn/share/%D7%CA%C1%CF/texbook.pdf

Leider habe ich zu LaTeX nie etwas entsprechendes finden können.

Bei Fragen kann ich (neben dem Tanelorn  :) )nur die sehr nette und kenntnisreiche Newsgroup (eine der wenigen intakten usenet-Inseln) de.comp.text.tex empfehlen.

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: kirilow am 19.02.2009 | 02:18
Ha, habe die Proof-Umgebung gefunden. Schau mal hier:
http://en.wikibooks.org/wiki/LaTeX/Theorems
und genauer, hier
ftp://ftp.ams.org/pub/tex/doc/amscls/amsthdoc.pdf

Da kannst Du auch die Indentation etc. einstellen, vermutlich ist das eine noch bessere Lösung als ein eigenes Environment.

So, Feierabend.

Grüße
kirilow
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Haukrinn am 19.02.2009 | 08:18
Warum benutzt nicht einfach eine passendere Vorlage für den ganzen Krempel? Einige KomaScript-Vorlagen sind zum Beispiel super geeignet für Diplomarbeiten, und die formatieren dann auch gleich entsprechend deutscher Vorlagen.

Und die Pakete amsmath und proof sind Pflicht, wenn man ein mathematisches Thema hat.
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Eulenspiegel am 19.02.2009 | 12:19
Interessant. Wie kann man sich denn eine Environment schreiben und macht das Sinn? ;D
Ja, Environments machen Sinn.
Für Beweise habe ich zum Beispiel folgendes Envorinoment ) einfach in den Header schreiben.):

\newenvironment{beweis}[1][Beweis]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries\textsf #1:}]}{\nobreak\begin{flushright} $\Box$ \end{flushright}\end{trivlist}}
\newcommand{\bew}[1]{\begin{beweis} #1 \end{beweis}}

Im Text kannst du dann schreiben:
\bew{
Hier kommt der Beweis.
}

Für Sätze, Lemmata und Definitionen eignet sich der Befehl \newtheorem
Der Befehl hat folgende Struktur:
\newtheorem{lem}[Optional1]{Lemma}[Optional2]

Dies schreibst du in den Header. (Den roten Sachen kannst du einen beliebigen Namen geben. Die blauen Sachen würde ich am Anfang weglassen. Auf ihre Bedeutung komme ich später zu sprechen.)

In den eigentlichen Text schreibst du dann:
Zitat
\begin{lem}
Sei a>0\\
Wenn a=b, dann ist auch b>0. Die Umkehrung gilt nicht.
\end{lem}

In der PDF-Version sieht der Text dann wie folgt aus:
Zitat
Lemma 1 Sei a>0
Wenn a=b, dann ist auch b>0. Die Umkehrung gilt nicht.

Das Wort in den ersten Mengenklammern gibt also an, womit du die Umgebung im Quelltext definierst.
Das Wort in der zweiten Mengenklammer ist das, was dann im fertigen Dokument steht. (Gefolgt von einer fortlaufenden Numerierung.)

Kommen wir nun zu den beiden Optionalteilen:
Optional1: Wenn du diese weglässt, dann bekommt jede Theorem Umgebung eine eigene Numerierung.
Beispielsweise hättest du dann:

Definition 1
Definition 2
Lemma 1
Satz 1
Definition 3
Satz 2
Korollar 1
Lemma 2
...

Du kannst bei Optional1 jedoch auch angeben, dass die Numerierung einer anderen Umgebung verwendet werden soll.
Wenn du in den Header zum Beispiel schreibst:
Zitat
\newtheorem{satz}{Satz}
\newtheorem{cor}[satz]{Korollar}
\newtheorem{dfn}{Definition}
\newtheorem{lem}[satz]{Lemma}

Dann bekommen Satz, Korollar und Lemma alle die gleiche Numerierung und Definition bekommt eine eigene Numerierung.
Das Beispiel von oben sieht dann wie folgt aus:
Definition 1
Definition 2
Lemma 1
Satz 2
Definition 3
Satz 3
Korollar 4
Lemma 5
...

Optional2: Normalerweise wird das ganze Dokument fortlaufen numeriert.
Das kann recht anstrengend sein, wenn man gerade bei Satz 30 ist und auf Satz 9 verweist: Wo zum teufel steht nun Satz 9?
Stattdessen ist es hilfreicher, wenn ein Satz die folgende Form hat:
Satz 1.3
das bedeutet: Es ist der 3. Satz im 1. Kapitel.

oder noch besser
Satz 1.5.3
das bedeutet: Es ist der 3. Satz in Kapitel 1.5. (Also im 5. Unterkapitel vom 1. Kapitel.)

Man schreibt bei Optional2 also hin, welche Einheit durchnummeriert wird. (Werden alle Sätze im Kapitel durchnummeriert oder werden alle Sätze im Unterkapitel durchnummeriert.)
Möglichkeiten für Optional 2 wären:
\newtheorem{satz}{Satz}                      % Satz 1
\newtheorem{satz}{Satz}[section]          % Satz 1.1
\newtheorem{satz}{Satz}[subsection]     % Satz 1.1.1
\newtheorem{satz}{Satz}[subsubsection] % Satz 1.1.1.1



Meine Theoreme sahen wie folgt aus:
\newenvironment{beweis}[1][Beweis]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries\textsf #1:}]}{\nobreak\begin{flushright} $\Box$ \end{flushright}\end{trivlist}}
\newcommand{\bew}[1]{\begin{beweis} #1 \end{beweis}}

\newtheorem{satz}{Satz}[subsection]
\newtheorem{cor}[satz]{Korollar}
\newtheorem{bsp}{Beispiel}
\newtheorem{dfn}{Definition}[subsection]
\newtheorem{lem}[satz]{Lemma}
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 13:55
Wahnsinn! Danke!

ich überlege gerade, ob ich das bisher geschriebene umändern soll...Bisher habe ich dir Numerierung durch \chapter,\section,\subsection... erzeugt.
Mal schauen.
Aber das sieht echtkomfortabel aus, was DU da geschrieben hast! Ich spiele mal mit rum!

Jetzt überprüfe ich erstmal nocheinmal den zentralen Beweis, da sich ein Stetigkeitsbegriff geändert hat und ich sehen muss, ob das Genze hält...*grummel*

Übrigens:
Ihr seid SPitze!

lieben gruß,
Alex
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Nukite am 19.02.2009 | 15:17
Hi,
falls Dich das Einrückem noch stört, guck dir mal das KOMA-Paket an.
Du nutzt als Documentclass "report". Das ist für den engl. sprachigen Raum.

Für deutsch nimmt man dann "scrreprt"
Titel: Re: [LaTeX] "Absatz: \par" von Einrücken auf Leerzeile ändern
Beitrag von: Funktionalist am 19.02.2009 | 15:29
@Nukite
Sieht schon gleich viel besser aus!
das hat die zu bearbeitenden Stellen ungefähr halbiert.
Danke!
Das Einrücken beim \par sieht bei langen Texten schick aus, aber bei so Textstückchen ist die "deutsche Halbleerzeile" einfach ruhiger.

@Eulenspiegel
die Proofumgebungen und die Theoreme rocken!