xref: /minix3/external/bsd/bind/dist/doc/xsl/isc-docbook-latex.xsl.in (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek<!--
2*00b67f09SDavid van Moolenbroek - Copyright (C) 2005, 2007, 2010, 2014  Internet Systems Consortium, Inc. ("ISC")
3*00b67f09SDavid van Moolenbroek -
4*00b67f09SDavid van Moolenbroek - Permission to use, copy, modify, and/or distribute this software for any
5*00b67f09SDavid van Moolenbroek - purpose with or without fee is hereby granted, provided that the above
6*00b67f09SDavid van Moolenbroek - copyright notice and this permission notice appear in all copies.
7*00b67f09SDavid van Moolenbroek -
8*00b67f09SDavid van Moolenbroek - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9*00b67f09SDavid van Moolenbroek - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10*00b67f09SDavid van Moolenbroek - AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11*00b67f09SDavid van Moolenbroek - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12*00b67f09SDavid van Moolenbroek - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13*00b67f09SDavid van Moolenbroek - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14*00b67f09SDavid van Moolenbroek - PERFORMANCE OF THIS SOFTWARE.
15*00b67f09SDavid van Moolenbroek-->
16*00b67f09SDavid van Moolenbroek
17*00b67f09SDavid van Moolenbroek<!-- Id -->
18*00b67f09SDavid van Moolenbroek
19*00b67f09SDavid van Moolenbroek<!-- ISC customizations for db2latex generator -->
20*00b67f09SDavid van Moolenbroek
21*00b67f09SDavid van Moolenbroek<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
22*00b67f09SDavid van Moolenbroek
23*00b67f09SDavid van Moolenbroek  <!-- Import the db2latex stuff -->
24*00b67f09SDavid van Moolenbroek  <xsl:import href="@XSLT_DB2LATEX_STYLE@"/>
25*00b67f09SDavid van Moolenbroek
26*00b67f09SDavid van Moolenbroek  <!-- Blank lines between paragraphs, please -->
27*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.use.parskip" select="1"/>
28*00b67f09SDavid van Moolenbroek
29*00b67f09SDavid van Moolenbroek  <!-- Least bad current option for constructing tables -->
30*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.use.ltxtable" select="1"/>
31*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.use.longtable" select="1"/>
32*00b67f09SDavid van Moolenbroek
33*00b67f09SDavid van Moolenbroek  <!-- LaTeX2e documentclass options. -->
34*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.documentclass.common"/>
35*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.documentclass.book">10pt,twoside,openright</xsl:param>
36*00b67f09SDavid van Moolenbroek
37*00b67f09SDavid van Moolenbroek  <!-- This documentation is in English (or maybe Bad English) -->
38*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.babel.language" select="'english'"/>
39*00b67f09SDavid van Moolenbroek  <xsl:param name="l10n.gentext.default.language" select="'en'"/>
40*00b67f09SDavid van Moolenbroek
41*00b67f09SDavid van Moolenbroek  <!-- Where to find "admonition" graphics -->
42*00b67f09SDavid van Moolenbroek  <xsl:param name="admon.graphics.path" select="'@XSLT_DB2LATEX_ADMONITIONS@'"/>
43*00b67f09SDavid van Moolenbroek
44*00b67f09SDavid van Moolenbroek  <!-- ANSI C function prototypes, please -->
45*00b67f09SDavid van Moolenbroek  <xsl:param name="funcsynopsis.style">ansi</xsl:param>
46*00b67f09SDavid van Moolenbroek
47*00b67f09SDavid van Moolenbroek  <!-- Local modifications to db2latex's mapping rules -->
48*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.mapping.xml" select="document('isc-docbook-latex-mappings.xml')"/>
49*00b67f09SDavid van Moolenbroek
50*00b67f09SDavid van Moolenbroek  <!-- Patch around db2latex (0.8pre1) bug -->
51*00b67f09SDavid van Moolenbroek  <xsl:template match="copyright/year">
52*00b67f09SDavid van Moolenbroek    <xsl:apply-templates />
53*00b67f09SDavid van Moolenbroek    <xsl:if test="position() != last()">
54*00b67f09SDavid van Moolenbroek      <xsl:text>, </xsl:text>
55*00b67f09SDavid van Moolenbroek    </xsl:if>
56*00b67f09SDavid van Moolenbroek  </xsl:template>
57*00b67f09SDavid van Moolenbroek
58*00b67f09SDavid van Moolenbroek  <!-- Include our copyright generator -->
59*00b67f09SDavid van Moolenbroek  <xsl:include href="copyright.xsl"/>
60*00b67f09SDavid van Moolenbroek
61*00b67f09SDavid van Moolenbroek  <!-- Set comment convention for this output format -->
62*00b67f09SDavid van Moolenbroek  <xsl:param name="isc.copyright.leader">% </xsl:param>
63*00b67f09SDavid van Moolenbroek
64*00b67f09SDavid van Moolenbroek  <!-- Intercept top level to prepend copyright -->
65*00b67f09SDavid van Moolenbroek  <xsl:template match="/">
66*00b67f09SDavid van Moolenbroek    <xsl:value-of select="$isc.copyright"/>
67*00b67f09SDavid van Moolenbroek    <xsl:apply-imports/>
68*00b67f09SDavid van Moolenbroek  </xsl:template>
69*00b67f09SDavid van Moolenbroek
70*00b67f09SDavid van Moolenbroek  <!--
71*00b67f09SDavid van Moolenbroek    - Add support for multiple <para/> elements in a table entry.
72*00b67f09SDavid van Moolenbroek    - db2latex is already typesetting the table entry as a parbox,
73*00b67f09SDavid van Moolenbroek    - so we just have to insert the paragraph breaks.
74*00b67f09SDavid van Moolenbroek   -->
75*00b67f09SDavid van Moolenbroek  <xsl:template match="tbody/row/entry/para[position() != last()]">
76*00b67f09SDavid van Moolenbroek    <xsl:apply-imports/>
77*00b67f09SDavid van Moolenbroek    <xsl:text> \par </xsl:text>
78*00b67f09SDavid van Moolenbroek  </xsl:template>
79*00b67f09SDavid van Moolenbroek
80*00b67f09SDavid van Moolenbroek  <!--
81*00b67f09SDavid van Moolenbroek    - Add support for <optional/> in <programlisting/>.
82*00b67f09SDavid van Moolenbroek   -->
83*00b67f09SDavid van Moolenbroek  <xsl:template match="optional" mode="latex.verbatim">
84*00b67f09SDavid van Moolenbroek    <xsl:text>[</xsl:text>
85*00b67f09SDavid van Moolenbroek    <xsl:apply-templates mode="latex.verbatim"/>
86*00b67f09SDavid van Moolenbroek    <xsl:text>]</xsl:text>
87*00b67f09SDavid van Moolenbroek  </xsl:template>
88*00b67f09SDavid van Moolenbroek
89*00b67f09SDavid van Moolenbroek  <!--
90*00b67f09SDavid van Moolenbroek    - Customize the title page.  Are we having fun yet?
91*00b67f09SDavid van Moolenbroek    -
92*00b67f09SDavid van Moolenbroek    - NB: filename of graphic specified without extension.
93*00b67f09SDavid van Moolenbroek    - LaTeX includes file.eps, PDFLaTeX includes file.pdf.
94*00b67f09SDavid van Moolenbroek    -
95*00b67f09SDavid van Moolenbroek    - Spacing and font sizes could probably use some work.
96*00b67f09SDavid van Moolenbroek   -->
97*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.maketitle">
98*00b67f09SDavid van Moolenbroek    <xsl:text>
99*00b67f09SDavid van Moolenbroek      \begin{titlepage}
100*00b67f09SDavid van Moolenbroek        \null\vfil
101*00b67f09SDavid van Moolenbroek        \vskip 60pt
102*00b67f09SDavid van Moolenbroek        \begin{center}%
103*00b67f09SDavid van Moolenbroek          { %\LARGE
104*00b67f09SDavid van Moolenbroek	    \Huge
105*00b67f09SDavid van Moolenbroek	    \bfseries
106*00b67f09SDavid van Moolenbroek            </xsl:text>
107*00b67f09SDavid van Moolenbroek	    <xsl:for-each select="/book/title">
108*00b67f09SDavid van Moolenbroek	      <xsl:call-template name="text"/>
109*00b67f09SDavid van Moolenbroek	    </xsl:for-each>
110*00b67f09SDavid van Moolenbroek            <xsl:text>
111*00b67f09SDavid van Moolenbroek            \par}%
112*00b67f09SDavid van Moolenbroek          \vskip 3em%
113*00b67f09SDavid van Moolenbroek          { %\large
114*00b67f09SDavid van Moolenbroek	    \Large
115*00b67f09SDavid van Moolenbroek            \lineskip .75em%
116*00b67f09SDavid van Moolenbroek            </xsl:text>
117*00b67f09SDavid van Moolenbroek	    <xsl:for-each select="/book/bookinfo/releaseinfo[1]">
118*00b67f09SDavid van Moolenbroek	      <xsl:call-template name="text"/>
119*00b67f09SDavid van Moolenbroek	    </xsl:for-each>
120*00b67f09SDavid van Moolenbroek            <xsl:text>
121*00b67f09SDavid van Moolenbroek            \par}
122*00b67f09SDavid van Moolenbroek          %\vskip 1.5em%
123*00b67f09SDavid van Moolenbroek	  \vfil
124*00b67f09SDavid van Moolenbroek	  % Not sure exactly how much to trim logo, but given that
125*00b67f09SDavid van Moolenbroek	  % this is a centered environment, we need not be too precise
126*00b67f09SDavid van Moolenbroek	  % so long as the image is centered in the input PDF, we
127*00b67f09SDavid van Moolenbroek	  % trim enough for it to fit on page, and we do not trim
128*00b67f09SDavid van Moolenbroek	  % so much that we clip out part of the graphic itself.
129*00b67f09SDavid van Moolenbroek	  % This seems to work, anyway.
130*00b67f09SDavid van Moolenbroek	  \includegraphics[trim=400 400 400 400,scale=2.5]{isc-logo}
131*00b67f09SDavid van Moolenbroek        \end{center}\par
132*00b67f09SDavid van Moolenbroek        \vfil\null
133*00b67f09SDavid van Moolenbroek      \end{titlepage}
134*00b67f09SDavid van Moolenbroek    </xsl:text>
135*00b67f09SDavid van Moolenbroek    <xsl:text>&#10;</xsl:text>
136*00b67f09SDavid van Moolenbroek  </xsl:param>
137*00b67f09SDavid van Moolenbroek
138*00b67f09SDavid van Moolenbroek  <!-- Add version in footer. -->
139*00b67f09SDavid van Moolenbroek  <xsl:param name="latex.book.preamble.post">
140*00b67f09SDavid van Moolenbroek    <xsl:text>
141*00b67f09SDavid van Moolenbroek      \pagestyle{fancy}
142*00b67f09SDavid van Moolenbroek      \fancyfoot[ce,co]{\thepage}
143*00b67f09SDavid van Moolenbroek      \fancyfoot[le,ro]{@BIND9_VERSIONSTRING@}
144*00b67f09SDavid van Moolenbroek      \renewcommand{\headrulewidth}{0.4 pt}
145*00b67f09SDavid van Moolenbroek      \fancypagestyle{plain}{%
146*00b67f09SDavid van Moolenbroek        \fancyhf{}%
147*00b67f09SDavid van Moolenbroek        \fancyfoot[ce,co]{\thepage}%
148*00b67f09SDavid van Moolenbroek        \fancyfoot[le,ro]{@BIND9_VERSIONSTRING@}%
149*00b67f09SDavid van Moolenbroek        \renewcommand{\headrulewidth}{0 pt}
150*00b67f09SDavid van Moolenbroek      }
151*00b67f09SDavid van Moolenbroek    </xsl:text>
152*00b67f09SDavid van Moolenbroek  </xsl:param>
153*00b67f09SDavid van Moolenbroek
154*00b67f09SDavid van Moolenbroek  <!--
155*00b67f09SDavid van Moolenbroek    - More front matter: copyright notice, CVS revision number, table
156*00b67f09SDavid van Moolenbroek    - of contents.
157*00b67f09SDavid van Moolenbroek   -->
158*00b67f09SDavid van Moolenbroek  <xsl:template match="book/bookinfo">
159*00b67f09SDavid van Moolenbroek    <xsl:text>\thispagestyle{empty}&#10;</xsl:text>
160*00b67f09SDavid van Moolenbroek    <xsl:apply-imports/>
161*00b67f09SDavid van Moolenbroek    <xsl:text>\begin{center}&#10;</xsl:text>
162*00b67f09SDavid van Moolenbroek    <xsl:value-of select="$isc.copyright.text"/>
163*00b67f09SDavid van Moolenbroek    <xsl:text>\end{center}&#10;</xsl:text>
164*00b67f09SDavid van Moolenbroek    <xsl:for-each select="/book/bookinfo/releaseinfo[position() &gt; 1]">
165*00b67f09SDavid van Moolenbroek      <xsl:text>\begin{center}</xsl:text>
166*00b67f09SDavid van Moolenbroek      <xsl:call-template name="text"/>
167*00b67f09SDavid van Moolenbroek      <xsl:text>\end{center}&#10;</xsl:text>
168*00b67f09SDavid van Moolenbroek    </xsl:for-each>
169*00b67f09SDavid van Moolenbroek    <xsl:text>
170*00b67f09SDavid van Moolenbroek      \vfill
171*00b67f09SDavid van Moolenbroek      \begin{center}
172*00b67f09SDavid van Moolenbroek      Internet System Consortium \\
173*00b67f09SDavid van Moolenbroek      950 Charter Street \\
174*00b67f09SDavid van Moolenbroek      Redwood City, California \\
175*00b67f09SDavid van Moolenbroek      USA \\
176*00b67f09SDavid van Moolenbroek      http://www.isc.org/
177*00b67f09SDavid van Moolenbroek      \end{center}
178*00b67f09SDavid van Moolenbroek    </xsl:text>
179*00b67f09SDavid van Moolenbroek    <xsl:text>
180*00b67f09SDavid van Moolenbroek      \newpage
181*00b67f09SDavid van Moolenbroek      \pagenumbering{roman}
182*00b67f09SDavid van Moolenbroek      \tableofcontents
183*00b67f09SDavid van Moolenbroek      \newpage
184*00b67f09SDavid van Moolenbroek      \pagenumbering{arabic}
185*00b67f09SDavid van Moolenbroek    </xsl:text>
186*00b67f09SDavid van Moolenbroek  </xsl:template>
187*00b67f09SDavid van Moolenbroek
188*00b67f09SDavid van Moolenbroek  <!--
189*00b67f09SDavid van Moolenbroek    - Try to avoid some weird looking line breaks.
190*00b67f09SDavid van Moolenbroek    -
191*00b67f09SDavid van Moolenbroek    - This doesn't really work right, so disable for now.
192*00b67f09SDavid van Moolenbroek   -->
193*00b67f09SDavid van Moolenbroek  <xsl:template match="literal" mode="disabled">
194*00b67f09SDavid van Moolenbroek    <xsl:text>\mbox{</xsl:text>
195*00b67f09SDavid van Moolenbroek    <xsl:apply-imports/>
196*00b67f09SDavid van Moolenbroek    <xsl:text>}</xsl:text>
197*00b67f09SDavid van Moolenbroek  </xsl:template>
198*00b67f09SDavid van Moolenbroek
199*00b67f09SDavid van Moolenbroek</xsl:stylesheet>
200*00b67f09SDavid van Moolenbroek
201*00b67f09SDavid van Moolenbroek<!--
202*00b67f09SDavid van Moolenbroek  - Local variables:
203*00b67f09SDavid van Moolenbroek  - mode: sgml
204*00b67f09SDavid van Moolenbroek  - End:
205*00b67f09SDavid van Moolenbroek -->
206