Hi Aaron,
I can help with some of this.
1. By default, DocBook treats the abstract and other info elements as
part of the titlepage information. Which info elements are actually
expressed in the output is governed by the titlepage spec mechanism,
which is documented here:
http://www.sagehill.net/docbookxsl/HTMLTitlePage.html
Since abstract is treated as part of the titlepage, it is formatted by
the component.titlepage.properties attribute set, which puts it into the
span with the title. So your customization needs to remove it from the
titlepage spec (and rebuild the titlepage templates as described in the
doc), and then add it as part of the content of the article.
The template for article does <xsl:apply-templates/> after the titlepage
and toc stuff. By default the info element is not processed in normal
mode, because it is handled in mode="titlepage mode". So you would need
this template to turn it on for body content in normal mode:
<xsl:template match="d:info">
<xsl:apply-templates select="d:abstract" mode="titlepage.mode"/>
<xsl:apply-templates select="d:keywordset" mode="titlepage.mode"/>
<xsl:apply-templates select="d:subjectset" mode="titlepage.mode"/>
</xsl:template>
The default templates for keywordset and subjectset in that mode are
empty in DocBook XSL, because those are typically handled in a custom
format, if they are output at all. So you will have to write your own
templates to format them.
2. For this author layout, you will need to rewrite the template that
matches on d:author in mode="titlepage.mode". You can copy the original
from fo/titlepage.xsl. You could use fo:list-block, with the author in
the fo:list-item-label and the rest in fo:list-item-body.
3. The abstract title can be formatted using the
abstract.title.properties attribute set, setting 'text-align' to 'start'.
4. Text to be placed in an absolute position on a page is typically
done using an fo:block-container with absolute-position="absolute".
However, such a container does not exclude the body text flow. If you
just try to place that information into an fo:block-container that is
absolutely positioned on the page, the normal body text will write over it.
This one may not be possible with XSL-FO. Such text would normally be
put into a float, but in XSL-FO 1.0, a float to the bottom is handled by
fo:footnote, but footnotes span across both columns. I know the
Antenna House XSL-FO processor has extensions for floats that might work
here, but I don't FOP can do it. Perhaps someone else has a better idea.
--
Bob Stayton
Sagehill Enterprises
[email protected]
On 11/12/2013 6:55 PM, Aaron W.Hsu wrote:
Hello All:
I am trying to implement a sigplan template for DocBook. The Article
language does well to encode most of the important elements, but I’m
having trouble getting the style right. I found the attribute set for
component.titlepage.properties that lets me set the information in the
title page to span the two columns that the sigplan format requires,
and most of the other elements I have figured out, but I’m not sure
how to do the following:
1.
Put the abstract as a part of the first column above the first
section, followed by the category and keywords.
2.
Layout the authors as side by side with name, affiliation, and
email listed vertically for each author.
3.
Put the abstract header as left aligned rather than centered.
4.
Put a copyright/legal notice and other such meta information in
the bottom of the first column, right below the text of the
section, but inline with it, so that it takes up that bottom part
of the first column where normal text would go; regular text
starts on the second column of the title page when it reaches the
copyright information.
Can anyone help me figure this out?
--
Aaron W. Hsu | [email protected] | http://www.sacrideo.us
http://retroshare.sourceforge.net -- Secure, Decentralized Communications