2010-05-13 25 views
5

Estoy usando el paquete exercise para mostrar ejercicios en un libro. He redefinido algunos comandos como este, que básicamente añade un poco de espacio, un lápiz, y dos de hrule antes y después del ejercicio:rompiendo un entorno en todas las páginas: la forma inteligente

\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 

Ahora bien, esto funciona, pero hay un pequeño problema:

hay situaciones donde solo el \ hrule termina estando en la parte inferior de una página, y el resto del ejercicio continúa en la página siguiente. También existe el comportamiento opuesto: el ejercicio completo está en una página, excepto el \ hrule en "endExerciseEnv", que se vacía a la página siguiente.

Mi pregunta es:

de cómo forzar la parte superior hrule llegado

  • bien junto con la cabecera del ejercicio (título, título, lo que no) y por lo menos dicen 5em o menos de "ejercicio de texto" (por lo que no se ve feo),
  • O se enrojeció por completo, con todo el ejercicio?

pregunta similar para la parte inferior hrule: Cómo forzar que tiene al menos 5 em de "Texto del ejercicio" delante de él en la página visible donde el hrule sí va a? (o el comienzo del entorno de ejercicio, lo que ocurra primero, como es el caso si el entorno no es superior a 5em)

¿Algún guru de LaTeX que sepa eso?

Adición

he pedido en el pasado LaTeX preguntas como esta y tengo respuestas que me requieren para hacer cosas manualmente, como "insertar un \ vskip aquí y allá" o algo así. Permítanme ser claro: Este es un libro, hay muchos ejercicios, y NECESITO que se haga "automáticamente", yendo por el camino correcto de volver a definir los comandos & co.

+0

En general, cuando se obtiene una respuesta sobre cómo hacerlo de forma manual, usted tiene la opción de envolver el resultado en '\ newenvironment' o similar. Además, si el resultado es más que un conjuro trivial, hay algo que decir para convertirlo en un paquete completo de extensión. Busque en "LaTeX para escritores de clases y paquetes". Por supuesto, es mejor cuando alguien ha hecho el trabajo por usted. De allí provienen muchos de los paquetes en CTAN ... – dmckee

Respuesta

2

TeX puede insertar salto de página antes de cualquier pegamento, por ejemplo \vskip 1em.

hacer algunos cambios:

1) Usted escribe \vskip 1em\hrule\vskip 1em Reemplazar con

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

2) Usted escribe \vskip .5em\hrule\vskip 1em Reemplazar con

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

También puede insertar \goodbreak a mostrar buen punto para romper la página. Este buen punto se puede insertar antes y después de su ejercicio.

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

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

+0

Gracias. No lo probé todavía, pero se ve bien. – Flavius

Cuestiones relacionadas