podział strony w przecenach podczas tworzenia PDF

85

Tworzę plik tekstowy z przecenami w formacie PDF przy użyciu doxygen (1.8.6). Teraz chcę uzyskać podział strony na określonym etapie w pliku przecen, użyłem tego linku .

W podanym odsyłaczu wspomnieli o użyciu znaku „>” do podziału wiersza. Ale nie wspomnieli o podziale strony. Tak, mogę również użyć znaku „>” do podziału strony, ale muszę napisać ten symbol 5 lub więcej razy w pliku tekstowym znaczników, co sprawia, że ​​plik znaczników wygląda dziwnie. Czy są jakieś inne sposoby uzyskiwania podziałów stron w plikach Markdown?

user2760375
źródło
1
Czy próbowałeś / aś kodu takiego jak: Moja strona główna {#mainpage} ============ To jest tekst na pierwszej stronie \ latexonly \ newpage \ endlatexonly To jest tekst na drugiej stronie
Albert
@albert Nie znalazłem żadnego słowa kluczowego strony
głównej
1
Podany przeze mnie przykład generuje stronę główną składającą się z 2 stron. Ważną częścią dla ciebie byłoby \ latexonly .... \ endlatexonly. Kiedy umieścisz mój przykład w pliku (np. Aa.md), możesz zobaczyć 2 strony, kiedy wygenerowałeś dane wyjściowe Latex.
Albert
@albert yeah teraz dostałem to wcześniej Nie użyłem polecenia latexonly w pliku tekstowym Teraz mam to dzięki
user2760375

Odpowiedzi:

61

Napotkałem to samo i rozwiązałem go, wstawiając

\podział strony

W rzeczywistości jest to polecenie LaTeX, a nie Markdown.

ronencozen
źródło
1
działa to dobrze w przypadku pandoc. wstawia podział strony w lateksowym pliku PDF bez zakłócania renderowania HTML.
joelostblom
2
thx, właśnie tego szukałem :) Działa też w narzędziu R do dziania.
Tetlanesh,
3
Markdown nie obsługuje natywnie Latex, podczas gdy natywnie obsługuje HTML i CSS. Dlatego odpowiedź @ tomodian poniżej ma więcej głosów pozytywnych. To rozwiązanie działa w niektórych przypadkach (szczególnie w R Markdown, jak wspomina Tetlanesh), ale nie we wszystkich. Wybierz odpowiedź tomodiana poniżej ... jest bardziej przenośna.
Mike Williamson,
Ponieważ pytanie OP dotyczy ogólnej obniżki, wydaje mi się, że ta odpowiedź nie zadziała / nie będzie przydatna dla większości ludzi. Odpowiedź @ tomodian jest najlepsza IMO.
Briford Wylie
207

Ponieważ Markdown akceptuje zwykły HTML i CSS, po prostu dodaj tę linię w dowolnym miejscu, w którym chcesz wymusić podział strony.

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

Jeśli edytor Markdown ma problemy z prawidłowym eksportowaniem pliku PDF, najpierw spróbuj wyeksportować jako HTML, a następnie otwórz w przeglądarce i wydrukuj jako PDF.

tomodian
źródło
5
To jest poprawna odpowiedź. Ten rodzaj „hacków” stylu jest prawdopodobnie powodem, dla którego John zaakceptował HTML / CSS
CousinCocaine
3
To jest poprawna odpowiedź. I działa dobrze z odważnymi kulami ognia Markdown
Dimitry K
3
Było to najbardziej przydatne i szeroko obsługiwane rozwiązanie, jakie testowałem.
Beytan Kurt
1
Wpis w3schools w page-break-before mówi: „Uwaga: nie możesz użyć tej właściwości na pustym <div> ani na elementach pozycjonowanych absolutnie”. Użyłbym go, gdyby zadziałał (ale niestety nie w Jupyter).
FutureNerd
1
Używam tego z lalkarzem, działa świetnie. <hr style = "page-break-after: always;" />
generic-user
15

Wiem, że to martwe pytanie, ale znalazłem sposób, który moim zdaniem może być przydatny dla kogoś innego niż ja.

Możesz użyć polecenia \ pagebreak wewnątrz niewidocznego elementu. W ten sposób działa z lateksem i html.

<div style="page-break-after: always; visibility: hidden"> 
\pagebreak 
</div>
Noè Murr
źródło
Dlaczego nie użyć poleceń doxygen, takich jak \htmlonlyprzy <div>itd. I \latexonly´ with \ pagebrak` zamiast tej sztuczki.
Albert
3
ponieważ ta sztuczka jest przenośna poza doxygen i możesz jej używać nawet z pandocem.
Noè Murr
10

Cytaty blokowe a podziały wierszy

>nie jest używany do łamania linii w Markdown. Jest używany do cytatów blokowych. Na przykład następujący kod Markdown

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

staje się

Człowiek zaopatrzony w papier, ołówek i gumę, podlegający surowej dyscyplinie, jest w istocie uniwersalną maszyną.

(To jest cytat z Alana Turinga .)

Zwróć uwagę, jak jest renderowany z żółtym tłem przez Stack Overflow. Jeśli zbadasz wygenerowane znaczniki, znajdziesz<blockquote> używane znaczniki.

Podziały wiersza można zwykle wstawiać, kończąc wiersz dwoma lub więcej spacjami (składnia Markdown) lub używając <br>znaczników surowych (większość procesorów Markdown pozwala na wbudowany HTML). Na przykład (używając do reprezentowania spacji), ten Markdown

123 Fake Street␣␣
Springfield, USA

staje się

123 Fake Street
Springfield, Stany Zjednoczone

Strony są łamane

Ponieważ oryginalna specyfikacja Markdown została zaprojektowana dla wyjścia HTML (który nie zawiera koncepcji stron), nie ma obsługi podziałów stron.

Doxygen używa LaTeX do generowania plików PDF . Wygląda na to, że nie obsługuje wbudowanego LaTeX¹, ale powinieneś być w stanie zmodyfikować .texplik pośredni , a następnie użyć go pdflatexdo wygenerowania pliku PDF:

  1. Użyj Doxygen, aby wygenerować .texplik
  2. Edytuj .texplik ręcznie, dodając w \newpagedowolnym miejscu podziału stron
  3. Biegać pdflatex documentation.tex
  4. Zbadać documentation.pdf

To pytanie może być użytecznym odniesieniem dla kroku 3 powyżej.

¹ Doxygen obsługuje wbudowane formuły LaTeX , ale nie udało mi się znaleźć żadnej wzmianki o dowolnych wbudowanych poleceniach LaTeX, takich jak te, \newpagektóre działają w środowisku tekstowym.

Chris
źródło
Hej Na początku przeszedłem przez podejście do pliku .tex, chociaż i tak chciałem użyć czystego podejścia przecenowego do generowania plików PDF i tak, wypróbowałem także \ newpage, ale to nie zadziałało.
user2760375
1
Nie ma czystego podejścia do Markdown, ponieważ Markdown nie zawiera składni dla podziałów stron. Chociaż istnieje wiele rozszerzeń Markdown, nie znam żadnego, które dodaje obsługę podziałów stron. Możesz spróbować czegoś takiego jak Pandoc, który obsługuje wbudowany LaTeX , ale wyobrażam sobie, że używasz Doxygen ze względu na jego zdolność do wyodrębniania bloków dokumentacji z kodu źródłowego, czego Pandoc nie robi. Może się mylę ...
Chris
4

Chociaż te odpowiedzi działają - w pewnym sensie łamią jeden z celów Markdown (MD), który ma być bardzo czytelny jako prosty dokument tekstowy, a także można go sformatować w bardziej bogate prezentacje.

Jak tylko zaczniesz osadzać sporo HTML / CSS w tekście, tracisz pierwszy aspekt MD. Równie dobrze możesz użyć Word, Libre, HTML / CSS itp.

Myślę, że MD zrobiłby dobrze, gdyby dodał sekwencję podziału strony. Coś jak: <<<<>>>>lub podobne do operatorów formatowania. Używam tego w moim tekście MD. Nie powoduje przerwania strony w konwerterach PDF lub HTML, ale jest rozpoznawalny zarówno w tych formularzach, jak i zwykłym tekstem.

Ed S
źródło
3

Ostatnim rozwiązaniem jest ręczna edycja danych wyjściowych HTML w celu renderowania do formatu PDF zgodnie z potrzebami.

Tomas Romero
źródło