salto de página en la rebaja al crear pdf

84

Estoy creando un pdf de archivo de texto de rebajas usando doxygen (1.8.6). Ahora quiero obtener un salto de página en una etapa específica en el archivo de rebajas, utilicé este enlace .

En el enlace dado, han mencionado usar '>' para el salto de línea. Pero no han mencionado el salto de página. Sí, también puedo usar '>' para el salto de página, pero tengo que escribir este símbolo 5 o más veces en el archivo de texto de rebajas y eso hace que el archivo de rebajas tenga un aspecto extraño. ¿Hay otras formas de obtener saltos de página en archivos de rebajas?

usuario2760375
fuente
1
¿Intentó un código como: Mi página principal {#mainpage} ============ Este es el texto de la primera página \ latexonly \ newpage \ endlatexonly Este es el texto de la segunda página
Albert
@albert No encontré ninguna palabra clave de la página principal en la carpeta de látex
user2760375
1
El ejemplo que di genera una página principal que consta de 2 páginas. La parte importante para ti sería \ latexonly .... \ endlatexonly. Cuando coloca mi ejemplo en un archivo (por ejemplo, aa.md), puede ver las 2 páginas cuando generó la salida de látex.
albert
@albert sí, ahora lo obtuve antes No usé el comando latexonly en el archivo de texto. Ahora lo obtuve gracias
user2760375

Respuestas:

60

Me encontré con lo mismo y lo solucioné insertando

\salto de página

En realidad, es un comando LaTeX, en lugar de Markdown.

ronencozen
fuente
1
esto funciona bien con pandoc. inserta un salto de página en el pdf de látex sin interferir con la representación html.
joelostblom
2
gracias, solo estaba buscando eso :) También funciona en la herramienta de tejer de R.
Tetlanesh
3
Markdown no admite Latex de forma nativa, mientras que sí admite HTML y CSS de forma nativa. Es por eso que la respuesta de @ tomodian a continuación tiene más votos positivos. Esta solución funciona en algunos casos (especialmente en R Markdown, como menciona Tetlanesh), pero no en todos. Elija la respuesta de Tomodian a continuación ... es más portátil.
Mike Williamson
Dado que la pregunta de OP es sobre la reducción general, siento que esta respuesta no funcionará / será útil para la mayoría de las personas. La respuesta de @ tomodian es la mejor OMI.
Briford Wylie
200

Dado que Markdown acepta HTML y CSS sin formato, simplemente agregue esta línea donde desee forzar el salto de página.

<div style="page-break-after: always;"></div>

Si su editor de Markdown tiene problemas para exportar PDF correctamente, primero intente exportar como HTML, luego abra con su navegador e imprima como PDF.

tomodian
fuente
5
Esta es la respuesta correcta. Este tipo de 'trucos' de estilo es probablemente la razón por la que John aceptó HTML / CSS
CousinCocaine
3
Esta es la respuesta correcta. Y funciona bien con bolas de fuego atrevidas Markdown
Dimitry K
3
Esta ha sido la solución más aplicable y con más soporte que he probado.
Beytan Kurt
1
La entrada de w3schools en page-break-before dice, "Nota: No puede usar esta propiedad en un <div> vacío o en elementos absolutamente posicionados". Lo usaría si funcionara (pero lamentablemente no en Jupyter).)
FutureNerd
14

Sé que esta es una pregunta muerta, pero he encontrado una forma que creo que puede ser útil para otras personas.

Puede usar el comando \ pagebreak dentro de un elemento invisible. De esta forma trabaja con latex y con html.

<div style="page-break-after: always; visibility: hidden"> 
\pagebreak 
</div>
Noè Murr
fuente
¿Por qué no usar comandos de doxygen como \htmlonlycon el <div>etc. y \latexonly´ with \ pagebrak`, en lugar de este truco?
albert
3
porque este truco es portátil fuera de Doxygen y puedes usarlo incluso con pandoc.
Noè Murr
10

Blockquotes frente a saltos de línea

>no se utiliza para saltos de línea en Markdown. Se usa para blockquotes. Por ejemplo, el siguiente código de Markdown

> A man provided with paper, pencil, and rubber, and
> subject to strict discipline, is in effect a universal machine.

se convierte en

Un hombre provisto de papel, lápiz y goma, y ​​sujeto a una estricta disciplina, es en efecto una máquina universal.

(Esta es una cita de Alan Turing ).

Observe cómo Stack Overflow lo representa con un fondo amarillo. Si examina el marcado generado, encontrará <blockquote>etiquetas que se están utilizando.

Los saltos de línea generalmente se pueden insertar terminando una línea con dos o más espacios (sintaxis de Markdown) o usando <br>etiquetas sin formato (la mayoría de los procesadores de Markdown permiten HTML en línea). Por ejemplo (usando para representar un espacio), este Markdown

123 Fake Street␣␣
Springfield, USA

se convierte en

123 Fake Street
Springfield, Estados Unidos

Saltos de página

Dado que la especificación original Markdown fue diseñada para salida HTML (que no tiene el concepto de páginas) no hay soporte para saltos de página.

Doxygen usa LaTeX para generar sus PDF . No parece ser compatible con LaTeX¹ en línea, pero debería poder modificar el .texarchivo intermedio y luego usarlo pdflatexpara generar su PDF:

  1. Utilice Doxygen para generar un .texarchivo
  2. Edite el .texarchivo, agregue manualmente \newpagedonde desee los saltos de página
  3. correr pdflatex documentation.tex
  4. Examinar documentation.pdf

Esta pregunta puede ser una referencia útil para el paso 3 anterior.

¹Doxygen admite fórmulas LaTeX en línea , pero no pude encontrar ninguna mención de comandos LaTeX en línea arbitrarios como \newpageese que operan en el entorno de texto.

Chris
fuente
Hola, Inicialmente pasé por el enfoque de archivo .tex, aunque de todos modos quería usar un enfoque de reducción de precio puro para la generación de PDF y sí, también probé \ newpage pero eso no funcionó.
user2760375
1
No existe un enfoque de Markdown puro, ya que Markdown no incluye sintaxis para saltos de página. Aunque hay muchas extensiones de Markdown, no conozco ninguna que agregue soporte para saltos de página. Podrías probar algo como Pandoc, que admite LaTeX en línea , pero imagino que estás usando Doxygen por su capacidad para extraer bloques de documentación del código fuente, lo que Pandoc no hace. Tal vez me equivoque en eso ...
Chris
4

Aunque estas respuestas funcionan, en cierto modo rompen uno de los objetivos de Markdown (MD), que es ser muy legible como un documento de texto directo, además de poder formatearlo en presentaciones más ricas.

Tan pronto como comience a incrustar un montón de HTML / CSS en el texto, perderá el primer aspecto de MD. También puede usar Word, Libre, HTML / CSS, etc.

Creo que MD haría bien en agregar una secuencia de salto de página. Algo como: <<<<>>>>o similar a los operadores de formato. Lo uso en mi texto de MD. No causa un salto de página en los convertidores de PDF o HTML, pero es reconocible tanto en esos como en los formularios de texto sin formato.

Ed S
fuente
3

Una solución alternativa de último recurso es editar manualmente la salida HTML para representarla en PDF como desee.

Tomás Romero
fuente