PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seitenumbruch nach marginpar verhindern



cbuilder
30-11-2009, 22:17
Ich versuche gerade, per \nopagebreak[4] zu verhindern, dass LaTeX nach einem \marginpar einen Seitenumbruch produziert.

So sehen meine Makros aus:

\newcommand{\chapter@after}{}

\let\chapter@old\chapter
\newcommand{\chapter@my}[1]{\chapter@old{#1} \chapter@after \renewcommand{\chapter@after}{}}
\newcommand{\chapter@mystar}[1]{\chapter@old*{#1} \chapter@after \renewcommand{\chapter@after}{}}
\renewcommand{\chapter}{\@ifstar \chapter@mystar \chapter@my}

\newcommand{\marginnote}[1]{\marginpar{\raggedright
#1\par}}
\newcommand{\lecture@title}[1]{
\phantomsection
\addcontentsline{lec}{lectures}{#1}
\marginnote{\sffamily\footnotesize\color{blue} Vorlesung #1}
}

\newcommand{\lecture@after}[1]{\renewcommand{\chapter@after}{\lecture@title{#1}} }

\newcommand{\lecture}[1]{
\@ifnextchar\chapter
{\lecture@after{#1}}
{\lecture@title{#1}\nopagebreak[4]}
}
(\chapter habe ich umdefiniert, damit der marginpar erst danach erscheint)

Am Anfang jeder LaTeX-Datei steht grundsätzlich \lecture{...}, dann geht der eigentliche Text los. Gibt es eine Möglichkeit, den Seitenumbruch ganz zu verhindern?

u_fischer
01-12-2009, 12:47
\marginpar ist eine Float, eine Gleitumgebung, und provoziert eigentlich keine Seitenumbrüche. Abgesehen von sieht dein Code ziemlich wirr aus. Was z.B. soll das \@ifnextchar\chapter?

cbuilder
01-12-2009, 13:06
Jede einzelne Datei beginnt mit \lecture{...}. Danach folgt i. d. R. eine Gliederungseinheit, z. B. section. Manchmal folgt aber chapter, welcher einen Seitenumbruch durchführt. Dann hätte man den \marginpar auf der vorherigen Seite, dann Seitenumbruch, dann die Kapitel-Überschrift. Also habe ich \chapter dahingehend umdefiniert, dass der \marginpar danach ausgegeben wird, wenn direkt vorher \lecture steht. Andernfalls soll der \marginpar dort ausgegeben werden, wo \lecture notiert wurde.

cbuilder
07-12-2009, 08:35
Problem ist jetzt gelöst. Nach ewigem Probieren habe ich herausgefunden, dass \pagebreak[3] in Kombination mit \nopagebreak das gewünschte liefert.