latex.xsl revision ff83017b97bb6d5f49f00fb2fa598d8d2a24feb3
af84459fbf938e508fd10b01cb8d699c79083813takashi<?xml version="1.0" encoding="ISO-8859-1"?>
af84459fbf938e508fd10b01cb8d699c79083813takashi<!DOCTYPE xsl:stylesheet [
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd <!ENTITY % HTTPD-VERSION SYSTEM "/version.ent">
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd %HTTPD-VERSION;
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd]>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<!--
af84459fbf938e508fd10b01cb8d699c79083813takashi Licensed to the Apache Software Foundation (ASF) under one or more
af84459fbf938e508fd10b01cb8d699c79083813takashi contributor license agreements. See the NOTICE file distributed with
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc this work for additional information regarding copyright ownership.
af84459fbf938e508fd10b01cb8d699c79083813takashi The ASF licenses this file to You under the Apache License, Version 2.0
af84459fbf938e508fd10b01cb8d699c79083813takashi (the "License"); you may not use this file except in compliance with
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen the License. You may obtain a copy of the License at
2e545ce2450a9953665f701bb05350f0d3f26275nd
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen http://www.apache.org/licenses/LICENSE-2.0
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
af84459fbf938e508fd10b01cb8d699c79083813takashi Unless required by applicable law or agreed to in writing, software
af84459fbf938e508fd10b01cb8d699c79083813takashi distributed under the License is distributed on an "AS IS" BASIS,
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3f08db06526d6901aa08c110b5bc7dde6bc39905nd See the License for the specific language governing permissions and
af84459fbf938e508fd10b01cb8d699c79083813takashi limitations under the License.
af84459fbf938e508fd10b01cb8d699c79083813takashi-->
af84459fbf938e508fd10b01cb8d699c79083813takashi
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<xsl:stylesheet version="1.0"
af84459fbf938e508fd10b01cb8d699c79083813takashi xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:output
af84459fbf938e508fd10b01cb8d699c79083813takashi method="text"
af84459fbf938e508fd10b01cb8d699c79083813takashi encoding="ISO-8859-1"
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung indent="no"
af84459fbf938e508fd10b01cb8d699c79083813takashi/>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<!-- Read the localized messages from the specified language file -->
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:variable name="message" select="document('/lang/en.xml')
af84459fbf938e508fd10b01cb8d699c79083813takashi /language/messages/message"/>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:variable name="allmodules" select="document('/xsl/util/allmodules.xml')
af84459fbf938e508fd10b01cb8d699c79083813takashi /items/item[@lang='en']"/>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<!-- Get the guts of the stylesheets -->
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd<xsl:include href="manualpage.xsl" />
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh<xsl:include href="common.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="html.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="synopsis.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="moduleindex.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="directiveindex.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="faq.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:include href="quickreference.xsl" />
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:template match="sitemap">
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi\documentclass[10pt]{book}
af84459fbf938e508fd10b01cb8d699c79083813takashi\usepackage{times}
af84459fbf938e508fd10b01cb8d699c79083813takashi\usepackage{longtable}
af84459fbf938e508fd10b01cb8d699c79083813takashi\usepackage{style/latex/atbeginend}
af84459fbf938e508fd10b01cb8d699c79083813takashi\usepackage[pdftex]{graphicx}
af84459fbf938e508fd10b01cb8d699c79083813takashi\usepackage[colorlinks=true,letterpaper=true,linkcolor=blue,urlcolor=blue]{hyperref}
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi% Let LaTeX be lenient about very-bad line wrapping.
af84459fbf938e508fd10b01cb8d699c79083813takashi\tolerance=9999
af84459fbf938e508fd10b01cb8d699c79083813takashi\emergencystretch=60pt
af84459fbf938e508fd10b01cb8d699c79083813takashi
3c13a815670b54d1c17bf02954f7d2b066cde95cnd% Adjust margins to a reasonable level
af84459fbf938e508fd10b01cb8d699c79083813takashi\topmargin 0pt
af84459fbf938e508fd10b01cb8d699c79083813takashi\advance \topmargin by -\headheight
af84459fbf938e508fd10b01cb8d699c79083813takashi\advance \topmargin by -\headsep
af84459fbf938e508fd10b01cb8d699c79083813takashi\textheight 8.9in
af84459fbf938e508fd10b01cb8d699c79083813takashi\oddsidemargin 0pt
af84459fbf938e508fd10b01cb8d699c79083813takashi\evensidemargin \oddsidemargin
af84459fbf938e508fd10b01cb8d699c79083813takashi\marginparwidth 0.5in
af84459fbf938e508fd10b01cb8d699c79083813takashi\textwidth 6.5in
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd
af84459fbf938e508fd10b01cb8d699c79083813takashi% Keep paragraphs flush left (rather than the default of indenting
af84459fbf938e508fd10b01cb8d699c79083813takashi% the first line) and put a space between paragraphs.
3c13a815670b54d1c17bf02954f7d2b066cde95cnd\setlength{\parindent}{0ex}
af84459fbf938e508fd10b01cb8d699c79083813takashi\addtolength{\parskip}{1.2ex}
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi% Shrink the inter-item spaces
af84459fbf938e508fd10b01cb8d699c79083813takashi\AfterBegin{itemize}{\setlength{\itemsep}{0em}}
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi\pagestyle{headings}
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi\hypersetup{
af84459fbf938e508fd10b01cb8d699c79083813takashi pdftitle={</xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:value-of select="$message[@id='apache']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:value-of select="$message[@id='http-server']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:value-of select="$message[@id='documentation']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
3c13a815670b54d1c17bf02954f7d2b066cde95cnd<xsl:value-of select="$message[@id='version']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text>},
af84459fbf938e508fd10b01cb8d699c79083813takashi pdfauthor={Apache Software Foundation}
af84459fbf938e508fd10b01cb8d699c79083813takashi }
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi\title{</xsl:text>
3c13a815670b54d1c17bf02954f7d2b066cde95cnd<xsl:value-of select="$message[@id='apache']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:value-of select="$message[@id='http-server']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:value-of select="$message[@id='documentation']" />
af84459fbf938e508fd10b01cb8d699c79083813takashi<xsl:text> </xsl:text>
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd<xsl:value-of select="$message[@id='version']" />
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd<xsl:text>\\ \bigskip \bigskip
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\includegraphics{images/feather}\\ \bigskip}
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\author{Apache Software Foundation}
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\date{\today}
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\begin{document}
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\frontmatter
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\maketitle
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd
c2a88a7ef740c408aba42af38ddfb9ab8a7398d9nd\section*{About The PDF Documentation}
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashiLicensed to the Apache Software Foundation (ASF) under one or more
af84459fbf938e508fd10b01cb8d699c79083813takashicontributor license agreements. See the NOTICE file distributed with
af84459fbf938e508fd10b01cb8d699c79083813takashithis work for additional information regarding copyright ownership.
af84459fbf938e508fd10b01cb8d699c79083813takashiThe ASF licenses this file to You under the Apache License, Version 2.0
af84459fbf938e508fd10b01cb8d699c79083813takashi(the "License"); you may not use this file except in compliance with
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjungthe License. You may obtain a copy of the License at \href{http://www.apache.org/licenses/LICENSE-2.0}{http://www.apache.org/licenses/LICENSE-2.0}
727872d18412fc021f03969b8641810d8896820bhumbedooh
0d0ba3a410038e179b695446bb149cce6264e0abndThis version of the Apache HTTP Server Documentation is converted from
727872d18412fc021f03969b8641810d8896820bhumbedoohXML source files to \LaTeX\ using XSLT with the help of Apache Ant,
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedoohApache XML Xalan, and Apache XML Xerces.
0d0ba3a410038e179b695446bb149cce6264e0abnd
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedoohSince the HTML version of the documentation is more commonly checked
727872d18412fc021f03969b8641810d8896820bhumbedoohduring development, the PDF version may contain some errors and
0d0ba3a410038e179b695446bb149cce6264e0abndinconsistencies, especially in formatting. If you have difficulty
0d0ba3a410038e179b695446bb149cce6264e0abndreading a part of this file, please consult the HTML version
0d0ba3a410038e179b695446bb149cce6264e0abndof the documentation on the Apache HTTP Server website at
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh\href{http://httpd.apache.org/docs/&httpd.docs;/}{http://httpd.apache.org/docs/&httpd.docs;/}
0d0ba3a410038e179b695446bb149cce6264e0abnd
0d0ba3a410038e179b695446bb149cce6264e0abndThe Apache HTTP Server Documentation is maintained by the Apache HTTP
0d0ba3a410038e179b695446bb149cce6264e0abndServer Documentation Project. More information is available at
727872d18412fc021f03969b8641810d8896820bhumbedooh\href{http://httpd.apache.org/docs-project/}{http://httpd.apache.org/docs-project/}
0d0ba3a410038e179b695446bb149cce6264e0abnd
0d0ba3a410038e179b695446bb149cce6264e0abnd\tableofcontents
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh\mainmatter
205f749042ed530040a4f0080dbcb47ceae8a374rjung</xsl:text>
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen
0d0ba3a410038e179b695446bb149cce6264e0abnd<xsl:for-each select="category">
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd <xsl:text>\chapter{</xsl:text>
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd <xsl:apply-templates select="title" mode="printcat"/>
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd <xsl:text>}
af84459fbf938e508fd10b01cb8d699c79083813takashi</xsl:text>
<xsl:apply-templates/>
<xsl:if test="@id = 'modules'">
<xsl:apply-templates select="document($allmodules)/modulefilelist" />
</xsl:if>
</xsl:for-each>
<xsl:text>\end{document}</xsl:text>
</xsl:template>
<xsl:template match="page">
<xsl:if test="not(starts-with(@href,'http:') or starts-with(@href, 'https:') or starts-with(@href, 'mod/'))">
<xsl:text>\include{</xsl:text>
<xsl:choose>
<xsl:when test="contains(@href,'.')">
<xsl:value-of select="substring-before(@href,'.')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat(@href,'index')"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>}
</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="category/title" mode="printcat">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="category/title"></xsl:template>
<xsl:template match="modulefilelist">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="modulefile">
<xsl:text>\include{mod/</xsl:text>
<xsl:value-of select="substring-before(.,'.')"/>
<xsl:text>}
</xsl:text>
</xsl:template>
<xsl:template match="summary">
<xsl:apply-templates/>
</xsl:template>
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="not(contains($text,$replace))">
<xsl:value-of select="$text"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- ==================================================================== -->
<!-- Take care of all the LaTeX special characters. -->
<!-- Silly multi-variable technique used to avoid deep recursion. -->
<!-- ==================================================================== -->
<xsl:template match="text()|@*" mode="tabular">
<xsl:call-template name="ltescape">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()">
<xsl:call-template name="ltescape">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template name="ltescape">
<xsl:param name="string"/>
<xsl:variable name="result1">
<xsl:choose>
<xsl:when test="contains($string, '\')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'\'"/>
<xsl:with-param name="with" select="'\textbackslash '"/>
<xsl:with-param name="text" select="normalize-space($string)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="result2">
<xsl:choose>
<xsl:when test="contains($result1, '$')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'$'"/>
<xsl:with-param name="with" select="'\$'"/>
<xsl:with-param name="text" select="$result1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="result3">
<xsl:choose>
<xsl:when test="contains($result2, '{')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'{'"/>
<xsl:with-param name="with" select="'\{'"/>
<xsl:with-param name="text" select="$result2"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="result4">
<xsl:choose>
<xsl:when test="contains($result3, '}')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'}'"/>
<xsl:with-param name="with" select="'\}'"/>
<xsl:with-param name="text" select="$result3"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result3"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- The '[' and ']' characters don't, in general, need to be
escaped. But there are times when it is ambiguous whether
[ is the beginning of an optional argument or a literal '['.
Hence, it is safer to protect the literal ones with {}. -->
<xsl:variable name="result5">
<xsl:choose>
<xsl:when test="contains($result4, '[')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'['"/>
<xsl:with-param name="with" select="'{[}'"/>
<xsl:with-param name="text" select="$result4"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result4"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="result6">
<xsl:choose>
<xsl:when test="contains($result5, ']')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="']'"/>
<xsl:with-param name="with" select="'{]}'"/>
<xsl:with-param name="text" select="$result5"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result5"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="result7">
<xsl:choose>
<xsl:when test="contains($result6, '&quot;')">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'&quot;'"/>
<xsl:with-param name="with" select="'\texttt{&quot;}'"/>
<xsl:with-param name="text" select="$result6"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result6"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'_'"/>
<xsl:with-param name="with" select="'\_'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'#'"/>
<xsl:with-param name="with" select="'\#'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'%'"/>
<xsl:with-param name="with" select="'\%'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'&gt;'"/>
<xsl:with-param name="with" select="'\textgreater{}'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'&lt;'"/>
<xsl:with-param name="with" select="'\textless{}'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'~'"/>
<xsl:with-param name="with" select="'\textasciitilde{}'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'^'"/>
<xsl:with-param name="with" select="'\^{}'"/>
<xsl:with-param name="text">
<xsl:call-template name="replace-string">
<xsl:with-param name="replace" select="'&amp;'"/>
<xsl:with-param name="with" select="'\&amp;'"/>
<xsl:with-param name="text" select="$result7"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>