2010-05-13 3 views
5

Ich verwende das exercise Paket, um Übungen in einem Buch anzuzeigen. Ich habe einige Befehle wie folgt neu definiert, die im Grunde etwas Platz hinzufügt, einen Bleistift und zwei hrule die vor und nach der Übung:eine Umgebung über Seiten brechen - die clevere Art

\renewcommand{\ExerciseHeader}{\vskip 1em\hrule\vskip 1em\centerline{\textbf{\large\smallpencil 
\ExerciseHeaderNB\ExerciseHeaderTitle% 
\ExerciseHeaderDifficulty\ExerciseHeaderOrigin\medskip}}} 
\makeatletter\def\endExerciseEnv{\termineliste{1}\@EndExeBox\vskip .5em\hrule\vskip 1em}\makeatother 

Jetzt das funktioniert, aber es gibt ein kleines Problem:

Es gibt Situationen, wo sich nur die \ hrule am Ende einer Seite befindet, und der Rest der Übung geht weiter auf der nächsten Seite. Es gibt auch das umgekehrte Verhalten: Die gesamte Übung befindet sich auf einer Seite, mit Ausnahme der \ hrule in "endExerciseEnv", die auf die nächste Seite geleert wird.

Meine Frage ist:

Wie die Spitze zu zwingen hrule kommen

  • entweder zusammen mit dem Header der Übung (Titel, Titel, was nicht) und zumindest 5em sagen oder so von "Übungstext" (so sieht es nicht hässlich aus),
  • ODER mit der gesamten Übung zusammen gespült werden?

ähnliche Frage nach unten hrule: Wie es mindestens 5 em von „Übung Text“ vor ihm auf der sichtbaren Seite zu zwingen, wo das hrule es geht? (oder der Anfang der Trainingsumgebung, je nachdem, was zuerst eintritt - wie es der Fall ist, wenn die Umgebung nicht höher als 5 em ist)

Jeder LaTeX-Guru, der das weiß?

Nachtrag

Ich habe in den letzten LaTeX Fragen wie diese gefragt, und ich habe Antworten bekommt, die mich erforderlich Sachen manuell zu tun, wie „legen Sie eine \ vskip hier und da“ oder so. Lassen Sie mich klar sein: Dies ist ein Buch, es gibt viele Übungen, und ich brauche es "automatisch" getan werden, indem die richtige Art und Weise der Neudefinition Befehle & co.

+0

Im Allgemeinen, wenn Sie eine Antwort zu bekommen, wie es manuell zu tun, haben Sie die Möglichkeit, das Ergebnis nach oben Einwickeln in '\ newenvironment' oder ähnlichem. Wenn das Ergebnis mehr als eine einfache Beschwörungsformel ist, dann gibt es etwas, das gesagt werden kann, um es zu einem ausgewachsenen Erweiterungspaket zu machen. Suche auf "LaTeX für Klassen- und Paketschreiber". Natürlich ist es besser, wenn jemand die Arbeit für Sie erledigt hat. Dorthin kommen viele der CTAN-Pakete ... – dmckee

Antwort

2

TeX Seitenumbruch vor jedem Kleber einsetzen kann, zum Beispiel \vskip 1em.

Nehmen Sie einige Änderungen:

1) Sie schreiben \vskip 1em\hrule\vskip 1em es ersetzen mit

\vskip 1em\hrule \nobreak \vskip 1em 

2) Sie schreiben \vskip .5em\hrule\vskip 1em es ersetzen mit

\nobreak\vskip .5em\hrule\vskip 1em 

Sie können auch \goodbreak einsetzen zu zeige guten Punkt, um die Seite zu brechen. Dieser gute Punkt kann vor und nach Ihrer Übung eingefügt werden.

1) \goodbreak\vskip 1em\hrule \nobreak \vskip 1em

2) \nobreak\vskip .5em\hrule \goodbreak \vskip 1em

+0

Danke. Ich habe es noch nicht getestet, aber es sieht gut aus. – Flavius

Verwandte Themen