Ляво поле на съдържанието на XSL FO Docbook

Използвам Docbook 5 (docbook-xsl-ns), генерирам PDF с Apache FOP и бих искал да преместя целия текст вляво. Как мога да го направя?

Изходният XML е:

<section>
        <title>Usage</title>
        <programlisting>mvn archetype:generate -DarchetypeGroupId=cz.csob.javor -DarchetypeArtifactId=javor-archetypes-subcomponent -DarchetypeVersion=X.Y.Z</programlisting>
        <para>During the subcomponent project generation you will be asked for the following properties:</para>
        <itemizedlist>
            <listitem>
                <para><emphasis>parent-component-id</emphasis> - ID of the parent component, should be the name of the directory the parent component project is placed in</para>
            </listitem>
            <listitem>...

въведете описание на изображението тук

Благодаря.


person Xdg    schedule 21.06.2013    source източник
comment
повечето изяви на нещата в docbook се контролират във файла param.xsl в таблиците със стилове docbook/fo. Разгледайте го, намерете какво трябва да промените и го сменете.   -  person Kevin Brown    schedule 22.06.2013
comment
@Xdg - намери ли решение?   -  person Viacheslav Molokov    schedule 28.06.2013


Отговори (1)


Отстъп на абзаца, добавен от параметър body.start.indent.

Трябва да зададете стойност на този параметър с измерване, тъй като той се използва в други XSLT шаблони за изчисления. Например следващият ред изобщо ще премахне отстъпа на абзаца:

<xsl:param name="body.start.indent">0pt</xsl:param>

Целият слой за персонализиране на XSLT трябва да бъде нещо като:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="1.0">
    <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
    <xsl:param name="body.start.indent">0pt</xsl:param>
</xsl:stylesheet>

Референтна документация за тази тема

Могат да се използват и други опции за отстъп:

  • page.margin.inner - ляво поле на страницата
  • page.margin.outer - дясно поле на страницата

Горно и долно поле (от документацията)

Например следните параметри ще направят това оформление на страницата 3:

<xsl:param name="page.margin.inner">20mm</xsl:param>
<xsl:param name="page.margin.outer">10mm</xsl:param>
<xsl:param name="page.margin.top">12.5mm</xsl:param>
<xsl:param name="page.margin.bottom">15mm</xsl:param>

<xsl:param name="region.before.extent">10mm</xsl:param>
<xsl:param name="region.after.extent">5mm</xsl:param>

<xsl:param name="body.margin.top">15mm</xsl:param>
<xsl:param name="body.margin.bottom">15mm</xsl:param>

Оформление на крайната страница

person Viacheslav Molokov    schedule 28.06.2013
comment
Благодаря @Viacheslav. Това върши наистина добра работа за лявото поле на основния текст. Какво използваме за дясно поле на основния текст? Няма body.stop.indent. (Проблемът ми изглежда е, че не знам как се наричат ​​нещата. body.margin.left и body.margin.right изглеждат най-интуитивни, но са грешни). - person jww; 16.03.2018
comment
Можете да използвате това: ‹xsl:param name=page.margin.inner›20mm‹/xsl:param› ‹xsl:param name=page.margin.outer›10mm‹/xsl:param› - person Viacheslav Molokov; 30.03.2018