Sidebar

Jirka Kosek jirka na kosek.cz
Úterý Červenec 1 17:25:42 CEST 2003


On Tue, 1 Jul 2003, Pavol Vaskovic wrote:

> Takze spravne sa to co chcem vola marginalie (poznamky na okraji 
> stranky). No... zda sa ze nieco take je nad schopnosti XSL FO. Alebo 

Není, jde k tomu použít objekt fo:flow a správné nastavení velikosti 
okrajů.

> Bohuzial vyzaduje aby FO processor podporoval property "float", takze vo 
> FOPe sa to neda pouzit. Otestoval som to v trial verzii XEPu.
> Na odsadenie textu od okraja stranky je namiesto margin pouzity 
> text-indent. Element ktory chcem pouzit ako poznamku za okrajom, 
> umiestnim do float-u, aby som ho vynal z normalneho toku dokumentu (text 
> ho bude obtekat). Jeho sirku obmedzim este tym ze ho vopcham do tabulky, 
> ktora musi mat rozmery okraja.

Vkládání do tabulky není nutné. Následující úpravy stylů vloží obsah
elementů remark a comment jako marginálii:

<xsl:param name="title.margin.left" select="'-5pc'"/>

<xsl:param name="show.comments.as.marginalias" select="1"/>

<xsl:template match="comment|remark">
  <xsl:if test="$show.comments != 0">
    <xsl:choose>
      <xsl:when test="$show.comments.as.marginalias = 1">
        <fo:float float="start">
          <fo:block width="4pc" text-align="end" font-family="Helvetica"
font-size="8pt" font-weight="bold" margin-left="{$title.margin.left}">
            <xsl:call-template name="inline.charseq"/>
          </fo:block>
        </fo:float>
      </xsl:when>
      <xsl:otherwise>
        <fo:block font-style="italic">
          <xsl:call-template name="inline.charseq"/>
        </fo:block>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>

> Toto funguje, ale neviem si dost dobre predstavit ako upravit DocBook 
> XSLT styly, aby to fungovalo... ale hlavny problem je ze mam FOP, takze 
> na cely projekt mi to je aj tak asi na nic...

Ano, FOP toho bohužel dost neumí.

> Druhy napad, ktory sa spomina v mailing listoch je umiestnovat vsetko do 
> tabulky. Ale na urovni zdrojoveho textu DocBooku mi to pripada byt 
> kacirstvo. Ale ako to zariadit v styloch si neviem dobre predstavit...

To se nedělá na úrovni DocBooku, ale až ve stylech. Úprava je dost 
netriviální, okolo celého dokumentu by se musela udělat fo:table, a každý 
blokový objekt by pak vytvořil jednu řádku tabulky se dvěma sloupci. 
Jednodušší by podle mne bylo vzít až FO výstup ze stylů a pro něj si 
napsat již poměrně jednoduchou transofrmaci, která by doplnila tabulku. 

-- 
-----------------------------------------------------------------
  Jirka Kosek
  e-mail: jirka na kosek.cz
  http://www.kosek.cz


Další informace o konferenci Docbook