From: <pau...@us...> - 2011-10-18 04:26:58
|
Author: paultremblay Date: 2011-10-18 06:26:45 +0200 (Tue, 18 Oct 2011) New Revision: 7184 Added: trunk/sandbox/paultremblay/xsl_fo/citation.xsl trunk/sandbox/paultremblay/xsl_fo/image_figure.xsl trunk/sandbox/paultremblay/xsl_fo/table.xsl Modified: trunk/sandbox/paultremblay/xsl_fo/body_directives.xsl trunk/sandbox/paultremblay/xsl_fo/docutils_to_fo.xsl trunk/sandbox/paultremblay/xsl_fo/parameters.xsl Log: Moved from old branch. Modified: trunk/sandbox/paultremblay/xsl_fo/body_directives.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/body_directives.xsl 2011-10-16 22:10:10 UTC (rev 7183) +++ trunk/sandbox/paultremblay/xsl_fo/body_directives.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -310,7 +310,7 @@ </fo:block> </xsl:template> - <xsl:template match="math_block[@classes='asciimath']"> + <xsl:template match="math_block[@classes='asciimath']|math_block[@classes='latex']"> <xsl:if test="not(ml:math)"> <xsl:message terminate="yes"> <xsl:text>You have used the math directive with the classes set to asciimath
</xsl:text> Added: trunk/sandbox/paultremblay/xsl_fo/citation.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/citation.xsl (rev 0) +++ trunk/sandbox/paultremblay/xsl_fo/citation.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -0,0 +1,31 @@ +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + version="1.1" + > + + <!-- $Id: citation.xsl 7131 2011-09-26 19:27:15Z paultremblay $ --> + + <!--Since there is no accepted way to render the limited citation + element, I am simply using it like a substition--> + + <xsl:key name="citation" match="citation" use="@ids"/> + + <xsl:template match= "citation_reference"> + <xsl:apply-templates select="key('citation', @refid)" mode="citation"/> + </xsl:template> + + <xsl:template match="citation" mode="citation"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="citation/label"/> + + <xsl:template match="citation/paragraph"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="citation"/> + +</xsl:stylesheet> + Modified: trunk/sandbox/paultremblay/xsl_fo/docutils_to_fo.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/docutils_to_fo.xsl 2011-10-16 22:10:10 UTC (rev 7183) +++ trunk/sandbox/paultremblay/xsl_fo/docutils_to_fo.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -25,14 +25,14 @@ <xsl:include href = "line_block.xsl"/> <xsl:include href = "admonitions.xsl"/> <xsl:include href = "body_directives.xsl"/> + <xsl:include href = "image_figure.xsl"/> + <xsl:include href = "table.xsl"/> + <xsl:include href = "citation.xsl"/> <!-- - <xsl:include href = "table.xsl"/> - <xsl:include href = "table_extended.xsl"/> <xsl:include href = "table_extended2.xsl"/> <xsl:include href = "table_long.xsl"/> - <xsl:include href = "citation.xsl"/> - <xsl:include href = "image_figure.xsl"/> ========================================= + <xsl:include href = "table_extended.xsl"/> <xsl:include href = "misc.xsl"/> <xsl:include href = "util.xsl"/> <xsl:include href = "page.xsl"/> Added: trunk/sandbox/paultremblay/xsl_fo/image_figure.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/image_figure.xsl (rev 0) +++ trunk/sandbox/paultremblay/xsl_fo/image_figure.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -0,0 +1,137 @@ +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + version="1.1" + > + <!-- $Id: image_figure.xsl 7131 2011-09-26 19:27:15Z paultremblay $ --> + + <xsl:attribute-set name="figure-block"> + </xsl:attribute-set> + + <xsl:attribute-set name="image-block"> + </xsl:attribute-set> + + <xsl:attribute-set name="figure-caption-block"> + <xsl:attribute name="space-before">12pt</xsl:attribute> + <xsl:attribute name="space-after">12pt</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="font-size">smaller</xsl:attribute> + <xsl:attribute name="text-align">center</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="figure-legend-block"> + <xsl:attribute name="space-before">12pt</xsl:attribute> + <xsl:attribute name="space-after">12pt</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="legend-paragraph-block"> + <xsl:attribute name="space-before">12pt</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="legend-first-paragraph-block" use-attribute-sets="legend-paragraph-block"> + <xsl:attribute name="space-before">0pt</xsl:attribute> + </xsl:attribute-set> + + <!--END OF ATTRIBUTE SETS--> + + <xsl:template name="get-alignment"> + <xsl:choose> + <xsl:when test="@align"> + <xsl:value-of select="@align"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>left</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="create-external-image-element"> + <xsl:element name="fo:external-graphic"> + <xsl:attribute name="src"> + <xsl:text>url('</xsl:text> + <xsl:value-of select="@uri"/> + <xsl:text>')</xsl:text> + </xsl:attribute> + <xsl:if test="@scale"> + <xsl:attribute name="content-height"> + <xsl:value-of select="@scale"/> + <xsl:text>%</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@height"> + <xsl:attribute name="content-height"> + <xsl:value-of select="@height"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@width"> + <xsl:attribute name="content-width"> + <xsl:value-of select="@width"/> + </xsl:attribute> + </xsl:if> + <!--doesn't work--> + <xsl:if test="@align"> + <xsl:attribute name="text-align"> + <xsl:value-of select="@align"/> + </xsl:attribute> + </xsl:if> + </xsl:element> + </xsl:template> + + <xsl:template match="image"> + <xsl:call-template name="test-attributes"/> + <xsl:variable name="text-align"> + <xsl:call-template name="get-alignment"/> + </xsl:variable> + <xsl:choose> + <xsl:when test="parent::figure"> + <fo:block role="image" xsl:use-attribute-sets="image-block" > + <xsl:call-template name="create-external-image-element"/> + </fo:block> + </xsl:when> + <xsl:otherwise> + <fo:block role="image" xsl:use-attribute-sets="image-block" text-align="{$text-align}" > + <xsl:call-template name="create-external-image-element"/> + </fo:block> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="figure"> + <xsl:variable name="text-align"> + <xsl:call-template name="get-alignment"/> + </xsl:variable> + <fo:block role="figure" xsl:use-attribute-sets="figure-block" text-align="{$text-align}"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="figure/caption"> + <fo:block role="caption" xsl:use-attribute-sets="figure-caption-block"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="figure/legend"> + <fo:block role="legend" xsl:use-attribute-sets="figure-legend-block" id="generate-id()"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="figure/legend/paragraph[1]" priority="2"> + <fo:block role="legend-paragraph-block" xsl:use-attribute-sets="legend-first-paragraph-block"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="figure/legend/paragraph"> + <fo:block role="legend-paragraph-block" xsl:use-attribute-sets="legend-paragraph-block"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <!--just test that top and bottom aren't used, since they make no sense--> + <xsl:template name="test-attributes"> + </xsl:template> + + +</xsl:stylesheet> Modified: trunk/sandbox/paultremblay/xsl_fo/parameters.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/parameters.xsl 2011-10-16 22:10:10 UTC (rev 7183) +++ trunk/sandbox/paultremblay/xsl_fo/parameters.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -10,42 +10,6 @@ <xsl:param name="strict"/> - -<!--cols for custom table, when needed--> -<xsl:param name="table1-cols"></xsl:param> -<xsl:param name="table2-cols"></xsl:param> -<xsl:param name="table3-cols"></xsl:param> -<xsl:param name="table4-cols"></xsl:param> -<xsl:param name="table5-cols"></xsl:param> -<xsl:param name="table6-cols"></xsl:param> -<xsl:param name="table7-cols"></xsl:param> -<xsl:param name="table8-cols"></xsl:param> -<xsl:param name="table9-cols"></xsl:param> -<xsl:param name="table10-cols"></xsl:param> -<xsl:param name="table11-cols"></xsl:param> -<xsl:param name="table12-cols"></xsl:param> -<xsl:param name="table13-cols"></xsl:param> -<xsl:param name="table14-cols"></xsl:param> -<xsl:param name="table15-cols"></xsl:param> -<xsl:param name="table16-cols"></xsl:param> -<xsl:param name="table17-cols"></xsl:param> -<xsl:param name="table18-cols"></xsl:param> -<xsl:param name="table19-cols"></xsl:param> -<xsl:param name="table20-cols"></xsl:param> -<xsl:param name="table21-cols"></xsl:param> -<xsl:param name="table22-cols"></xsl:param> -<xsl:param name="table23-cols"></xsl:param> -<xsl:param name="table24-cols"></xsl:param> -<xsl:param name="table25-cols"></xsl:param> -<xsl:param name="table26-cols"></xsl:param> -<xsl:param name="table27-cols"></xsl:param> -<xsl:param name="table28-cols"></xsl:param> -<xsl:param name="table29-cols"></xsl:param> -<xsl:param name="table30-cols"></xsl:param> -<xsl:param name="table-cols"></xsl:param> -<xsl:param name="table-borderless-cols"></xsl:param> -<xsl:param name="table-long-cols"></xsl:param> - <xsl:param name="long-rows-first-page"></xsl:param> <!--Parameters for docinfo fields. These parameters are used to fill in the text before such Added: trunk/sandbox/paultremblay/xsl_fo/table.xsl =================================================================== --- trunk/sandbox/paultremblay/xsl_fo/table.xsl (rev 0) +++ trunk/sandbox/paultremblay/xsl_fo/table.xsl 2011-10-18 04:26:45 UTC (rev 7184) @@ -0,0 +1,207 @@ +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + version="1.1" + > + + <!-- $Id: table.xsl 7131 2011-09-26 19:27:15Z paultremblay $ --> + + + <!--wraps the rest of the table.--> + <xsl:attribute-set name="table-block-container"> + <xsl:attribute name="space-before">12pt</xsl:attribute> + <xsl:attribute name="space-after">12pt</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table"> + <xsl:attribute name="table-layout">fixed</xsl:attribute> + <xsl:attribute name="inline-progression-dimension">100%</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-header"> + <xsl:attribute name="font-weight">bold</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="default-cell"> + <xsl:attribute name="border">solid black 1px</xsl:attribute> + <xsl:attribute name="padding">1em</xsl:attribute> + <xsl:attribute name="border-collapse">collapse</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-header-cell" use-attribute-sets="default-cell"> + <xsl:attribute name="border-bottom">solid black 2px</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-header-block"> + </xsl:attribute-set> + + <xsl:attribute-set name="table-body"> + </xsl:attribute-set> + + <xsl:attribute-set name="table-row"> + <xsl:attribute name="keep-together.within-page">always</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-cell" use-attribute-sets="default-cell"> + </xsl:attribute-set> + + <xsl:attribute-set name="cell-block"> + </xsl:attribute-set> + + <xsl:attribute-set name="caption-block"> + <xsl:attribute name="text-align">center</xsl:attribute> + <xsl:attribute name="space-before">6pt</xsl:attribute> + <xsl:attribute name="space-after">6pt</xsl:attribute> + </xsl:attribute-set> + + + <!--END OF ATTRIBUTE SETS--> + + <xsl:template match="table[not(@classes)]"> + <fo:block-container xsl:use-attribute-sets = "table-block-container"> + <xsl:if test="title and $table-title-placement = 'top'"> + <xsl:apply-templates select="title" mode="caption"/> + </xsl:if> + <fo:table xsl:use-attribute-sets="table"> + <xsl:apply-templates select="tgroup/colspec" mode="use"/> + <xsl:apply-templates/> + </fo:table> + <xsl:if test="title and $table-title-placement = 'bottom'"> + <xsl:apply-templates select="title" mode="caption"/> + </xsl:if> + </fo:block-container> + </xsl:template> + + + <xsl:template match="table[not(@classes)]/tgroup"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="table/tgroup/colspec"/> + + <xsl:template match="table[not(@classes)]/tgroup/thead"> + <fo:table-header xsl:use-attribute-sets = "table-header"> + <xsl:apply-templates/> + </fo:table-header> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/thead/row"> + <fo:table-row> + <xsl:apply-templates/> + </fo:table-row> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/thead/row/entry"> + <fo:table-cell xsl:use-attribute-sets="table-header-cell"> + <xsl:apply-templates/> + </fo:table-cell> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/thead/row/entry/paragraph"> + <fo:block xsl:use-attribute-sets="table-header-block"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/tbody"> + <fo:table-body xsl:use-attribute-sets="table-body"> + <xsl:apply-templates/> + </fo:table-body> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/tbody/row"> + <fo:table-row xsl:use-attribute-sets="table-row"> + <xsl:apply-templates/> + </fo:table-row> + </xsl:template> + + <xsl:template match="table[not(@classes)]/tgroup/tbody/row/entry"> + <xsl:variable name="cols-spanned"> + <xsl:choose> + <xsl:when test="@morecols"> + <xsl:value-of select="@morecols + 1"/> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="rows-spanned"> + <xsl:choose> + <xsl:when test="@morerows"> + <xsl:value-of select="@morerows + 1"/> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:choose> + <xsl:when test="$cols-spanned= 1 and $rows-spanned = 1"> + <fo:table-cell xsl:use-attribute-sets="table-cell"> + <xsl:apply-templates/> + <xsl:if test="not(paragraph)"> + <fo:block/> + </xsl:if> + </fo:table-cell> + </xsl:when> + <xsl:when test="$cols-spanned= 1"> + <fo:table-cell xsl:use-attribute-sets="table-cell" + number-rows-spanned="{$rows-spanned}"> + <xsl:apply-templates/> + <xsl:if test="not(paragraph)"> + <fo:block/> + </xsl:if> + </fo:table-cell> + </xsl:when> + <xsl:when test="$rows-spanned= 1"> + <fo:table-cell xsl:use-attribute-sets="table-cell" + number-columns-spanned="{$cols-spanned}"> + <xsl:apply-templates/> + <xsl:if test="not(paragraph)"> + <fo:block/> + </xsl:if> + </fo:table-cell> + </xsl:when> + <xsl:otherwise> + <fo:table-cell xsl:use-attribute-sets="table-cell" + number-rows-spanned="{$rows-spanned}" + number-columns-spanned="{$cols-spanned}"> + <xsl:apply-templates /> + <xsl:if test="not(paragraph)"> + <fo:block/> + </xsl:if> + </fo:table-cell> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + + <xsl:template match="table[not(@classes)]/tgroup/tbody/row/entry/paragraph"> + <fo:block xsl:use-attribute-sets="cell-block"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + <xsl:template match="table/title"/> + + <xsl:template match="table/title" mode="caption"> + <xsl:choose> + <xsl:when test="$table-title-placement = 'top'"> + <fo:block xsl:use-attribute-sets="caption-block" keep-with-next="always"> + <xsl:apply-templates/> + </fo:block> + </xsl:when> + <xsl:when test="$table-title-placement = 'bottom'"> + <fo:block xsl:use-attribute-sets="caption-block" keep-with-previous="always"> + <xsl:apply-templates/> + </fo:block> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:template match="tgroup/colspec" mode="use"> + <xsl:variable name="col-num"> + <xsl:number/> + </xsl:variable> + <fo:table-column column-number="{$col-num}" + column-width="proportional-column-width({@colwidth})"/> + </xsl:template> + +</xsl:stylesheet> |