Мы используем этот XSL-FO для создания записей на странице оглавления:
<fo:block text-align-last="justify">
<xsl:value-of select="@title" />
<fo:leader leader-pattern="dots" />
<fo:page-number-citation ref-id="{@id}" />
</fo:block>
Когда страницы имеют очень длинные заголовки, номер страницы переносится на новую строку. Если заголовок страницы достаточно длинный, чтобы перенести номер страницы на новую строку, но недостаточно, чтобы перейти на новую строку, номер страницы будет выровнен по левому краю, когда он должен быть выровнен по правому краю.
Насколько я могу судить, XML правильный, и это проблема самого XSL-FO. Есть ли способ правильно выровнять все номера страниц, не изменяя ничего в макете?
Обновление:
Спасибо за ответ, Тони Грэм, к сожалению, мне он почему-то не кажется. На линиях, которые должны иметь одну непрерывную выноску, я получил бы два набора точек выноски, разделенных небольшим промежутком, от которого я не мог избавиться. Но это вдохновило меня на это решение, которое работает достаточно хорошо для меня:
<fo:block text-align-last="justify">
<xsl:value-of select="@title" />
<fo:leader leader-pattern="dots" />
<fo:page-number-citation keep-with-previous="always" ref-id="{@id}" />
</fo:block>