[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] custom header table / current sect1 titles in header
On Tue, Oct 14, 2003 at 12:48:21PM +0200, Thomas.Gier@imperia.net wrote: > Hi, > > I have some problems for which I can't find a solution. This amazes me > because my intentions aren't that extraordinary, I think. Maybe a solution > is obvious and I'm just missing it or these issues need a advanced > knowledge which I definitely have not. I'm fairly at a loss ... > > I'm using docbook-xsl version 1.61.3 for FO print output ... > > 1. > I need customizing for header.table. The header of every odd or first page > should look like this: > > ------------------------------------------------ > | | > | Chapter title (bold)| > | Sect1 title (normal)| > ------------------------------------------------ > > The header of every even page should look like this: > > ------------------------------------------------ > | | > | | > |Sect1 title (normal) | > ------------------------------------------------ > > I added another variable (containing a second table) to my customized > version of header.table. The new table finds it's way into the document > but I don't know how to 'address' these new table cells and put the sect1 > header (assumed this can be done at all -> 2.) into the leftmost (resp. > rightmost) cell. It already contains the chapter title as the original > table does but this is to be exchanged by the sect1 title. Which brings me > to my second problem: > > 2. > Is there a way of putting the current sect1 title into the page headers at > all? I can easily put the title of the first section appearing on a page > into the page header using titleabbrev.markup, but I can't do this with > the current sect1 title. All I get is the title of the first section > heading appearing on the current page - this may be sect4 which should not > appear in the page header. > > Both issues together with some minor ones (which I hopefully can handle > with the help of the documentation) get in the way of finishing my > customization layer and thus prevent me from switching back to normal > operational mode which is writing technical documentation. I'm really > eager to start working with the new tool chain :-) ... > > As you can see by the character of my problems I'm a newbie to the whole > thing and I hope anybody understands what I'm talking about at all because > my English is rather poor ... my German is much better :-) ... Yes, this is certainly possible. The 'header.content' template generates the text for each cell in the original page header table. Your new header table should also have a call to that template in each fo:table-cell. The header.content template is like a function call that returns text based on the values of the various parameters it is passed. Each table cell passes a different combination of parameters. The template body is a big choose statement that responds to the parameter values. For an example, see: http://www.sagehill.net/docbookxsl/PrintHeaders.html In particular, see the fo:retrieve-marker used in the example for section titles. It is used to retrieve the marker text placed with each section heading by the 'section.heading' template in fo/sections.xsl. In the current setup, the markers are placed on all section headings, not just sect1. To place the markers only on sect1, you need to customize the section.heading template slightly. Here is the top of that template: <xsl:template name="section.heading"> <xsl:param name="level" select="1"/> <xsl:param name="marker" select="1"/> <xsl:param name="title"/> <xsl:param name="titleabbrev"/> <fo:block xsl:use-attribute-sets="section.title.properties"> <xsl:if test="$marker != 0"> <fo:marker marker-class-name="section.head.marker"> <xsl:choose> <xsl:when test="$titleabbrev = ''"> <xsl:value-of select="$title"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$titleabbrev"/> </xsl:otherwise> </xsl:choose> </fo:marker> </xsl:if> Change this line: <xsl:if test="$marker != 0"> to: <xsl:if test="$marker != 0 and $level = 1"> Then the marker named 'section.head.marker' will be output only for sect1 headings, and the retrieve-marker property will find only markers in sect1 elements to retrieve. -- Bob Stayton 400 Encinal Street Publications Architect Santa Cruz, CA 95060 Technical Publications voice: (831) 427-7796 The SCO Group fax: (831) 429-1887 email: bobs@sco.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]