2014-10-20 2 views
1

Я создаю документ из DocBook5 с использованием таблиц стилей DocBook-XSL (с тяжелым уровнем настройки). Однако в слишком многих местах страницы заканчиваются на заголовках разделов, которые выглядят очень плохо в печати.DocBook XSL (FO) - Предотвращение страниц, заканчивающихся заголовком элемента

Проблема: я не могу на всю жизнь выяснить, как предотвратить разрывы страниц после заголовков разделов.

Я могу получить его так, чтобы я всегда ломался перед заголовками (решение, которое я отклонил, потому что конечный результат выглядел еще хуже в печати. ​​Хорошо работает для веб-релиза, хотя), но не могу понять, как это сделать только, если это последняя вещь на странице.

Мой DocBook рабочий процесс:.

  1. xmllint принимает источники DocBook 5, проверяет их и сглаживает все это в гигантский файл XML со всеми включает решены и запекают в

  2. saxon принимает вывод от xmllint и объединяет его с doxbook-xsl stylesheets, чтобы выплеснуть массивный файл xsl-fo, который в среднем составляет 2 кБ на линию непрерывной магии.

  3. Полученный xsl-fo затем подается через Apache fop для получения окончательных PDF-файлов.

+0

Есть некоторые (включая меня), которые не знакомы с DocBook, но хорошо знают XSLT и XSL-FO. Можете ли вы включить какой-то код, чтобы мы могли воспроизвести проблему? –

+0

@ MathiasMüller Я мог бы, если бы знал, что вообще будет иметь значение. Было бы трудно воспроизвести его без включения всех таблиц стилей docbook, моего собственного уровня настройки, а также источника для фактического документа. Я мог бы добавить общую схему XML-документа и комментарий, где проблема, но я сомневаюсь, что это было бы полезно для всех. – xles

+0

Я понимаю вашу точку зрения, но потом мне сложно помочь, я боюсь. По крайней мере, скажите, как выглядит заголовок раздела, т. Е. Отображает его код XSL-FO. –

ответ

0

У вас нет кода, поэтому я могу ответить только в самых общих чертах.

Что делать, если вы наложили определенный элемент заголовка раздела? Если они являются блоками,

<fo:block keep-with-next.within-page="always"> 

Читайте об этом в XSL specification.

Смежные вопросы