2009-08-31 566 views
23

¿Cómo eliminar una página en blanco que se agrega automáticamente después de \ part {} o \ chapter {} en una clase de documento de libro?LaTeX: eliminar la página en blanco después de part o capítulo

Necesito agregar un breve texto que describa la \ parte. Agregando un poco de texto después de los resultados del comando parte en al menos 3 páginas con una página en blanco entre el epígrafe parte y el texto:

  1. parte XX
  2. (vacío)
  3. un texto

¿Cómo deshacerse de esa página vacía?

P.S. Latex: How to remove blank pages coming between two chapters IN Appendix? es similar pero cambia el comportamiento del resto del texto, mientras que solo necesito eliminar la página vacía para este comando one \ part.

Respuesta

11

Una solución que funciona:

Envuelva la parte del documento que necesita este comportamiento modificado con el código proporcionado a continuación . En mi caso, la parte a envolver es una \ parte {} y algo de texto a continuación.

\makeatletter\@openrightfalse 
\part{Whatever} 

Some text 

\chapter{Foo} 
\@openrighttrue\makeatother 

La parte ajustada también debe incluir el capítulo al principio del cual este comportamiento debe detenerse. De lo contrario, LaTeX puede generar una página vacía antes de este capítulo.

Fuente: gente en el canal de IRC en irc.freenode.net #latex

+0

ah ... ya veo. ¿Fue este el primer comando \ parte en su documento? Probé una variación de mi respuesta anterior incaed en \ makeletter & \ makeother en el preámbulo, y funcionó para todo menos para la primera sección. – Mica

+1

no, es la segunda parte de los tres. tanto la primera como la tercera parte permanecen como estaban, sin afectarse. o ¿está diciendo que esta solución no funcionaría si tuviera que modificar la 1 ª parte? – CaptSolo

+1

Brillante, mi "respuesta del mes" :) – Ingo

1

Creo que en la clase de libro, todos los \ part y \ chapter están configurados para comenzar en una página recta.

de book.cls:

\newcommand\part{% 
    \[email protected] 
    \cleardoublepage 
    \else 
    \clearpage 
    \fi 
    \thispagestyle{plain}% 
    \[email protected] 
    \onecolumn 
    \@tempswatrue 
    \else 
    \@tempswafalse 
    \fi 
    \null\vfil 
    \secdef\@part\@spart} 

usted debería ser capaz de renovar ese comando, y algo similar para la \ capítulo.

+1

Intenté su sugerencia reemplazando el bloque \ if @ openright con \ clearpage (ya que sé que @openright no está definido) pero no funcionó - \ part {} s después de que esta definición se convirtiera en basura. Gracias por la sugerencia, parece un buen camino a seguir. ¿Podría sugerir cómo hacerlo funcionar? – CaptSolo

+0

si tiene algo como \ documentclass [12pt, twoside] {book}, cambie twoside al lado. eso lo hizo por mí, y alguien me corrige si me equivoco, pero creo que lo único que cambiará aparte de la \ cleardoublepage serían los márgenes, que es una diferencia que descubrí que a nadie le importa. – Mica

+2

Eso no respondería a mi pregunta sobre cómo cambiar el comportamiento localmente, para una instancia individual de \ part {} y no para todo el documento. Sin embargo, ahora tengo la solución. Lo publicaremos a continuación. – CaptSolo

8

Usted no dice qué clase está utilizando, pero supongo que es la estándar book. En cuyo caso, la eliminación de la página es una característica de la clase que puede anular como Mica suggests, o resuelva cambiando a otra clase. La clase estándar report es similar a book, o the memoir class es una book mejorada y es muy flexible.

+0

no estoy seguro de si quiere cambiar las clases de documentos, pero también recomiendo la clase de memorias, me ha resultado bastante fácil controlar la mayoría de los aspectos del diseño con ella, la documentación es excelente y va * muy * profunda. – Mica

+1

soy cauteloso con el cambio de clases de documento ya que necesito centrarme en escribir en este momento y no explorar LaTeX. pero si cambiar a memoria es sin problemas, podría tratar de hacerlo. – CaptSolo

32

Creo que simplemente puede agregar la opción oneside la clase de libro?

es decir

\documentclass[oneside]{book} 

Aunque no he probado que :)

+1

Necesito esta modificación localmente, solo para una declaración \ part {} solamente. – CaptSolo

+0

Esto me ayudó, muchas gracias :) – danr

+0

Y a mí, gracias dudeeeee: D – Kemo

6

Aunque supongo que no necesitan una respuesta por más tiempo, estoy dando la solución para aquellos que vendrán para ver este post.

obtenidos por medios book.cls

\def\@endpart{\vfil\newpage 
       \[email protected] 
       \null 
       \thispagestyle{empty}% 
       \newpage 
       \fi 
       \[email protected] 
       \twocolumn 
       \fi} 

Es "\ newpage" en la primera línea de este fragmento que añade una página en blanco redundante después de la página parte de cabecera. Entonces debes redefinir el comando \ @endpart.Agregue el siguiente fragmento al comienzo de su archivo tex.

\makeatletter 
\renewcommand\@endpart{\vfil 
       \[email protected] 
       \null 
       \thispagestyle{empty}% 
       \newpage 
       \fi 
       \[email protected] 
       \twocolumn 
       \fi} 
\makeatother 
+0

Esto no afecta mi documento, algo parece faltar aquí. – Zelphir

-4

Sé que es un poco tarde, pero me encontré con este post y quería mencionar que yo no veo manera que todo el mundo quiere hacerlo de una manera difícil ... El problema aquí es solo que la clase de libro toma dos en dos por defecto, así que, como dijo gromgull, simplemente pasa un lado como argumento y está resuelto.

+4

La pregunta era cómo hacer esto para una parte o capítulo en particular, dejando el resto del documento en dos lados como lo hacía antes. – CaptSolo

23

Deja páginas en blanco para que una nueva parte o capítulo comience en el lado derecho. Puede solucionarlo con la opción "abrir" para la clase de documento. ;)

+1

La solución más fácil de trabajar y probablemente la mejor para esta pregunta. Gracias. – Zelphir

+0

Esto funcionó para mí ya que '[oneside]' también cambió mis encabezados y márgenes, mientras que este no. – dantiston

Cuestiones relacionadas