Niedawno zacząłem stosować przeceny Pandoc, które wydają się dobrą alternatywą dla LaTeX-a, ponieważ mój dokument nie ma wielu formuł matematycznych i nie mam ŻADNEGO doświadczenia z LaTeX, co w połączeniu z mniej niż 2-tygodniowym terminem składania wniosków sprawia, że jest to dobre rozwiązanie.
Jedna rzecz, której nie udało mi się znaleźć, to jak zmusić go do pozostawienia pustej reszty strony. Czy ktoś może pomóc?
Odpowiedzi:
Wygląda na to, że markdown pandoc używa do tego celu standardowych tagów LaTeX:
\newpage
i\pagebreak
źródło
TL; DR : użyj
\newpage
i filtru Lua poniżej, aby uzyskać podziały stron w wielu formatach.Pandoc analizuje wszystkie dane wejściowe do wewnętrznego formatu dokumentu. Ten format nie ma dedykowanego sposobu przedstawiania podziałów stron, ale nadal można zakodować informacje w inny sposób. Jednym ze sposobów jest użycie surowego LaTeXa
\newpage
. Działa to doskonale podczas wyprowadzania LaTeX (lub PDF utworzonego przez LaTeX). Jednak można napotkać problemy podczas kierowania na różne formaty, takie jak HTML lub docx.Prostym rozwiązaniem w przypadku kierowania na inne formaty jest użycie filtru pandoc, który może przekształcić wewnętrzną reprezentację dokumentu tak, aby odpowiadała naszym potrzebom. Pandoc 2.0 i nowsze wersje pozwalają nawet na użycie dołączonego interpretera Lua do wykonania tej transformacji.
Załóżmy, że wskazujemy podziały stron, umieszczając
\newpage
linię otoczoną pustymi liniami, na przykład:\newpage
Będą analizowane jako RawBlock surowców zawierających TeX . Blok zostanie uwzględniony w danych wyjściowych tylko wtedy, gdy format docelowy może zawierać surowy TeX (tj. LaTeX, Markdown, Org itp.).Możemy użyć prostego filtra Lua, aby przetłumaczyć to, gdy celujemy w inny format. Poniższe działa dla docx , LaTeX , epub i lekkich znaczników.
Opublikowaliśmy zaktualizowaną, bardziej funkcjonalną wersję . Jest dostępny z oficjalnego repozytorium pandoc lua- filter .
źródło
\newpage
podziały stron w formacie wyjściowym MS Word pandoc. Aby użyć tego filtra, zapisz kod w tej odpowiedzi np.pagebreak.lua
I wywołaj pandoc z--lua-filter=pagebreak.lua
Zauważyłem, że to nie działa w przypadku formatów .doc i .odt. Rozwiązaniem, które znalazłem, było wstawienie poziomej linii
-----------------
i sformatowanie stylu „poziomej linii”, aby złamać stronę i być niewidocznym za pomocą edytora tekstu (w moim przypadku ibre office)źródło
format the "horizontal line" style to break a page
?hr{opacity:0;page-break-after: always;}
spełnia swoje zadanie. Możesz poświęcić inny element, jeśli chcesz go użyć<hr>
do czegoś innego.nie można edytować odpowiedzi LucasSeveryna, powiedział, że kolejka jest pełna, więc dodaj tutaj trochę informacji.
sposób 1: + raw_tex
\newpage
i\pagebreak
potrzebujęraw_tex
rozszerzenia.// z pandoc 2.9.2.1, nie działa z wyjściem docx lub html, mówi --verbose
sposób 2: + raw_attribute
https://pandoc.org/MANUAL.html#extension-raw_attribute
// również nie obsługuje formatu wejściowego gfm.
// to zadziałało z wyjściem docx, nie działało z wyjściem html.
rozszerzenie UWAGA
to wymaga
+raw_tex
rozszerzenia formatu. który nie obsługuje wszystkich wariantów przecen w pandoc.https://pandoc.org/MANUAL.html#markdown-variants
tak
-f markdown
będzie działać, ale-f gfm
nie działa.rozszerzenie formatu
https://pandoc.org/MANUAL.html#option--from
na przykład
-t html+raw_tex
: wyjście włącz raw_tex-f markdown-raw_tex-raw_attribute
: input wyłącz raw_tex i raw_attributeźródło