PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Section-Überschriften bei Zweispaltigem Dokument + Problem Inhaltsverzeichnis



Askarel
26-02-2008, 15:44
Hallo!

Ich hoffe, ihr könnt mir bei meinem Problem helfen, da ich in den Untiefen des WWW nichts passendes gefunden habe.
Erstmal zu den Fakten: Ich benutze Lyx 1.5.3 (was aber kein Beinbruch darstellen sollte, siehe unten) unter Windows. Die Documentclass ist book und das Dokument ist auf Zweispaltig gestellt.

Nun zum Problem 1): Die Kapitelüberschriften werden mittig über beide Spalten hinweg gesetzt, so dass der Fließtext über der Kapitelüberschrift auf beide Spalten aufgeteilt wird. Bei der Section-Überschrift wird die Überschrift nur in eine Spalte gesetzt, der Text geht in dieser Spalte einfach weiter bis zum Ende der Seite. So weit so gut, nur will ich die Section-Überschriften genauso wie die Kapitelüberschriften mittig über die Seite machen lassen (die Subsections sollen so bleiben wie davor). Ich denke, ich werde da um ein \renewcommand nicht herum kommen, oder? Und kann mir da jemand beim Code helfen? Ich bin in dieser Hinsicht noch reichlich unbedarft.

Problem 2): Kann ich Lyx/Latex klarmachen, dass es auf der zweiten Seite des Dokuments (nach der Titelseite) ein grobes Inhaltsverzeichnis macht und dann an bestimmten Stellen genauere Inhaltsverzeichnisse über einen von mir festgelegten Teil des Dokuments machen?

Hört sich jetzt vielleicht wenig sinnvoll an, aber das hat alles so seine Gründe ;) Ihr würdet mir sehr helfen!

Danke schonmal!
Gruß Askarel

bobmalaria
26-02-2008, 20:35
hi,

zu deinem zweiten porblem kannst du das paket minitoc (http://www.ctan.org/tex-archive/help/Catalogue/entries/minitoc.html) nehmen

gruß

Askarel
26-02-2008, 22:02
Danke bobmalaria!

Habs mir runtergeladen und nachdem ich lange die Dokumentation gewälzt hab hab ichs auch hinbekommen, ein MiniTOC zu erstellen in dem Rahmen, wie ich es will. Jetzt gibts aber wieder ein Problem, was ich nicht hinbekommen hab bisher: Das MiniTOC geht auch nur über eine Spalte anstatt über die ganze Seite (und sieht demnach doch ordentlich gequetscht aus). Hat wer ne Idee, wie ich das beheben kann?

Und weiter geht die gute Fahrt!

Grüße Askarel

Askarel
26-02-2008, 23:36
Also das mit den MiniTOC hab ich jetzt mehr oder weniger elegant gelöst, indem ich einfach vorher (vor der Kapitelüberschrift) auf \onecolumn und nach dem MiniTOC wieder auf \twocolumn umschalte. Das hat den Effekt, dass die Kapitelüberschirft und das TOC auf einer Seite stehen und danach gehts dann mit dem Inhalt weiter. Damit kann ich gut leben, sieht brauchbar aus.
Bei dem ersten Problem versuch ich mich jetzt an nem \renewcommand, mal schaun, wie weit ich komm. Wäre für jede Hilfe dankbar, da ich sowas dann zum ersten Mal mach!

rais
28-02-2008, 08:42
Moin moin,


Nun zum Problem 1): Die Kapitelüberschriften werden mittig über beide Spalten hinweg gesetzt, so dass der Fließtext über der Kapitelüberschrift auf beide Spalten aufgeteilt wird. Bei der Section-Überschrift wird die Überschrift nur in eine Spalte gesetzt, der Text geht in dieser Spalte einfach weiter bis zum Ende der Seite. So weit so gut, nur will ich die Section-Überschriften genauso wie die Kapitelüberschriften mittig über die Seite machen lassen (die Subsections sollen so bleiben wie davor).
entspricht


\twocolumn[\section{Abschnittstitel}]

etwa Deinen Vorstellungen?

MfG

Askarel
28-02-2008, 18:56
Hey!

Das sieht echt sehr gut aus (und vor allem so einfach oO)! Funktioniert auch prächtig und es wäre perfekt, wenn mir jetzt noch wer verraten kann, wie ich Latex dazu bring vor dem Befehl KEINE neue Seite anzufangen, sondern nach dem vorher geschriebenen Text weiterzuschreiben.
Hat wer Ideen? Dann lass ich euch auch in nächster Zeit zufrieden, versprochen ;)

Gruß Askarel


PS: Damit das ganze auch zentriert wird muss das ganze noch in ein \begin{center}, aber das hab ich grad noch so alleine geschafft ;) Danke nommal

rais
28-02-2008, 20:12
Moin moin,

(..) und es wäre perfekt, wenn mir jetzt noch wer verraten kann, wie ich Latex dazu bring vor dem Befehl KEINE neue Seite anzufangen, sondern nach dem vorher geschriebenen Text weiterzuschreiben.
afaik gilt \onecolumn bzw. \twocolumn immer seitenweise ... versuch es etwa so -- _ohne_ twocolumn-Option:


\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
%zweispaltig...
\end{multicols}% zweispaltig unterbrechen
\begin{multicols}{2}[{\section[Abschnittsüberschrift]{\centering Abschnittsüberschrift}}]
%wieder zweispaltig...

alternativ vllt auch


\begin{multicols}{2}
%zweispaltig...
\end{multicols}% zweispaltig unterbrechen
\section[Abschnittsüberschrift]{\centering Abschnittsüberschrift}
\begin{multicols}{2}
%wieder zweispaltig...

damit sollte zumindest nicht zwingenderweise eine neue Seite begonnen werden -- inwieweit Du das bei \chapter dann auch treiben mußt... *achselzuck*

MfG

Askarel
28-02-2008, 22:24
Hi rais

Die Chapter sind nciht das Problem, da soll Latex sogar ne neue Seite anfangen. Dein Vorschlag klingt logisch und sieht gut aus, werd ich gelch mal testen.
BTW: Gibt's irgendwo ne Übersicht, was es alles für Packages gibt und was die alles können? Ich hab erst vor 3 Monaten mit Tex angefangen (ja, und will schon so nen Sch*** wissen ;) ) und hab keinen Plan, was es alles für Packages gibt. Wie ich seh, sind die ja durchaus als nützlich zu erachten, wie man so schön sagt.

Gruß Askarel

rais
29-02-2008, 08:40
Moin moin,


Die Chapter sind nciht das Problem, da soll Latex sogar ne neue Seite anfangen.

dann etwas anders formuliert: Ist denn sichergestellt, daß \chapter nun mitbekommt, daß es in einer multicol-Umgebung aufgerufen wird? Probier's aus.;)


BTW: Gibt's irgendwo ne Übersicht, was es alles für Packages gibt und was die alles können?
Ja, sowas gibt's: den TeX-Katalog (http://www.ctan.org/tex-archive/help/Catalogue/catalogue.html).

MfG

Askarel
29-02-2008, 14:37
Hallo rais

Das mit den Chaptern hab ich ebenso angepackt wie du das mit den Sections geschildert hast (also die multicols abgeschaltet, dann Chapter, dann wieder Multicols aktivieren) und es funktioniert zumindest so weit, dass mir bis jetzt nichts negatives aufgefallen wär.

Ich hab jetzt nur noch ein Problem, was Minitoc angeht. Irgendwie mag mich das nicht mehr. Ich habs einmal in nem Dokument zum Laufen gebracht und hab jetzt den gleichen Code benutzt, aber nicht mal in nem Minimal-Beispiel will es sich zeigen (obwohls der gleiche Code ist wie in dem Testdokument). Da bin ich grad noch am Rumbasteln. Ich wältz jetzt nochmal die "kleine" Anleitung zu dem Package und wenns dann immer noch nicht funktioniert, müsst ihr wieder dran glauben ;)

Danke schonmal soweit für die nette Hilfe!
Gruß Askarel

Askarel
29-02-2008, 17:52
Also ich hab jetzt durch AUsschlussverfahren rausgefunden, warum mein Minitoc nicht mehr funktioniert. Und zwar daran:


\renewcommand\chapter{\if@openright\cleardoublepag e\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \center \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\def\@schapter#1{\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]%
\else
\@makeschapterhead{#1}%
\@afterheading
\fi}
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \center
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}

Das ist der Befehl aus der Referenz "book" für den Kapiteleintrag. Den hab ich mit nem \renewcommand ein klein wenig modifiziert, damit die Überschrift mittig erscheint, dafür hab ich "raggedright" mit "center" ausgetauscht (mit Dickschrift hervorgehoben).
Damit will Minitoc aber nicht mehr arbeiten. Warum?! Es ist doch immer noch der selbe Befehl!
Oder gibt es eine andere Möglichkeit, die Chapter-Überschriften zu zentrieren? mit \centering oder \begin{center} gehts nicht (was ja auch mehr oder weniger sinn macht, da die Ausrichtung in der Definition steht).

Für Hilfe wär ich sehr dankbar!
Gruß Askarel

rais
29-02-2008, 20:09
Moin moin,


Das ist der Befehl aus der Referenz "book" für den Kapiteleintrag. Den hab ich mit nem \renewcommand ein klein wenig modifiziert, damit die Überschrift mittig erscheint, dafür hab ich "raggedright" mit "center" ausgetauscht (mit Dickschrift hervorgehoben).
Damit will Minitoc aber nicht mehr arbeiten. Warum?! Es ist doch immer noch der selbe Befehl!

ist Dir schon in den Sinn gekommen, daß das minitoc-Paket an einem dieser Befehle vielleicht selbst Erweiterungen vorgenommen haben könnte, die Du durch die Redefinition zunichte machst, weil Du nur in book.cls nachgesehen hast?
\@chapter wird z. B. auch von minitoc verändert -- und Du setzt \@chapter auf die Definition aus book.cls zurück ... OTOH brauchst Du weder \chapter noch \@chapter zu verändern; es reicht doch, wenn Du \@makechaperhead und \@makeschapterhead modifizierst.;-)
Schau mal:


\renewcommand\chapter{\if@openright\cleardoublepag e\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
weiter geht Deine Redefinition von \chapter nich' -- die kannst Du schonmal weglassen, und zumindest den \def\@chapter[#1]#2{..} mußt Du weglassen oder um die Erweiterung aus minitoc.sty entsprechend anpassen.;)

MfG

Askarel
29-02-2008, 23:36
Genial rais!

So funktioniert das jetzt! Ich hab gedacht, dass die def's zu dem renewcommand zwingend mit dazugehören (bzw. andersrum). Wie oben schon erwähnt, das war das erste Mal, dass ich an sowas rumgefroscht hab ;)

Und hier jetzt noch der Minimalbeispiel-Header, für die ganze Sache mit allen hier erarbeiteten Schmankerln:


\documentclass[oneside,german]{book}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setcounter{secnumdepth}{-2}
\setcounter{tocdepth}{0}

\makeatletter

\usepackage{multicol}
\usepackage{minitoc}

\mtcsetdepth{minitoc}{1}

\newcommand{\abschnitt}[1]{\end{multicols}\begin{center}\section{#1}\end{cen ter}\begin{multicols}{2}}
\newcommand{\kapitel}[1]{\end{multicols}\chapter{#1}\minitoc\newpage\begin {multicols}{2}}

\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \center \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \center
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}

\usepackage{babel}
\makeatother

\begin{document}
\dominitoc


\part{Titel}

\tableofcontents{}

\begin{multicols}{2}


\kapitel{Beispielkapitel}

\abschnitt{Beispielabschnitt}

\subsection{Beispielunterabschnitt}

\end{multicols}


\end{document}


Und in der Anlage hab ich noch ein PDF mit Platzhaltertext erzeugt, damit man auch sieht, wie das ganze aussehen soll.


Vielen Dank für die umfangreiche und nette Hilfe!
Gruß Askarel