2009-07-30 10 views
96

Mi LaTeX me hace saltos de página después de cada subsección porque mis subsecciones están en archivos separados. Uso el comando \include{file} que agrega un salto de página después de usarlo.Cómo tener ningún salto de página después de LaTeX incluyen en

me gustaría tener ningún salto de página causada por el uso de \include{file}.

¿Cómo puede usted sin salto de página después de la utilización de include -command?

+2

No creo que obtenga saltos de página después de la subsección normalmente. ¿Qué clase de documento estás usando? – Cascabel

+1

¿Podría publicar su encabezado (todo hasta el \ begin {document}) para que podamos ver qué está pasando? –

+7

Use '\ input', de lo contrario use' \ input' o use '\ input'. – egreg

Respuesta

4

El paquete newclude sugerido por Will Robertson es bastante útil para evitar la eliminación. Parece que para que el \includeonly funcione uno debe llamar al paquete inmediatamente después de \documentclass{...}. En el complejo entorno de mi disertación también tuve problemas con las referencias rotas.

Una buena solución, cuando includeonly no se necesita para una versión final, es utilizar incluye sólo en el proyecto de:

\newif\ifdraft\drafttrue 

o

\newif\ifdraft\draftfalse 

\ifdraft 
    \include{...} 
\fi 

\ifdraft 
    \include{file} 
\else 
    \input{file} 
\fi 

La primera línea puede ser fácilmente anexa por un archivo MAKE, para hacer que la producción de borrador o producción sea un objetivo.

\includeonly{file1,file2,...} permite especificar una lista de archivos fuente llamados con \include{file1} (donde file1 es un ejemplo) que se mostrarán en el documento resultante. Los otros no aparecerán, pero se consideran como contadores, etiquetas, tablas de contenido cuando se incluyen los archivos auxiliares correspondientes.

En otras palabras, al usar include y includeonly uno puede mantener el tiempo de compilación corto en un borrador teniendo referencias correctas. Lectura adicional en Wikibooks.

@Will Robertson

\include es tan útil, ya que permite a través \includeonly{...} para construir secciones solamente se necesitan. Al trabajar con texto más largo, puede hacer una gran diferencia en el tiempo de compilación para incluir solo una sección de un capítulo extenso. También es útil de manera invaluable, ya que uno no tiene que pasar página por un borrador largo mientras trabaja en un punto. Por último, los archivos más pequeños del código fuente son más fáciles de manejar en la administración de la versión, p. git.

+0

¿Puede por favor dar un ejemplo de cómo compila solo una sección de un documento de trabajo muy largo? He utilizado estos métodos de la siguiente respuesta en 'pagesel' sobre' \ discardpagesfromhere' y '\ keeppagesfromhere'. Se superponen poco, así que estoy dispuesto a aprender si puedes manejar mejor este proyecto de gestión. http://tex.stackexchange.com/a/267555/13173 –

+1

Si lo entiendo correcto, _pagesel_ es lograr más que _includeonly_ al permitir un control preciso de qué páginas se incluirán en una compilación final. Incluir tiene un alcance mucho menor, que incluye código fuente de una manera que se puede activar y desactivar. – gschenk

2

Gracias, Cambridge!

uso \ include en lugar de \ input, y utilice el comando \ includeonly para seleccionar secciones para procesar

+2

Este no es el mejor consejo. ¿Por qué querrías usar '\ include {...]' para un trabajo cuando '\ input {...}' es el comando real que está intendet para estas situaciones? –

+1

Esta respuesta no parece responder a la pregunta en absoluto. (Aunque de lo contrario es un consejo útil, con una buena referencia.) – jciloa

+0

Esto no responde la pregunta. –

137

\include siempre utiliza \clearpage, un defecto no del todo sensato. Está destinado a capítulos completos, no para subsecciones (¿por qué querría subsecciones en archivos separados, de todos modos?).

Puede solucionarlo ya sea usando \input{filename} o cargando el paquete newclude y escribiendo \include*{filename} en su lugar.

+0

Mi proyecto de base de datos necesita documento de planificación documento "Edificio" para mostrar cómo configurar el sistema. Son secciones en mi archivo LaTeX. –

+6

Puedo pensar en una pila de razones para poner subsecciones en diferentes archivos. Lo primero que se me ocurre es tener un currículum con diferentes niveles de detalle, según el objetivo y/o la solicitud de empleo. Una vez puede cortar fácilmente trozos o poner trozos, con un solo símbolo '%'. –

+8

Ha pasado un tiempo desde que escribí esta respuesta, pero creo que el paréntesis estaba destinado a ser sarcástico ':)' –

24

Puede dejar de saltos de página causadas por \include colocando \let\clearpage\relax antes. Por lo tanto,

\let\clearpage\relax 
\include{file1} 
\include{file2} 
\include{file3} 

pondría el contenido de los tres archivos (y los archivos incluidos posteriormente) juntos sin un salto de página entre ellos. Si desea detener el comando relajante \clearpage, luego envolver los archivos para incluir y sin saltos de página dentro de un grupo como éste:

\begingroup 
\let\clearpage\relax 
\include{file1} 
\include{file2} 
\endgroup 
\include{file3} 

Esto evitará que un salto de página entre archivo1 y archivo2, pero insertar el salto de página normal después de fichero2. (Nota: no sé si esto interfiere con las referencias y la numeración de páginas, aunque me imagino que debería estar bien.)

+1

Gracias! Esta respuesta funciona bien cuando tienes múltiples referencias más Referencias y no quieres una página nueva para ellas. Solo haga un grupo de la última incluye uno y la parte de bibliografía, y ya no es una página clara. –

+1

Manuel tiene razón: puede usar el truco '' \ begingroup \ let \ clearpage \ relax ... \ endgroup'' donde lo desee --- detener el salto de página entre secciones o partes particulares, si quiere que la bibliografía esté activada la misma página que su texto, etc. – John

+1

Esta solución parece haberme causado algunos problemas con las referencias. En un archivo incluido que contenía dos listas enumeradas, las referencias a los elementos de la segunda lista no funcionaron. No tengo idea de por qué debería ser así, pero cambiar a un nuevo problema solucionó el problema. –

Cuestiones relacionadas