Seitenumbruch beim Markdown beim Erstellen von PDF

84

Ich erstelle ein PDF mit einer Markdown-Textdatei mit doxygen (1.8.6). Jetzt möchte ich einen Seitenumbruch zu einem bestimmten Zeitpunkt in der Markdown-Datei erhalten. Ich habe diesen Link verwendet .

In dem angegebenen Link haben sie erwähnt, dass '>' für Zeilenumbrüche verwendet werden soll. Aber sie haben nicht über Seitenumbruch erwähnt. Ja, ich kann '>' auch für Seitenumbrüche verwenden, aber ich muss dieses Symbol 5 oder mehr Mal in eine Markdown-Textdatei schreiben, wodurch die Markdown-Datei seltsam aussieht. Gibt es andere Möglichkeiten, um Seitenumbrüche in Markdown-Dateien zu erhalten?

user2760375
quelle
1
Hatten Sie einen Code wie: Meine Hauptseite {#mainpage} ============ Dies ist der Text auf der ersten Seite \ latexonly \ newpage \ endlatexonly Dies ist der Text auf der zweiten Seite
Albert
@ Albert Ich habe kein Hauptseiten-Schlüsselwort im Latex-Ordner gefunden
user2760375
1
Das Beispiel, das ich gegeben habe, erzeugt eine Hauptseite, die aus 2 Seiten besteht. Der wichtige Teil für Sie wäre \ latexonly .... \ endlatexonly. Wenn Sie mein Beispiel in eine Datei (z. B. aa.md) einfügen, sehen Sie die beiden Seiten, als Sie die Latexausgabe generiert haben.
Albert
@ Albert ja, jetzt habe ich es früher bekommen. Ich habe den latexonly-Befehl in der Textdatei nicht verwendet. Jetzt habe ich es bekommen, danke
user2760375

Antworten:

60

Ich bin auf dasselbe gestoßen und habe es durch Einfügen gelöst

\Seitenumbruch

Es ist eigentlich ein LaTeX-Befehl und kein Markdown-Befehl.

ronencozen
quelle
1
Das funktioniert gut mit Pandoc. Fügt einen Seitenumbruch in das Latex-PDF ein, ohne das HTML-Rendering zu beeinträchtigen.
Joelostblom
2
thx, ich habe nur danach gesucht :) Es funktioniert auch in Rs Strickwerkzeug.
Tetlanesh
3
Markdown unterstützt Latex nicht nativ, während HTML und CSS nativ unterstützt werden. Aus diesem Grund hat die Antwort von @ tomodian unten mehr Stimmen. Diese Lösung funktioniert in einigen Fällen (insbesondere in R Markdown, wie Tetlanesh erwähnt), aber nicht in allen. Wählen Sie unten die Antwort von Tomodian ... es ist tragbarer.
Mike Williamson
Da es sich bei der OP-Frage um einen allgemeinen Abschlag handelt, denke ich, dass diese Antwort für die meisten Leute nicht funktioniert / nützlich ist. @ tomodians Antwort ist die beste IMO.
Briford Wylie
200

Da Markdown einfaches HTML und CSS akzeptiert, fügen Sie diese Zeile einfach überall dort hinzu, wo Sie einen Seitenumbruch erzwingen möchten.

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

Wenn Ihr Markdown-Editor Probleme beim korrekten Exportieren von PDF hat, versuchen Sie zunächst, als HTML zu exportieren, öffnen Sie es dann mit Ihrem Browser und drucken Sie es als PDF.

Tomodian
quelle
5
Dies ist die richtige Antwort. Diese Art von Stil "Hacks" ist wahrscheinlich der Grund, warum John HTML / CSS
CousinCocaine
3
Dies ist die richtige Antwort. Und es funktioniert mit gewagten Feuerbällen Markdown gut
Dimitry K
3
Dies war die anwendbarste und am weitesten verbreitete Lösung, die ich getestet habe.
Beytan Kurt
1
Der Eintrag "w3schools" bei "break-before" lautet: "Hinweis: Sie können diese Eigenschaft nicht für leere <div> oder absolut positionierte Elemente verwenden." Ich würde es verwenden, wenn es funktionieren würde (aber leider nicht in Jupyter).)
FutureNerd
14

Ich weiß, dass dies eine tote Frage ist, aber ich habe einen Weg gefunden, der meiner Meinung nach für andere als mich nützlich sein kann.

Sie können den Befehl \ pagebreak in einem unsichtbaren Element verwenden. Auf diese Weise funktioniert es mit Latex und mit HTML.

<div style="page-break-after: always; visibility: hidden"> 
\pagebreak 
</div>
Noè Murr
quelle
Warum nicht doxygen Befehle wie verwenden \htmlonlymit dem <div>usw. und \latexonly´ with \ pagebrak` anstelle dieser Trick.
Albert
3
weil dieser Trick außerhalb von Sauerstoff tragbar ist und Sie ihn sogar mit Pandoc verwenden können.
Noè Murr
10

Blockzitate gegen Zeilenumbrüche

>wird nicht für Zeilenumbrüche in Markdown verwendet. Es wird für Blockzitate verwendet. Zum Beispiel der folgende Markdown-Code

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

wird

Ein Mann, der mit Papier, Bleistift und Gummi versehen ist und strenger Disziplin unterliegt, ist praktisch eine universelle Maschine.

(Dies ist ein Zitat von Alan Turing .)

Beachten Sie, wie es durch Stapelüberlauf mit gelbem Hintergrund gerendert wird. Wenn Sie das generierte Markup untersuchen, werden <blockquote>Tags verwendet, die verwendet werden.

Zeilenumbrüche können normalerweise eingefügt werden, indem eine Zeile mit zwei oder mehr Leerzeichen beendet wird (Markdown-Syntax) oder wenn Roh- <br>Tags verwendet werden (die meisten Markdown-Prozessoren erlauben Inline-HTML). Zum Beispiel (mit zur Darstellung eines Leerzeichens) dieser Markdown

123 Fake Street␣␣
Springfield, USA

wird

123 Fake Street
Springfield, USA

Seitenumbrüche

Da die ursprüngliche Spezifikation Markdown für die HTML-Ausgabe (die nicht das Konzept von Seiten hat) entwickelt wurde, werden Seitenumbrüche nicht unterstützt.

Doxygen verwendet LaTeX, um seine PDFs zu generieren . Es scheint Inline-LaTeX¹ nicht zu unterstützen, aber Sie sollten in der Lage sein, die Zwischendatei zu ändern .texund dann pdflatexzum Generieren Ihrer PDF- Datei zu verwenden :

  1. Verwenden Sie Doxygen, um eine .texDatei zu generieren
  2. Bearbeiten Sie die .texDatei manuell und fügen \newpageSie sie hinzu, wo immer Sie Seitenumbrüche wünschen
  3. Lauf pdflatex documentation.tex
  4. Untersuchen documentation.pdf

Diese Frage kann eine nützliche Referenz für Schritt 3 oben sein.

¹Doxygen unterstützt Inline-LaTeX- Formeln , aber ich konnte keine Erwähnung von beliebigen Inline-LaTeX-Befehlen finden \newpage, die in der Textumgebung ausgeführt werden.

Chris
quelle
Hey, anfangs habe ich den .tex-Dateiansatz durchlaufen, obwohl ich sowieso einen reinen Markdown-Ansatz für die PDF-Generierung verwenden wollte, und ja, ich habe auch \ newpage ausprobiert, aber das hat nicht funktioniert.
user2760375
1
Es gibt keinen reinen Markdown-Ansatz, da Markdown keine Syntax für Seitenumbrüche enthält. Obwohl es viele Markdown-Erweiterungen gibt, sind mir keine bekannt, die Seitenumbrüche unterstützen. Sie könnten etwas wie Pandoc ausprobieren, das Inline-LaTeX unterstützt , aber ich kann mir vorstellen, dass Sie Doxygen verwenden, um Dokumentationsblöcke aus dem Quellcode zu extrahieren, was Pandoc nicht tut. Vielleicht irre ich mich ...
Chris
4

Obwohl diese Antworten funktionieren, brechen sie eines der Ziele von Markdown (MD), das als direktes Textdokument gut lesbar sein und in umfangreichere Präsentationen formatiert werden kann.

Sobald Sie eine Reihe von HTML / CSS in den Text einbetten, verlieren Sie den ersten Aspekt von MD. Sie können auch Word, Libre, HTML / CSS usw. verwenden.

Ich denke, MD würde gut daran tun, eine Seitenumbruchsequenz hinzuzufügen. So etwas wie: <<<<>>>>oder ähnlich den Formatierungsoperatoren. Ich benutze das in meinem MD-Text. Es verursacht keinen Seitenumbruch in den PDF- oder HTML-Konvertern, ist jedoch sowohl in diesen als auch in den Klartextformen erkennbar.

Ed S.
quelle
3

Ein letzter Ausweg besteht darin, die HTML-Ausgabe manuell zu bearbeiten, um sie wie gewünscht in PDF zu rendern.

Tomas Romero
quelle