<xsl:variable name="title.wrapper">
<bold><xsl:value-of select="normalize-space(title[1])"/></bold>
</xsl:variable>
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<!-- * don't put linebreak after head; instead render it as a "run in" -->
<!-- * head, that is, inline, with a period and space following it -->
<xsl:apply-templates mode="bold" select="exsl:node-set($title.wrapper)"/>
ancestor::authorblurb or
ancestor::personblurb">
<xsl:if test="preceding-sibling::*[not(name() ='')]">
- <xsl:text>.sp</xsl:text>
+ <xsl:text>⌂sp</xsl:text>
<xsl:text> </xsl:text>
- <xsl:text>.RS 4n</xsl:text>
+ <xsl:text>⌂RS 4n</xsl:text>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:when>
<xsl:otherwise>
- <xsl:text>.PP</xsl:text>
+ <xsl:text>⌂PP</xsl:text>
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
ancestor::personblurb">
<xsl:if test="preceding-sibling::*[not(name() ='')]">
<xsl:text> </xsl:text>
- <xsl:text>.RE</xsl:text>
+ <xsl:text>⌂RE</xsl:text>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:if>
<xsl:text> </xsl:text>
<xsl:if test="not(ancestor::authorblurb) and
not(ancestor::personblurb)">
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:if>
</xsl:template>
parent::td|parent::th" /> <!-- do nothing -->
<xsl:otherwise>
<xsl:text> </xsl:text>
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$indent = 'Yes'">
<!-- * start indented section -->
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($man.indent.width = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$man.indent.width"/>
<!-- * default to be non-bold - because it's a convention that's -->
<!-- * followed is the vast majority of existing man pages that document -->
<!-- * functions, and we need to follow it by default, like it or no. -->
- <xsl:text>.ft </xsl:text>
+ <xsl:text>⌂ft </xsl:text>
<xsl:value-of select="$man.font.funcsynopsisinfo"/>
<xsl:text> </xsl:text>
- <xsl:text>.nf </xsl:text>
+ <xsl:text>⌂nf </xsl:text>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
- <xsl:text>.fi </xsl:text>
- <xsl:text>.ft </xsl:text>
+ <xsl:text>⌂fi </xsl:text>
+ <xsl:text>⌂ft </xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- * Other verbatims do not need to get bolded -->
- <xsl:text>.nf </xsl:text>
+ <xsl:text>⌂nf </xsl:text>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
- <xsl:text>.fi </xsl:text>
+ <xsl:text>⌂fi </xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$indent = 'Yes'">
<!-- * end indented section -->
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:if>
<!-- * if first following sibling node of this verbatim -->
<!-- * environment is a text node, output a line of space before it -->
<xsl:if test="following-sibling::node()[1][name(.) = '']">
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:if>
</xsl:template>
</xsl:choose>
</xsl:variable>
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:call-template name="formal.object">
<xsl:with-param name="placement" select="$placement"/>
</xsl:call-template>
$info//othercredit)">
</xsl:value-of>
</xsl:variable>
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:call-template name="make.authorsecttitle">
<xsl:with-param name="authorcount" select="$authorcount"/>
</xsl:call-template>
<xsl:variable name="person-name-node">
<bold><xsl:value-of select="$person-name"/></bold>
</xsl:variable>
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<!-- * Display person name in bold -->
<xsl:apply-templates mode="bold" select="exsl:node-set($person-name-node)"/>
<!-- * Display e-mail address(es) and ulink(s) on same line as name -->
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:otherwise>
</xsl:choose>
<!-- * Display affiliation(s) on separate lines -->
</xsl:template>
<xsl:template match="collab" mode="authorsect">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="collabname"/>
<!-- * Display e-mail address(es) and ulink(s) on same line as name -->
<xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
</xsl:template>
<xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="authorsect">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="."/>
<xsl:text> </xsl:text>
<xsl:if test="self::publishername">
</xsl:template>
<xsl:template match="publisher" mode="authorsect">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="publishername"/>
<!-- * Display e-mail address(es) and ulink(s) on same line as name -->
<xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
</xsl:template>
<xsl:template name="publisher.attribution">
- <xsl:text> .sp -1n </xsl:text>
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($blurb-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$blurb-indent"/>
<!-- * If contents are actually empty except for an email address -->
<!-- * or ulink, then output nothing. -->
<xsl:if test="$contents != ''">
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
<xsl:for-each select="shortaffil|jobtitle|orgname|orgdiv|address">
<!-- * only display output of nodes other than email or ulink -->
<xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
<xsl:otherwise>
<!-- * put a line break after every Affiliation instance except -->
<!-- * the last one in the set -->
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<!-- * an email address or ulink, then output nothing. -->
<xsl:if test="$contents != ''">
<xsl:text> </xsl:text>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
<!--* Skip email and ulink descendants of Address (rendered elsewhere) -->
<xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
</xsl:if>
<!-- * If we have no *blurb or contrib, but this is an Author or -->
<!-- * Editor, then render the corresponding localized gentext -->
<xsl:when test="self::author">
- <xsl:text> .sp -1n </xsl:text>
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($blurb-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$blurb-indent"/>
<xsl:text>. </xsl:text>
</xsl:when>
<xsl:when test="self::editor">
- <xsl:text> .sp -1n </xsl:text>
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($blurb-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$blurb-indent"/>
<xsl:when test="self::othercredit">
<xsl:choose>
<xsl:when test="@class and @class != 'other'">
- <xsl:text> .sp -1n </xsl:text>
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($blurb-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$blurb-indent"/>
test="../personname|../surname|../firstname
|../othername|../lineage|../honorific
|../affiliation|../email|../address">
- <xsl:text> .sp -1n </xsl:text>
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($blurb-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$blurb-indent"/>
<xsl:when test="not(preceding-sibling::*)">
<!-- * if this *blurb or contrib has no preceding -->
<!-- * siblings, then we need to start a new paragraph -->
- <xsl:text>.PP</xsl:text>
+ <xsl:text>⌂PP</xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- * otherwise, this has no preceding siblings, so -->
<!-- * just put a linebreak -->
- <xsl:text>.br</xsl:text>
+ <xsl:text>⌂br</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
<xsl:param name="info"/>
<xsl:choose>
<xsl:when test="$info//copyright|$info//legalnotice">
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:call-template name="string.upper">
<xsl:with-param name="string">
<xsl:call-template name="gentext">
<xsl:apply-templates select="." mode="titlepage.mode"/>
</xsl:variable>
<xsl:value-of select="normalize-space($contents)"/>
- <xsl:text> .br </xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:for-each>
<xsl:text> </xsl:text>
<xsl:for-each select="(($info[//legalnotice])[last()]//legalnotice)">
<xsl:apply-templates select="." mode="titlepage.mode"/>
- <xsl:text> .br </xsl:text>
+ <xsl:text> </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:for-each>
</xsl:when>
<xsl:otherwise/> <!-- * do nothing, no copyright or legalnotice found -->
<xsl:param name="notesources"/>
<xsl:call-template name="mark.subheading"/>
<!-- * make the endnotes-list section heading -->
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:call-template name="string.upper">
<xsl:with-param name="string">
<xsl:choose>
<xsl:for-each select="$notesources">
<!-- * make paragraph with hanging indent, and starting with a -->
<!-- * number in the form " 1." (padded to $man.indent.width - 1) -->
- <xsl:text>.IP</xsl:text>
+ <xsl:text>⌂IP</xsl:text>
<xsl:text> "</xsl:text>
<xsl:variable name="endnote.number">
<xsl:apply-templates select="." mode="notesource.number"/>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:if test="@url">
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
</xsl:if>
<xsl:value-of select="@url"/>
<xsl:text> </xsl:text>
- <xsl:text>.RE</xsl:text>
+ <xsl:text>⌂RE</xsl:text>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:for-each>
]">
<!-- * Make sure multiple paragraphs within a list item don't -->
<!-- * merge together. -->
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="variablelist|glosslist">
<xsl:if test="title">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="title"/>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="varlistentry|glossentry">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:for-each select="term|glossterm">
<xsl:variable name="content">
<xsl:apply-templates/>
<xsl:value-of select="$variablelist.term.separator"/>
<xsl:if test="not($variablelist.term.break.after = '0')">
<xsl:text> </xsl:text>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text> </xsl:text>
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
</xsl:if>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:template>
<xsl:template match="varlistentry/term"/>
<xsl:template match="variablelist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
glosslist[ancestor::listitem or ancestor::step or ancestor::glossdef]">
<xsl:text> </xsl:text>
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
</xsl:if>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
<xsl:if test="following-sibling::node() or
parent::para[following-sibling::node()] or
parent::simpara[following-sibling::node()] or
parent::remark[following-sibling::node()]">
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
<!-- * processing before final output, the character-map will -->
<!-- * handle conversion of the • to "\(bu" for us -->
<xsl:text> </xsl:text>
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
<xsl:text>'</xsl:text>
</xsl:if>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:template>
<xsl:template match="orderedlist/listitem|procedure/step">
<xsl:text> </xsl:text>
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
<xsl:text>'</xsl:text>
</xsl:if>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="itemizedlist|orderedlist|procedure">
<xsl:if test="title">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="title"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- * it, within the same para, then add a blank line and move -->
<!-- * the left margin back to where it was -->
<xsl:if test="parent::para and following-sibling::node()">
- <xsl:text>.sp </xsl:text>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:if>
</xsl:template>
orderedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
procedure[ancestor::listitem or ancestor::step or ancestor::glossdef]">
<xsl:if test="title">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="title"/>
<xsl:text> </xsl:text>
</xsl:if>
parent::para[following-sibling::node()] or
parent::simpara[following-sibling::node()] or
parent::remark[following-sibling::node()]">
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
<!-- * list (ignoring the values of the type and columns attributes) -->
<xsl:template match="simplelist">
<xsl:for-each select="member">
- <xsl:text>.IP ""</xsl:text>
+ <xsl:text>⌂IP ""</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
<!-- * is no option for outputting it in manpages in "list" form. -->
<xsl:template match="segmentedlist">
<xsl:if test="title">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:apply-templates mode="bold" select="title"/>
<xsl:text> </xsl:text>
</xsl:if>
- <xsl:text>.\" line length increase to cope w/ tbl weirdness </xsl:text>
- <xsl:text>.ll +(\n(LLu * 62u / 100u) </xsl:text>
+ <xsl:text>⌂\" line length increase to cope w/ tbl weirdness </xsl:text>
+ <xsl:text>⌂ll +(\n(LLu * 62u / 100u) </xsl:text>
<!-- * .TS = "Table Start" -->
- <xsl:text>.TS </xsl:text>
+ <xsl:text>⌂TS </xsl:text>
<!-- * first output the table "format" spec, which tells tbl(1) how -->
<!-- * how to format each row and column. -->
<xsl:for-each select=".//segtitle">
</xsl:choose>
<xsl:apply-templates/>
<!-- * .TE = "Table End" -->
- <xsl:text>.TE </xsl:text>
- <xsl:text>.\" line length decrease back to previous value </xsl:text>
- <xsl:text>.ll -(\n(LLu * 62u / 100u) </xsl:text>
+ <xsl:text>⌂TE </xsl:text>
+ <xsl:text>⌂\" line length decrease back to previous value </xsl:text>
+ <xsl:text>⌂ll -(\n(LLu * 62u / 100u) </xsl:text>
<!-- * put a blank line of space below the table -->
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:template>
<xsl:template match="segmentedlist/segtitle" mode="table-title">
<xsl:param name="title"/>
<xsl:param name="manual"/>
<xsl:param name="source"/>
- <xsl:text>.\" Title: </xsl:text>
+ <xsl:text>⌂\" Title: </xsl:text>
<xsl:value-of select="$title"/>
<xsl:text> </xsl:text>
- <xsl:text>.\" Author: </xsl:text>
+ <xsl:text>⌂\" Author: </xsl:text>
<xsl:call-template name="make.roff.metadata.author">
<xsl:with-param name="info" select="$info"/>
</xsl:call-template>
<xsl:text> </xsl:text>
- <xsl:text>.\" Generator: DocBook XSL Stylesheets v</xsl:text>
+ <xsl:text>⌂\" Generator: DocBook XSL Stylesheets v</xsl:text>
<xsl:value-of select="$VERSION"/>
<xsl:text> <http://docbook.sf.net/></xsl:text>
<xsl:text> </xsl:text>
- <xsl:text>.\" Date: </xsl:text>
+ <xsl:text>⌂\" Date: </xsl:text>
<xsl:call-template name="string.subst">
<!-- * replace hyphens in date with dots -->
<xsl:with-param name="string" select="$date"/>
<xsl:with-param name="replacement" select="'.'"/>
</xsl:call-template>
<xsl:text> </xsl:text>
- <xsl:text>.\" Manual: </xsl:text>
+ <xsl:text>⌂\" Manual: </xsl:text>
<xsl:value-of select="$manual"/>
<xsl:text> </xsl:text>
- <xsl:text>.\" Source: </xsl:text>
+ <xsl:text>⌂\" Source: </xsl:text>
<xsl:value-of select="$source"/>
<xsl:text> </xsl:text>
- <xsl:text>.\"</xsl:text>
+ <xsl:text>⌂\"</xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<!-- * is", unchanged from the DocBook source; and DTD-based -->
<!-- * validation does not provide a way to constrain them to be -->
<!-- * "space free" -->
- <xsl:text>.TH "</xsl:text>
+ <xsl:text>⌂TH "</xsl:text>
<xsl:call-template name="string.upper">
<xsl:with-param name="string">
<xsl:choose>
<!-- * If the value of man.hypenate is zero (the default), then -->
<!-- * disable hyphenation (".nh" = "no hyphenation") -->
<xsl:if test="$man.hyphenate = 0">
- <xsl:text>.\" disable hyphenation </xsl:text>
- <xsl:text>.nh </xsl:text>
+ <xsl:text>⌂\" disable hyphenation </xsl:text>
+ <xsl:text>⌂nh </xsl:text>
</xsl:if>
<!-- * If the value of man.justify is zero (the default), then -->
<!-- * disable justification (".ad l" means "adjust to left only") -->
<xsl:if test="$man.justify = 0">
- <xsl:text>.\" disable justification</xsl:text>
+ <xsl:text>⌂\" disable justification</xsl:text>
<xsl:text> (adjust text to left margin only) </xsl:text>
- <xsl:text>.ad l </xsl:text>
+ <xsl:text>⌂ad l </xsl:text>
</xsl:if>
<xsl:if test="not($man.indent.refsect = 0)">
- <xsl:text>.\" store initial "default indentation value" </xsl:text>
- <xsl:text>.nr zq \n(IN </xsl:text>
- <xsl:text>.\" adjust default indentation </xsl:text>
- <xsl:text>.nr IN </xsl:text>
+ <xsl:text>⌂\" store initial "default indentation value" </xsl:text>
+ <xsl:text>⌂nr zq \n(IN </xsl:text>
+ <xsl:text>⌂\" adjust default indentation </xsl:text>
+ <xsl:text>⌂nr IN </xsl:text>
<xsl:value-of select="$man.indent.width"/>
<xsl:text> </xsl:text>
- <xsl:text>.\" adjust indentation of SS headings </xsl:text>
- <xsl:text>.nr SN \n(IN </xsl:text>
+ <xsl:text>⌂\" adjust indentation of SS headings </xsl:text>
+ <xsl:text>⌂nr SN \n(IN </xsl:text>
</xsl:if>
<!-- * Unless the value of man.break.after.slash is zero (the -->
<!-- * default), tell groff that it is OK to break a line -->
<!-- * after a slash when needed. -->
<xsl:if test="$man.break.after.slash != 0">
- <xsl:text>.\" enable line breaks after slashes </xsl:text>
- <xsl:text>.cflags 4 / </xsl:text>
+ <xsl:text>⌂\" enable line breaks after slashes </xsl:text>
+ <xsl:text>⌂cflags 4 / </xsl:text>
</xsl:if>
</xsl:template>
<xsl:when test="preceding-sibling::refnamediv">
<!-- * No title on secondary refnamedivs! -->
<!-- * Just put a single line break instead -->
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="mark.subheading"/>
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:apply-templates select="." mode="title.markup"/>
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
<xsl:template match="refsynopsisdiv">
<xsl:call-template name="mark.subheading"/>
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:apply-templates select="." mode="title.markup"/>
<xsl:text>" </xsl:text>
<xsl:call-template name="mark.subheading"/>
<xsl:apply-templates select="." mode="title.markup"/>
</xsl:variable>
<xsl:call-template name="mark.subheading"/>
- <xsl:text>.SH "</xsl:text>
+ <xsl:text>⌂SH "</xsl:text>
<xsl:value-of select="normalize-space($title)"/>
<xsl:text>" </xsl:text>
<xsl:call-template name="mark.subheading"/>
|title)[1]/node()"/>
</xsl:variable>
- <xsl:text>.SS "</xsl:text>
+ <xsl:text>⌂SS "</xsl:text>
<xsl:value-of select="normalize-space($title)"/>
<xsl:text>" </xsl:text>
<xsl:call-template name="mark.subheading"/>
<!-- * If default-indentation adjustment is on, then indent the -->
<!-- * child content of this Refsect2 -->
<xsl:when test="not($man.indent.refsect = 0)">
- <xsl:text>.RS </xsl:text>
+ <xsl:text>⌂RS </xsl:text>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- * If default-indentation adjustment is on, then do not -->
<!-- * child content of this Refsect3 or Refsection. -->
<xsl:when test="not($man.indent.refsect != 0)">
<xsl:call-template name="nested-section-title"/>
- <xsl:text>.RS </xsl:text>
+ <xsl:text>⌂RS </xsl:text>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- * If default-indentation adjustment is on, then do not -->
<!-- * actually means the title is indented by the value of -->
<!-- * the SN register, which appears by default to be -->
<!-- * about half of the default indentation value -->
- <xsl:text>.ti (\n(SNu * 5u / 3u) </xsl:text>
+ <xsl:text>⌂ti (\n(SNu * 5u / 3u) </xsl:text>
<xsl:call-template name="nested-section-title"/>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:if>
</xsl:variable>
<xsl:call-template name="nested-section-title"/>
- <xsl:text>.RS (\n(SNu) </xsl:text>
+ <xsl:text>⌂RS (\n(SNu) </xsl:text>
<xsl:apply-templates/>
- <xsl:text>.RE </xsl:text>
+ <xsl:text>⌂RE </xsl:text>
</xsl:template>
<!-- ==================================================================== -->
<!-- * up one line vertically to negate the line of vertical space -->
<!-- * that's added by the .HP macro -->
<xsl:if test="preceding-sibling::*[1][self::synopfragment]">
- <xsl:text>.sp -1n </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
</xsl:if>
- <xsl:text>.HP </xsl:text>
+ <xsl:text>⌂HP </xsl:text>
<!-- * For each Synopfragment, make a hanging paragraph, with the -->
<!-- * indent calculated from the length of the generated number -->
<!-- * used as a reference + pluse 3 characters (for the open and -->
<xsl:template match="sbr">
<xsl:text> </xsl:text>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
</xsl:template>
<xsl:template match="cmdsynopsis">
<!-- * if justification is enabled by default, turn it off temporarily -->
<xsl:if test="$man.justify != 0">
- <xsl:text>.ad l </xsl:text>
+ <xsl:text>⌂ad l </xsl:text>
</xsl:if>
<!-- * if hyphenation is enabled by default, turn it off temporarily -->
<xsl:if test="$man.hyphenate != 0">
- <xsl:text>.hy 0 </xsl:text>
+ <xsl:text>⌂hy 0 </xsl:text>
</xsl:if>
- <xsl:text>.HP </xsl:text>
+ <xsl:text>⌂HP </xsl:text>
<xsl:value-of select="string-length (normalize-space (command)) + 1"/>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
<!-- * if justification is enabled by default, turn it back on -->
<xsl:if test="$man.justify != 0">
- <xsl:text>.ad </xsl:text>
+ <xsl:text>⌂ad </xsl:text>
</xsl:if>
<!-- * if hyphenation is enabled by default, turn it back on -->
<xsl:if test="$man.hyphenate != 0">
- <xsl:text>.hy </xsl:text>
+ <xsl:text>⌂hy </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="funcsynopsis">
<!-- * if justification is enabled by default, turn it off temporarily -->
<xsl:if test="$man.justify != 0">
- <xsl:text>.ad l </xsl:text>
+ <xsl:text>⌂ad l </xsl:text>
</xsl:if>
<!-- * if hyphenation is enabled by default, turn it off temporarily -->
<xsl:if test="$man.hyphenate != 0">
- <xsl:text>.hy 0 </xsl:text>
+ <xsl:text>⌂hy 0 </xsl:text>
</xsl:if>
<xsl:apply-templates/>
<!-- * if justification is enabled by default, turn it back on -->
<xsl:if test="$man.justify != 0">
- <xsl:text>.ad </xsl:text>
+ <xsl:text>⌂ad </xsl:text>
</xsl:if>
<!-- * if hyphenation is enabled by default, turn it back on -->
<xsl:if test="$man.hyphenate != 0">
- <xsl:text>.hy </xsl:text>
+ <xsl:text>⌂hy </xsl:text>
</xsl:if>
</xsl:template>
<xsl:variable name="funcprototype">
<xsl:apply-templates select="funcdef"/>
</xsl:variable>
- <xsl:text>.HP </xsl:text>
+ <xsl:text>⌂HP </xsl:text>
<!-- * Hang Paragraph by length of string value of <funcdef> + 1 -->
<!-- * (because funcdef is always followed by one open paren char) -->
<xsl:value-of select="string-length (normalize-space ($funcprototype.string.value)) + 1"/>
<!-- * Output table title -->
<!-- * ============================================================== -->
<xsl:if test="$title != '' or parent::td">
- <xsl:text>.PP </xsl:text>
+ <xsl:text>⌂PP </xsl:text>
<xsl:text>.</xsl:text>
<xsl:value-of select="$tbl.font.title"/>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="normalize-space($title)"/>
<xsl:text> </xsl:text>
- <xsl:text>.sp -1n </xsl:text>
+ <xsl:text>⌂sp -1n </xsl:text>
</xsl:if>
<!-- * mark the start of the table -->
<!-- * "TS" = "table start" -->
- <xsl:text>.TS</xsl:text>
+ <xsl:text>⌂TS</xsl:text>
<xsl:if test="thead and $tbl.running.header.from.thead">
<!-- * H = "has header" -->
<xsl:text> H</xsl:text>
<xsl:choose>
<xsl:when test="$tbl.running.header.from.thead">
<!-- * "TH" = "table header end" -->
- <xsl:text>.TH </xsl:text>
+ <xsl:text>⌂TH </xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- * "T&" = "table continuation" and is meant just as a kind -->
<!-- * rows. It's necessary to output it here because the "TH" -->
<!-- * macro is not being output, so there's otherwise no way -->
<!-- * for tbl(1) to know we have the table "sectioned". -->
- <xsl:text>.T& </xsl:text>
+ <xsl:text>⌂T& </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<!-- * mark the end of the table -->
<xsl:text> </xsl:text>
<!-- * .TE = "Table End" -->
- <xsl:text>.TE </xsl:text>
+ <xsl:text>⌂TE </xsl:text>
<!-- * put a blank line of space below the table -->
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
</xsl:for-each>
</xsl:template>
select=".//tgroup//footnote"/>
<xsl:value-of select="$man.table.footnotes.divider"/>
<xsl:text> </xsl:text>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂br </xsl:text>
<xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
<xsl:apply-templates select="*[position() > 1]"/>
</xsl:template>
<xsl:template name="nested-section-title">
<!-- * The next few lines are some arcane roff code to control line -->
<!-- * spacing after headings. -->
- <xsl:text>.sp </xsl:text>
- <xsl:text>.it 1 an-trap </xsl:text>
- <xsl:text>.nr an-no-space-flag 1 </xsl:text>
- <xsl:text>.nr an-break-flag 1 </xsl:text>
- <xsl:text>.br </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
+ <xsl:text>⌂it 1 an-trap </xsl:text>
+ <xsl:text>⌂nr an-no-space-flag 1 </xsl:text>
+ <xsl:text>⌂nr an-break-flag 1 </xsl:text>
+ <xsl:text>⌂br </xsl:text>
<!-- * make title wrapper so that we can use mode="bold" template to -->
<!-- * apply character formatting to it -->
<xsl:variable name="title.wrapper">
<xsl:when test="self::address|self::literallayout|self::programlisting|
self::screen|self::synopsis">
<xsl:text> </xsl:text>
- <xsl:text>.sp </xsl:text>
+ <xsl:text>⌂sp </xsl:text>
<xsl:call-template name="mark.up.block.start"/>
<xsl:apply-templates select="."/>
</xsl:when>
preceding-sibling::note|
preceding-sibling::tip|
preceding-sibling::warning)">
- <xsl:text>.RS</xsl:text>
+ <xsl:text>⌂RS</xsl:text>
<xsl:if test="not($list-indent = '')">
<xsl:text> </xsl:text>
<xsl:value-of select="$list-indent"/>
tip|
warning">
<xsl:text> </xsl:text>
- <xsl:text>.RE</xsl:text>
+ <xsl:text>⌂RE</xsl:text>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:if>
<!-- * in roff source (just to make things easier to read). -->
<xsl:template name="mark.subheading">
<xsl:if test="$man.subheading.divider.enabled != 0">
- <xsl:text>.\" </xsl:text>
+ <xsl:text>⌂\" </xsl:text>
<xsl:value-of select="$man.subheading.divider"/>
<xsl:text> </xsl:text>
</xsl:if>
<src:fragment id='man.string.subst.map.frag'>
<xsl:param name="man.string.subst.map">
<substitution oldstring="\" newstring="\\"/>
+ <!-- * escape all dots (because roff interprets them as newlines if they -->
+ <!-- * occur at the beginning of a line -->
+ <substitution oldstring="." newstring="\."/>
+ <!-- * the stylesheets use U+2302 internally to represent the start of a -->
+ <!-- * roff request; for output, we need to convert that internal -->
+ <!-- * representation to the character that roff actually uses to mark -->
+ <!-- * the start of requests, which is a dot -->
+ <substitution oldstring="⌂" newstring="."/>
<!-- * now, we need to restore single-backslashes in all roff -->
- <!-- * requests (because the substitution above doubled them) -->
+ <!-- * requests (because slash substitution above doubled them) -->
<substitution oldstring="\\fB" newstring="\fB"/>
<substitution oldstring="\\fI" newstring="\fI"/>
<substitution oldstring="\\fR" newstring="\fR"/>
<substitution oldstring="\\n" newstring="\n"/>
<substitution oldstring="\\h" newstring="\h"/>
<!-- * requests in .SH sectsions output from Refsect1-level source -->
- <!-- * end up getting capitalized... -->
+ <!-- * end up getting capitalized; the following changes fix that -->
<substitution oldstring="\\FB" newstring="\fB"/>
<substitution oldstring="\\FI" newstring="\fI"/>
<substitution oldstring="\\FR" newstring="\fR"/>
<!-- * for certain reasons, the stylesheets add it before and after -->
<!-- * every Parameter in Funcprototype output -->
<substitution oldstring=" " newstring=" "/>
- <substitution oldstring="⌂" newstring="	"/>
<!-- * -->
<!-- * Now deal with some other characters that are added by the -->
<!-- * stylesheets during processing. -->
</xsl:template>
<xsl:template match="pre">
- <xsl:element name="xsl:text">.sp </xsl:element>
- <xsl:element name="xsl:text">.nf </xsl:element>
+ <xsl:element name="xsl:text">⌂sp </xsl:element>
+ <xsl:element name="xsl:text">⌂nf </xsl:element>
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
- <xsl:element name="xsl:text"> .fi </xsl:element>
+ <xsl:element name="xsl:text"> </xsl:element>
+ <xsl:element name="xsl:text">⌂fi </xsl:element>
</xsl:template>
</xsl:stylesheet>