розрив сторінки при зменшенні розміру під час створення PDF


84

Я створюю PDF-файл текстового файлу розмітки, використовуючи doxygen (1.8.6). Тепер я хочу отримати розрив сторінки на певному етапі у файлі розмітки, я використав це посилання .

У даному посиланні вони згадали використовувати '>' для розриву рядка. Але вони не згадували про розрив сторінки. Так, я можу використовувати '>' і для розриву сторінки, але мені доводиться писати цей символ 5 і більше разів у текстовому файлі розмітки, і це робить файл розмітки дивним виглядом. Чи існують інші способи отримання розривів сторінок у файлах розмітки?


1
Чи проходили ви такий код: Моя головна сторінка {#mainpage} ============ Це текст на першій сторінці \ latexonly \ newpage \ endlatexonly Це текст на другій сторінці
Альберт

@albert Я не знайшов жодного ключового слова на
головній сторінці

1
Приклад, який я подав, генерує головну сторінку, що складається з 2 сторінок. Важливою частиною для вас буде \ latexonly .... \ endlatexonly. Коли ви поміщаєте мій приклад у файл (наприклад, aa.md), ви можете побачити 2 сторінки, коли ви генерували вивід латексу.
Альберт

@albert та тепер я отримав його раніше я не використовував latexonly команду в текстовому файлі .Тепер я отримав його спасибі
user2760375

Відповіді:


60

Я зіткнувся з тим самим і вирішував це, вставляючи

\ розрив сторінки

Насправді це команда LaTeX, а не команда Markdown.


1
це добре працює з pandoc. вставляє розрив сторінки в латексний pdf, не втручаючись у HTML-візуалізацію.
joelostblom

2
thx, я просто шукав це :) Це працює і в інструменті в'язання R.
Тетланеш

3
Markdown не підтримує латекс, тоді як він підтримує HTML і CSS. Ось чому відповідь @ tomodian нижче має більше голосів. Це рішення працює в деяких випадках (особливо в R Markdown, як згадує Тетланеш), ​​але не у всіх. Виберіть відповідь tomodian нижче ... вона більш портативна.
Mike Williamson,

Оскільки питання OP стосується загальної націнки, я вважаю, що ця відповідь не буде працювати / буде корисною для більшості людей. Відповідь @ tomodian - найкращий IMO.
Briford Wylie

200

Оскільки Markdown приймає звичайні HTML і CSS, просто додайте цей рядок туди, куди ви хочете примусити розбити сторінку.

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

Якщо у вашому редакторі Markdown виникають проблеми з правильним експортом PDF, спочатку спробуйте експортувати як HTML, а потім відкрийте за допомогою браузера та роздрукуйте як PDF.


5
Це правильна відповідь. Ймовірно, саме через цей тип «хаків» Джон прийняв HTML / CSS
CousinCocaine

3
Це правильна відповідь. І це добре працює зі сміливими вогняними кулями Markdown
Dimitry K

3
Це найбільш застосовне та широко підтримуване рішення, яке я тестував.
Бейтан Курт,

1
Запис w3schools на сторінці break-before говорить: "Примітка: Ви не можете використовувати цю властивість на порожньому <div> або на абсолютно розташованих елементах." Я б використав його, якби це спрацювало (але, на жаль, не у Юпітера).)
FutureNerd

14

Я знаю, що це мертве питання, але я знайшов спосіб, який, на мою думку, може бути корисним для інших, крім мене.

Ви можете використовувати команду \ pagebreak всередині невидимого елемента. Таким чином, це працює з латексом та з html.

<div style="page-break-after: always; visibility: hidden"> 
\pagebreak 
</div>

Чому б не використати команди doxygen, наприклад, \htmlonlyз <div>т. Д. Та \latexonly´ with \ pagebrak`, замість цього фокусу.
Альберт

3
тому що цей трюк є портативним за межами кисню, і ви можете використовувати його навіть з pandoc.
Ное Мурр

10

Блок-цитати проти розривів рядків

>не використовується для розривів рядків у Markdown. Він використовується для цитат. Наприклад, такий код знижки

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

стає

Людина, забезпечена папером, олівцем і гумою і підлягає суворій дисципліні, насправді є універсальною машиною.

(Це цитата з Алана Тьюрінга .)

Зверніть увагу, як він відображається на жовтому фоні за допомогою Stack Overflow. Якщо ви вивчите сформовану розмітку, ви знайдете <blockquote>теги, які використовуються.

Розриви рядків зазвичай можна вставити, закінчуючи рядок двома або більше пробілами (синтаксис Markdown) або за допомогою необроблених <br>тегів (більшість процесорів Markdown дозволяють вбудований HTML). Наприклад (використовується для представлення пробілу), це Markdown

123 Fake Street␣␣
Springfield, USA

стає

123 Fake Street
Springfield, США

Розриви сторінок

Оскільки оригінальна специфікація Markdown була розроблена для виведення HTML (що не має поняття сторінок), розриви сторінок не підтримуються.

Doxygen використовує LaTeX для створення своїх PDF-файлів . Здається, він не підтримує вбудований LaTeX¹, але ви повинні мати можливість змінити проміжний .texфайл, а потім використовувати pdflatexдля створення PDF-файлу:

  1. Використовуйте Doxygen для створення .texфайлу
  2. Редагуйте .texфайл вручну, додайте, \newpageде хочете розриви сторінок
  3. Біжи pdflatex documentation.tex
  4. Вивчити documentation.pdf

Це питання може бути корисним посиланням для кроку 3 вище.

¹Doxygen дійсно підтримує вбудовані формули LaTeX , але мені не вдалося знайти жодної згадки про довільні вбудовані команди LaTeX, подібні тим, \newpageщо діють у текстовому середовищі.


Привіт, спочатку я пройшов підхід до файлових файлів .tex, хоча я хотів використовувати підхід чистої розмітки для генерації PDF, і так, я також спробував \ newpage, але це не спрацювало.
user2760375

1
Не існує чистого підходу Markdown, оскільки Markdown не включає синтаксис для розривів сторінок. Хоча існує багато розширень Markdown, я не знаю жодного, що додає підтримку розривів сторінок. Ви можете спробувати щось на зразок Pandoc, який підтримує вбудований LaTeX , але, я думаю, ви використовуєте Doxygen для його здатності витягувати блоки документації з вихідного коду, чого Pandoc не робить. Можливо, я помиляюся в цьому ...
Кріс,

4

Хоча ці відповіді працюють - вони якось порушують одну з цілей Markdown (MD), яка має бути дуже читабельною як прямий текстовий документ, а також мати можливість форматування в більш насичені презентації.

Як тільки ви починаєте вбудовувати купу HTML / CSS в текст, ви втрачаєте перший аспект MD. Ви також можете використовувати Word, Libre, HTML / CSS тощо.

Я думаю, доктору медицини було б добре додати послідовність розриву сторінки. Щось на зразок: <<<<>>>>або подібне до операторів форматування. Я використовую це у своєму тексті доктора медицини. Це не спричиняє розриву сторінки у конвертерах PDF або HTML, але його можна розпізнати як у цих, так і у звичайному текстових формах.


3

Останнім засобом є ручне редагування вихідних даних HTML для відтворення в PDF як завгодно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.