2 <!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
3 <!--#############################################################################
4 | $Id: verbatim.mod.xsl,v 1.16 2004/01/31 11:53:14 j-devenish Exp $
5 |- #############################################################################
6 | $Author: j-devenish $
7 + ############################################################################## -->
10 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
11 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
12 exclude-result-prefixes="doc" version='1.0'>
14 <doc:reference id="verbatim" xmlns="">
16 <releaseinfo role="meta">
17 $Id: verbatim.mod.xsl,v 1.16 2004/01/31 11:53:14 j-devenish Exp $
24 <year>2000</year><year>2001</year><year>2002</year><year>2003</year><year>2004</year>
25 <holder>Ramon Casellas</holder>
28 <doc:revision rcasver="1.12">&rev_2003_05;</doc:revision>
31 <title>Verbatim <filename>verbatim.mod.xsl</filename></title>
41 <doc:template xmlns="">
42 <refpurpose> Auxiliary template to output verbatim &LaTeX; code in verbatim mode </refpurpose>
44 <para>Typeset verbatim, monospace text in which whitespace is significant.</para>
48 <listitem><simpara><xref linkend="param.latex.use.fancyvrb"/></simpara></listitem>
52 <para>This template is called by a number of element-related templates.</para>
53 <para> Takes into account whether the user is using fancyvrb or not. It allows
54 veratim line numbering and other fancy stuff. </para>
55 <para> In order to use a small or large font, you may also want to use
56 implement <xref linkend="template.latex.fancyvrb.options"/>.
59 the <literal>role</literal> attribute: </para>
61 <programlisting role="small">
63 <programlisting role="large">
68 This template will apply further templates using the
69 <literal>latex.verbatim</literal> mode.
73 This doesn't work inside <doc:db basename="table">tables</doc:db>.
74 Also, if the element appears within a <doc:db>varlistentry</doc:db>,
75 some &LaTeX; code will be emitted so that the verbatim environment
82 <listitem><simpara><xref linkend="template.latex.fancyvrb.options"/></simpara></listitem>
83 <listitem><simpara><xref linkend="template.text()-latex.verbatim"/></simpara></listitem>
87 <xsl:template name="verbatim.apply.templates">
88 <xsl:if test="ancestor::varlistentry">
89 <!-- start the environment on a new line -->
90 <xsl:text>\null{}</xsl:text>
93 <xsl:when test="ancestor::entry">
94 <xsl:message>Problem with <xsl:value-of select="local-name(.)"/> inside table entries.</xsl:message>
95 <xsl:text>\texttt{</xsl:text>
96 <xsl:apply-templates mode="latex.verbatim"/>
97 <xsl:text>}</xsl:text>
99 <xsl:when test="$latex.use.fancyvrb='1'">
100 <xsl:variable name="not_monospaced" select="local-name(.)='literallayout' and @format!='monospaced'"/>
101 <xsl:text> \begin{Verbatim}[</xsl:text>
102 <xsl:if test="@linenumbering='numbered'">
103 <xsl:text>,numbers=left</xsl:text>
105 <xsl:if test="$not_monospaced">
106 <xsl:text>,fontfamily=default</xsl:text>
108 <xsl:call-template name="latex.fancyvrb.options"/>
109 <xsl:text>] </xsl:text>
111 <xsl:when test="$not_monospaced">
112 <!-- Needs to be changed to cope with regular characterset! -->
113 <xsl:apply-templates mode="latex.verbatim"/>
116 <xsl:apply-templates mode="latex.verbatim"/>
119 <xsl:text> \end{Verbatim} </xsl:text>
122 <xsl:text> \begin{verbatim} </xsl:text>
123 <xsl:apply-templates mode="latex.verbatim"/>
124 <xsl:text> \end{verbatim} </xsl:text>
129 <doc:template xmlns="">
130 <refpurpose> Process <quote>verbatim</quote> environment where whitespace is significant </refpurpose>
134 Calls <xref linkend="template.verbatim.apply.templates"/>.
141 <term><xref linkend="param.latex.trim.verbatim"/></term>
143 See <xref linkend="text()-latex.verbatim"/>.
144 <!-- note: that is not a valid ID! -->
145 </simpara></listitem>
150 <simplelist type='inline'>
159 <xsl:template match="address|screen|programlisting|literallayout">
160 <xsl:call-template name="verbatim.apply.templates"/>
163 <xsl:template name="next.is.verbatim">
164 <xsl:param name="object" select="following-sibling::*[1]"/>
165 <xsl:value-of select="count($object[self::address or self::screen or self::programlisting or self::literallayout])"/>
168 <doc:template xmlns="">
169 <refpurpose>Process <doc:db>literal</doc:db> elements</refpurpose>
173 Applies templates in the <quote>template.latex.verbatim</quote>
174 mode within a &LaTeX; <function condition="latex">verb</function>
183 <xsl:template match="literal" mode="latex.verbatim">
184 <xsl:text>{\verb </xsl:text>
185 <xsl:apply-templates mode="latex.verbatim"/>
186 <xsl:text>}</xsl:text>