diff options
285 files changed, 75562 insertions, 0 deletions
@@ -0,0 +1,35 @@ +Using Equations w/o titles results in incorrectly numbered + equations with titles. Use InformalEquation instead. + +InlineEquations don't work in the RTF backend. It's not my fault. + +Callout support is somewhat fragile. + +Line numbering of linespecific displays is somewhat fragile. + +In two-sided mode, with the RTF backend, the appropriate + alternation of inner/outer headers and footers does not work + correctly unless %page-number-restart% is true. This is + caused by a limitation in RTF. + +CHAR alignment in tables is not supported + +The stylesheets can't automatically put callout marks on a +PROGRAMLISTING or SCREEN if the text comes from an external file +using the LINESPECIFIC INLINEGRAPHIC trick. + +"Extra" </P> elements appear in the HTML output if you put block +elements inside of <para> elements in your source. The problem +is that + + <para>Some text <table>...</table></p> + +Is translated into + + <P>Some text <table>...</table></P> + +but HTML doesn't allow "table" inside a P, so the begin table +implies an "</P>" which makes the </P> after the table erroneous. +I don't have a good answer for this, but I'm tempted to make all +<P> tags empty in the HTML so that the browser has to imply all +the </P>s. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..778484b --- /dev/null +++ b/ChangeLog @@ -0,0 +1,140 @@ +2004-11-05 Michael Smith <xmldoc@users.sourceforge.net> + + * Makefile: plain-text release notes, added target to make + +2004-11-04 Michael Smith <xmldoc@users.sourceforge.net> + + * .cvsignore: ignore RELEASE-NOTES.html + + * .cvsignore: ignore RELEASE-NOTES.txt + + * FRESHMEAT: New file. + + * Makefile: RELEASE-NOTES.html and freshmeat targets added + + * RELEASE-NOTES.xml: New file. + + * VERSION: Version 1.79 released. + +2004-10-23 <petere78@users.sourceforge.net> + + * Makefile: The debian directory no longer corresponds to the actual Debian package, so + it would only be confusing to keep it around. + + * TODO: TODO items are nowadays listed at SourceForge; this file doesn't serve a + purpose anymore. + +2004-09-14 <petere78@users.sourceforge.net> + + * README.CVS: Add note that xmlcharent also needs to be checked out when working from CVS. + +2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: clean target cleans backup files and CVS junk + + * VERSION: Keep CVS and real releases distinct + +2003-02-20 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: don't distrib empty debian dir and *.orig + +2003-02-19 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.78 released. + +2002-12-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * .cvsignore: ignorables, esp stuff built by debian/rules + +2002-08-08 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: 'doc' target uses bin subdir, clean target additional goes into print, + html, and bin + + * catalog: appropriate DTDDECL for dtds/html/dbhtml.dcl (merging in Debian changes) + +2002-08-07 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * README.CVS: some more information in the 'Installation' section + +2002-07-07 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: Keep the debian directory out of the distribution + + * VERSION: Keep CVS and real releases distinct + + * VERSION: Version 1.77 released. + +2002-03-24 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: clean does more subdirs now + +2002-02-22 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: Improve archive construction + + * VERSION: Version 1.76 released. + +2002-02-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.75 released. + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: Bug #449776: include EPS/PDF graphics + +2001-11-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Keep CVS versions distinct from real releases + + * VERSION: Merged V174bugfixes + + * VERSION: New file. + +2001-11-28 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: branches: 1.11.2; + Version 1.74 released. + +2001-09-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.73 released. + + * VERSION: Keep CVS versions distinct from real releases + +2001-08-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Keep CVS versions distinct from real releases + + * VERSION: Version 1.72 released. + +2001-07-08 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.71 released. + +2001-05-22 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.70 released. + +2001-04-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * VERSION: Version 1.68 released. + + * VERSION: Version 1.69 released. + +2001-04-15 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: Various distribution hacks + +2001-04-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, Makefile, README: Adjust Makefiles and documentation for building a new distrib + + * VERSION: Version 1.67 released. + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * BUGS, README.CVS, TODO, VERSION, catalog: Initial checkins + + * Makefile: New file. + @@ -0,0 +1,91 @@ +README for the DocBook Stylesheets + +These are DSSSL stylesheets for the DocBook DTD. + +For more information, see http://docbook.sourceforge.net/ + +Manifest +-------- + +bin/ contains scripts for some (optional) post-processing +common/ contains code common to both stylesheets +contrib/ contains contributions +doc/ contains installation and reference documentation (this is + now distributed in a separate ZIP archive) +docsrc/ contains the SGML source for the documentation +dtds/ contains auxiliary DTDs +frames/ contains support for frames +html/ contains the HTML stylesheet (for use with -t sgml) +images/ contains images used by the HTML stylesheets +lib/ contains DSSSL functions that are believed to be useful but + are totally independent of any particular stylesheet +olink/ contains olink support +print/ contains the print stylesheet + +Changes +------- + +See the ChangeLog in each directory for additional information +about the specific changes. + +See WhatsNew for changes since the last release. + +Installation +------------ + +See doc/install.html and/or http://nwalsh.com/docbook/dsssl/ + +Copyright +--------- + +Copyright (C) 1997-2001 Norman Walsh + +The original inspiration for these stylesheets came from the +work of Jon Bosak, Anders Berglund, Tony Graham, Terry Allen, +James Clark, and many others. I am indebted to them and to the +community of users on dssslist@mulberrytech.com for making +substantial contributions to this work and for answering my many +questions. + +This software may be distributed under the same terms as Jade: + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the ``Software''), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +Except as contained in this notice, the names of individuals +credited with contribution to this software shall not be used in +advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization +from the individuals in question. + +Any stylesheet derived from this Software that is publically +distributed will be identified with a different name and the +version strings in any derived Software will be changed so that +no possibility of confusion between the derived package and this +Software will exist. + +Warranty +-------- + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER +CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Contacting the Author +--------------------- + +These stylesheets are maintained by Norman Walsh, <ndw@nwalsh.com>. diff --git a/RELEASE-NOTES.html b/RELEASE-NOTES.html new file mode 100644 index 0000000..a7b97e3 --- /dev/null +++ b/RELEASE-NOTES.html @@ -0,0 +1,34 @@ +<html><head> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>DocBook DSSSL Stylesheet Release Notes</title><meta name="generator" content="DocBook XSL Stylesheets V2004-10-18_18:25_snapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1"></a>DocBook DSSSL Stylesheet Release Notes</h1></div><div><h3 class="corpauthor">DocBook Open Repository Team</h3></div><div><p class="releaseinfo">$Id: RELEASE-NOTES.xml,v 1.1 2004/11/04 11:34:01 xmldoc Exp $</p></div><div><p class="pubdate">03 November 2004</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#d0e18">Release 1.79</a></span></dt></dl></div><p>These are the release notes for the DocBook DSSSL Stylesheets. + At a minimum, this file attempts to document changes to the public + APIs and provide a high-level overview of the features added in each + release.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e18"></a>Release 1.79</h2></div></div></div><p>This release contains fixes for a number of long-standing + bugs. See the <a href="WhatsNew" target="_top">WhatsNew</a> file for more + details. Among the user-visible changes are:</p><div class="itemizedlist"><ul type="disc"><li><p><b>HTML stylesheets. </b> + </p><div class="itemizedlist"><ul type="circle"><li><p>The doctype definition in the HTML output now + contains a system identifier, required for better + parsing in contemporary browsers.</p></li><li><p>CSS decoration has been added to procedure + steps.</p></li><li><p>Uses of <VAR> in HTML output (often rendered + in italic) have been changed to something more + appropriate</p></li><li><p>The last character of the version was cut off in + previous releases.</p></li><li><p>Processing instruction parsing has been made + more robust against arbitrarily formed PIs.</p></li><li><p>Callout graphics and admonition graphics share a + single variable, %stock-graphics-extension%.</p></li><li><p>The value of the VALIGN attribute has been + corrected to MIDDLE instead of CENTER.</p></li></ul></div><p> + </p></li><li><p><b>Print stylesheets. </b> + </p><div class="itemizedlist"><ul type="circle"><li><p>Admonition titles and contents are kept + together.</p></li><li><p>Programlistings with callouts now honor the + width attribute.</p></li><li><p>The rendering of othercredit has been made more + useful.</p></li><li><p>Excessive after spacing when a listitem contains + multiple paras or verbatim environments has been + fixed.</p></li><li><p>Empty ulinks don't generate footnotes, so they + are now omitted from the footnote counting.</p></li><li><p>Some cases where components were restarting the + page numbering were fixed.</p></li><li><p>article-titlepage-recto-elements has been made + to match the HTML version.</p></li><li><p>Support for revdescription inside revison on + titlepages has been added.</p></li></ul></div><p> + </p></li><li><p><b>General. </b> + </p><div class="itemizedlist"><ul type="circle"><li><p>"pc" is now allowed as abbreviation for + "pica".</p></li><li><p>The return value of my-debug has been + fixed.</p></li><li><p>A Bosnian translation has been added.</p></li><li><p>A Bulgarian translation has been added.</p></li></ul></div><p> + </p></li></ul></div></div></div></body></html>
\ No newline at end of file diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt new file mode 100644 index 0000000..43fb394 --- /dev/null +++ b/RELEASE-NOTES.txt @@ -0,0 +1,76 @@ +DocBook DSSSL Stylesheet Release Notes + +DocBook Open Repository Team + +$Id: RELEASE-NOTES.xml,v 1.1 2004/11/04 11:34:01 xmldoc Exp $ + +03 November 2004 + +------------------------------------------------------------------------------- + +Table of Contents + +Release 1.79 + +These are the release notes for the DocBook DSSSL Stylesheets. At a minimum, +this file attempts to document changes to the public APIs and provide a +high-level overview of the features added in each release. + +Release 1.79 + +This release contains fixes for a number of long-standing bugs. See the +WhatsNew file for more details. Among the user-visible changes are: + + * HTML stylesheets. + + o The doctype definition in the HTML output now contains a system + identifier, required for better parsing in contemporary browsers. + + o CSS decoration has been added to procedure steps. + + o Uses of <VAR> in HTML output (often rendered in italic) have been + changed to something more appropriate + + o The last character of the version was cut off in previous releases. + + o Processing instruction parsing has been made more robust against + arbitrarily formed PIs. + + o Callout graphics and admonition graphics share a single variable, + %stock-graphics-extension%. + + o The value of the VALIGN attribute has been corrected to MIDDLE instead + of CENTER. + + * Print stylesheets. + + o Admonition titles and contents are kept together. + + o Programlistings with callouts now honor the width attribute. + + o The rendering of othercredit has been made more useful. + + o Excessive after spacing when a listitem contains multiple paras or + verbatim environments has been fixed. + + o Empty ulinks don't generate footnotes, so they are now omitted from the + footnote counting. + + o Some cases where components were restarting the page numbering were + fixed. + + o article-titlepage-recto-elements has been made to match the HTML + version. + + o Support for revdescription inside revison on titlepages has been added. + + * General. + + o "pc" is now allowed as abbreviation for "pica". + + o The return value of my-debug has been fixed. + + o A Bosnian translation has been added. + + o A Bulgarian translation has been added. + diff --git a/RELEASE-NOTES.xml b/RELEASE-NOTES.xml new file mode 100644 index 0000000..dbaa087 --- /dev/null +++ b/RELEASE-NOTES.xml @@ -0,0 +1,126 @@ +<?xml version='1.0' encoding="utf-8"?> +<!DOCTYPE article SYSTEM "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> +<article> + <articleinfo> + <title>DocBook DSSSL Stylesheet Release Notes</title> + <pubdate>03 November 2004</pubdate> + <releaseinfo role="cvs">$Id: RELEASE-NOTES.xml,v 1.1 2004/11/04 11:34:01 xmldoc Exp $</releaseinfo> + <corpauthor>DocBook Open Repository Team</corpauthor> + </articleinfo> + <para>These are the release notes for the DocBook DSSSL Stylesheets. + At a minimum, this file attempts to document changes to the public + APIs and provide a high-level overview of the features added in each + release.</para> + <section> + <title>Release 1.79</title> + <para>This release contains fixes for a number of long-standing + bugs. See the <ulink url="WhatsNew"/> file for more + details. Among the user-visible changes are:</para> + <itemizedlist> + <listitem> + <formalpara> + <title>HTML stylesheets</title> + <para> + <itemizedlist> + <listitem> + <para>The doctype definition in the HTML output now + contains a system identifier, required for better + parsing in contemporary browsers.</para> + </listitem> + <listitem> + <para>CSS decoration has been added to procedure + steps.</para> + </listitem> + <listitem> + <para>Uses of <VAR> in HTML output (often rendered + in italic) have been changed to something more + appropriate</para> + </listitem> + <listitem> + <para>The last character of the version was cut off in + previous releases.</para> + </listitem> + <listitem> + <para>Processing instruction parsing has been made + more robust against arbitrarily formed PIs.</para> + </listitem> + <listitem> + <para>Callout graphics and admonition graphics share a + single variable, %stock-graphics-extension%.</para> + </listitem> + <listitem> + <para>The value of the VALIGN attribute has been + corrected to MIDDLE instead of CENTER.</para> + </listitem> + </itemizedlist> + </para> + </formalpara> + </listitem> + <listitem> + <formalpara> + <title>Print stylesheets</title> + <para> + <itemizedlist> + <listitem> + <para>Admonition titles and contents are kept + together.</para> + </listitem> + <listitem> + <para>Programlistings with callouts now honor the + width attribute.</para> + </listitem> + <listitem> + <para>The rendering of othercredit has been made more + useful.</para> + </listitem> + <listitem> + <para>Excessive after spacing when a listitem contains + multiple paras or verbatim environments has been + fixed.</para> + </listitem> + <listitem> + <para>Empty ulinks don't generate footnotes, so they + are now omitted from the footnote counting.</para> + </listitem> + <listitem> + <para>Some cases where components were restarting the + page numbering were fixed.</para> + </listitem> + <listitem> + <para>article-titlepage-recto-elements has been made + to match the HTML version.</para> + </listitem> + <listitem> + <para>Support for revdescription inside revison on + titlepages has been added.</para> + </listitem> + </itemizedlist> + </para> + </formalpara> + </listitem> + <listitem> + <formalpara> + <title>General</title> + <para> + <itemizedlist> + <listitem> + <para>"pc" is now allowed as abbreviation for + "pica".</para> + </listitem> + <listitem> + <para>The return value of my-debug has been + fixed.</para> + </listitem> + <listitem> + <para>A Bosnian translation has been added.</para> + </listitem> + <listitem> + <para>A Bulgarian translation has been added.</para> + </listitem> + </itemizedlist> + </para> + </formalpara> + </listitem> + </itemizedlist> + </section> +</article> @@ -0,0 +1 @@ +1.79 diff --git a/WhatsNew b/WhatsNew new file mode 100644 index 0000000..b26f319 --- /dev/null +++ b/WhatsNew @@ -0,0 +1,372 @@ +Changes since version 1.78 (2003-02-19) + +Changes to dsssl/* + + | 2004-11-05 Michael Smith <xmldoc@users.sourceforge.net> + | + | * Makefile: plain-text release notes, added target to make + | + | 2004-11-04 Michael Smith <xmldoc@users.sourceforge.net> + | + | * .cvsignore: ignore RELEASE-NOTES.html + | + | * .cvsignore: ignore RELEASE-NOTES.txt + | + | * FRESHMEAT: New file. + | + | * Makefile: RELEASE-NOTES.html and freshmeat targets added + | + | * RELEASE-NOTES.xml: New file. + | + | * VERSION: Version 1.79 released. + | + | 2004-10-23 <petere78@users.sourceforge.net> + | + | * Makefile: The debian directory no longer corresponds to the + | actual Debian package, so it would only be confusing to keep + | it around. + | + | * TODO: TODO items are nowadays listed at SourceForge; this + | file doesn't serve a purpose anymore. + | + | 2004-09-14 <petere78@users.sourceforge.net> + | + | * README.CVS: Add note that xmlcharent also needs to be + | checked out when working from CVS. + | + | 2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: clean target cleans backup files and CVS junk + | + | * VERSION: Keep CVS and real releases distinct + | + | 2003-02-20 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: don't distrib empty debian dir and *.orig + | + +Changes to dsssl/bin/* + + | 2004-10-24 <petere78@users.sourceforge.net> + | + | * collateindex.pl: Only mention the program's base name in the + | error messages. + | + | 2004-10-23 <petere78@users.sourceforge.net> + | + | * Makefile: Don't put a "v" before the version number here. + | + | * collateindex.pl: Put the options list in some kind of order, + | and make the error messages have a consistent format. + | + | 2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: clean target cleans backup files and CVS junk + | + | 2003-03-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: fix the POD release variable + | + +Changes to dsssl/doc/* + + | 2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: clean target cleans backup files and CVS junk + | + | 2003-03-17 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: Make required stuff in ../docsrc as needed + | + | 2003-03-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: removing *.htm in addition to the *.html + | + +Changes to dsssl/common/* + + | 2004-10-10 <petere78@users.sourceforge.net> + | + | * dbcommon.dsl: Give othercredit some useful rendering in + | print output, by copying over the author rendering. Fix + | author-list-string for authorgroups that contain both + | authors and othercredits. (bug #1038081) + | + | 2004-10-09 <petere78@users.sourceforge.net> + | + | * .cvsignore, Makefile, dbl10n.dsl, dbl10n.ent, + | dbl10n.template, dbl1bg.dsl: New Bulgarian translation by + | Viktor Vasilev (SF patch #1040075) + | + | * dbl1bs.dsl: Additional fixes for Bosnian translation, by + | Kemal Skripic (SF patch #1037371) + | + | 2004-09-22 Michael Smith <xmldoc@users.sourceforge.net> + | + | * .cvsignore: dbl1bs.ent added to ignore list; also re-sorted + | list + | + | 2004-09-17 <petere78@users.sourceforge.net> + | + | * Makefile, dbl10n.dsl, dbl10n.ent, dbl10n.template, + | dbl1bs.dsl: Bosnian translation by Kemal Skripic + | + | 2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbcommon.dsl: Fix a problem pointed out by Tim Waugh in + | articleinfo vs artheader in the article-title procedure. + | Also ensure articleinfo is used in some other contexts. + | + +Changes to dsssl/docsrc/* + + | 2004-10-23 Michael Smith <xmldoc@users.sourceforge.net> + | + | * collateindex.sgm, dblib.sgm, docbook.sgm, htparam.sgm, + | imagelib.sgm, indexing.sgm, olinksemantics.sgm, + | otherdoc.sgm, prparam.sgm: Bug #1052834 (PIs in dsssl/doc + | sources causing jade errors) apparently jade has a problem + | dealing with single quotation marks in PIs -- at least it + | appears like that in the case where it needs to take a + | single-quoted value from within a PI and use it to write a + | filename; so changed al single-quote filenames in PIs to + | doubly quoted ones; seems to have made jade happy + | + | 2004-09-18 <petere78@users.sourceforge.net> + | + | * custom.sgm: Fix for Documentation Request #510281: Add + | missing -d option in example + | + | * custom.sgm: Fix for Documentation Request #992388: Removed + | obsolete section about setting the stylesheet language via a + | customization layer (now done using a stylesheet parameter). + | + | 2003-03-17 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * doc.dsl: Minor readability fixes. + | + +Changes to dsssl/html/* + + | 2004-10-10 <petere78@users.sourceforge.net> + | + | * dbhtml.dsl, dbparam.dsl, dbttlpg.dsl: Support for specifying + | a system ID for the HTML output documents, required for + | better parsing in contemporary browsers. A default system ID + | is set if %html40% is true. + | + | 2004-10-09 <petere78@users.sourceforge.net> + | + | * docbook.dsl: New Bulgarian translation by Viktor Vasilev (SF + | patch #1040075) + | + | 2004-09-23 <petere78@users.sourceforge.net> + | + | * dbprocdr.dsl: Add CSS decoration of procedure steps (RFE + | #1033197) + | + | 2004-09-17 <petere78@users.sourceforge.net> + | + | * docbook.dsl: Bosnian translation by Kemal Skripic + | + | 2004-09-14 <petere78@users.sourceforge.net> + | + | * dbinline.dsl: Fix for bug #860398: Change uses of $var-seq$ + | to something more appropriate. + | + | 2004-07-11 <nyraghu@users.sourceforge.net> + | + | * version.dsl: Closes Bug 912831: the last character of + | VERSION was being cut off. + | + | 2003-05-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbblock.dsl: HTML attribs for comments variablized for + | maintenance. + | + | 2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbcompon.dsl: Finding the subtitle for a component should + | use the parent title if set; this is consistent with how the + | title is already set; closes SF bug 613773. + | + | 2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbpi.dsl: Ensure dbhtml-findvalue can handle the + | pi-field-list being a non-pair, which may occur in some + | poorly formed dbhtml PIs; returns #f in this case. + | + | 2003-04-27 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbcompon.dsl: Simplify some code, no functional changes + | + | 2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbcallou.dsl, dbparam.dsl: callout graphics and admonition + | graphics, if needed, share a single variable, + | %stock-graphics-extension% -- "stock" here referring to + | standard, stock images, e.g., not per document images; this + | closes Debian Bug#187429 + | + | 2003-04-12 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbadmon.dsl: VALIGN should be MIDDLE, not CENTER; closes + | Debian Bug#187569 + | + | 2003-04-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dblists.dsl: back out my last change; there are 4 places + | taht use this and until I understand how + | varlistentry-term-too-long? is supposed to work at all I + | better not mess with it + | + | * dblists.dsl: termlength in varlist is measurement-to-length, + | not string->number + | + | 2003-03-25 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * db31.dsl, dbblock.dsl, dbcompon.dsl, dbgraph.dsl, + | dbqanda.dsl, dbsect.dsl, docbook.dsl: move data from db31 + | into its proper component files + | + | 2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: Don't hardcode DSSSL file list, use $(wildcard + | *.dsl); clean is cleaner + | + +Changes to dsssl/lib/* + + | 2004-10-24 <petere78@users.sourceforge.net> + | + | * dblib.dsl: Revision 1.6 completely broke PI processing, so + | back that out for now. + | + | 2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dblib.dsl: Fix my-debug so it actually returns what you ask + | it to. + | + | 2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dblib.dsl: Make PI parsing more robust by rewriting + | parse-pi-attribute and a fix in parse-starttag-pi. I'm still + | not entirely happy with the PI parsing, its probably a + | little flakey, but it shouldn't completely bail out when it + | hits data its not expecting. Closes Debian Bug#186886. + | + | 2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dblib.dsl: Fix a typo in the param docs + | + | 2003-04-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dblib.dsl: xsl stylesheet refers to pica as "pc" rather than + | "pi", so we allow either one as a pica + | + +Changes to dsssl/print/* + + | 2004-10-10 <petere78@users.sourceforge.net> + | + | * dbadmon.dsl: Fix for bug #522140: Keep admonition titles and + | contents together when graphics are used. + | + | * dbcallou.dsl: Synchronized $callout-verbatim-display$ with + | $verbatim-display$; fixes bug #517520 (callout ignores width + | of programlisting) + | + | * dbttlpg.dsl: Give othercredit some useful rendering in print + | output, by copying over the author rendering. Fix + | author-list-string for authorgroups that contain both + | authors and othercredits. (bug #1038081) + | + | 2004-10-09 <petere78@users.sourceforge.net> + | + | * dbprint.dsl, dbverb.dsl: Patch #571688: Fixes excessive + | after spacing when a listitem contains multiple paras or + | verbatim environments. Patches originally by Tim Waugh and + | Tammy Fox. + | + | * docbook.dsl: New Bulgarian translation by Viktor Vasilev (SF + | patch #1040075) + | + | 2004-09-17 <petere78@users.sourceforge.net> + | + | * docbook.dsl: Bosnian translation by Kemal Skripic + | + | 2004-09-14 <petere78@users.sourceforge.net> + | + | * dbblock.dsl: Fix for bug #502066: Empty ulinks don't + | generate footnotes, so they should be omitted from the + | footnote counting. Patch by Bruce A. Mah. + | + | * dbprint.dsl: Fix for bug #529969: Make italic monospace and + | strong monospace inherit verbatim-size-factor. Patch by + | David Aumueller. + | + | 2004-07-11 <nyraghu@users.sourceforge.net> + | + | * version.dsl: Closes Bug 912831: the last character of + | VERSION was being cut off. + | + | 2003-12-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbdivis.dsl: fix a bug when multiple elements in + | $generate-book-lot-list$ had content; whitespace and comment + | updates + | + | 2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbcompon.dsl: Finding the subtitle for a component should + | use the parent title if set; this is consistent with how the + | title is already set; closes SF bug 613773. + | + | * dbcompon.dsl: Suppress some cases where components were + | restarting page numbering, fix from Ian Castle; closes SF + | bug 439751. + | + | * dbparam.dsl: Correct reference to undefined variable + | "admon-graphic-default-extension". + | + | * dbttlpg.dsl: Add elements to print version of + | article-titlepage-recto-elements so that it matches the HTML + | version, fixes SF bug 626909. + | + | 2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * dbparam.dsl: rename parameter + | admon-graphic-default-extension to + | %admon-graphics-extension% for consistency + | + | * dbparam.dsl: Note that %admon-graphics-path% requires the + | trailing directory separator -- + | + | * dbparam.dsl: %admon-graphics-extension% will use the old + | name, admon-graphic-default-extension, if set + | + | 2003-03-25 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * db31.dsl, dbblock.dsl, dbcompon.dsl, dbgraph.dsl, + | dbinline.dsl, dbqanda.dsl, dbsect.dsl, docbook.dsl: move + | data from db31 into its proper component files + | + | 2003-03-24 Jirka Kosek <kosek@users.sourceforge.net> + | + | * dbttlpg.dsl: Added support for revdescription inside revison + | on titlepages + | + | 2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * Makefile: Don't hardcode DSSSL file list, use $(wildcard + | *.dsl); clean is cleaner + | + +Changes to dsssl/doc/testdata/* + + | 2003-03-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + | + | * c01.htm, jtest.rtf, test.rtf: Generated files should not be + | in CVS + | + diff --git a/bin/ChangeLog b/bin/ChangeLog new file mode 100644 index 0000000..8c75e0d --- /dev/null +++ b/bin/ChangeLog @@ -0,0 +1,58 @@ +2004-10-24 <petere78@users.sourceforge.net> + + * collateindex.pl: Only mention the program's base name in the error messages. + +2004-10-23 <petere78@users.sourceforge.net> + + * Makefile: Don't put a "v" before the version number here. + + * collateindex.pl: Put the options list in some kind of order, and make the error messages + have a consistent format. + +2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: clean target cleans backup files and CVS junk + +2003-03-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: fix the POD release variable + +2003-01-19 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * collateindex.pl: fix from Tim Waugh for when the same indexterm has too different + seealso's, where currently script produces invalid SGML/XML; fixes bug #551318 + +2002-12-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * .cvsignore: New file. + +2002-08-08 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: New file. + +2002-01-07 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * collateindex.pl: emit a warning if a duplicated index entry is found and removed + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * collateindex.pl: Patch #468645: fix for indexterm zones in print + +2001-04-20 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * collateindex.pl: add POD documentation; remove the usage message documentation in the name of reducing redundancy + +2001-04-18 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * collateindex.pl: add -q (quiet) and -V (report version only) arguments + +2001-04-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * collateindex.pl: Whitespace changes + + * collateindex.pl: Fix bug 412898, produce links in the index, even in the presence of seealso + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * collateindex.pl: New file. + diff --git a/bin/collateindex.pl b/bin/collateindex.pl new file mode 100644 index 0000000..e384711 --- /dev/null +++ b/bin/collateindex.pl @@ -0,0 +1,737 @@ +#!/usr/bin/perl -- # -*- Perl -*- +# +# $Id: collateindex.pl,v 1.10 2004/10/24 17:05:41 petere78 Exp $ + +=head1 NAME + +collateindex.pl - generate DocBook index files + +=head1 SYNOPSIS + +B<collateindex.pl> [B<-f>] [B<-g>] [B<-i> I<id>] [B<-I> I<scope>] [B<-N>] + [B<-o> F<file>] [B<-p>] [B<-P> F<file>] [B<-q>] [B<-s> I<name>] + [B<-S> I<scope>] [B<-t> I<name>] [B<-x>] F<file> + +=head1 DESCRIPTION + +B<collateindex.pl> creates index data for DocBook XML or SGML files. + +=cut + +use File::Basename; +use Getopt::Std; + +$me = basename($0); + +$usage = "Usage: $0 [options] file +Try \"perldoc $me\" for documentation.\n"; + +( $version = '$Revision: 1.10 $' ) =~ s/^\$[R]evision:\s*([^ ]*)\s*\$$/$1/; + +=head1 OPTIONS + +=over 5 + +=item B<-f> + +Force the output file to be written, even if it appears to have been +edited by hand. + +=item B<-g> + +Group terms with IndexDiv based on the first letter of the term (or +its SortAs attribute). (This might not handle all language environments.) + +=item B<-i> I<id> + +The ID to use for the E<lt>indexE<gt> tag. + +=item B<-I> I<scope> + +The implied scope, must be C<all>, C<local>, or C<global>. IndexTerms +which do not specify a scope will have the implied scope. If +unspecified, C<all> is assumed. + +=item B<-N> + +New index (generates an empty index file). + +=item B<-o> F<file> + +Output to F<file>. Defaults to F<stdout>. + +=item B<-p> + +Link to points in the document. The default is to link to the closest +containing section. + +=item B<-P> F<file> + +Read a preamble from F<file>. The contents of F<file> will be +inserted before the E<lt>indexE<gt> tag. + +=item B<-q> + +Run quietly. + +=item B<-s> I<name> + +Name the IndexDiv that contains symbols. The default is C<Symbols>. +Meaningless if B<-g> is not used. + +=item B<-S> I<scope> + +Scope of the index, must be C<all>, C<local>, or C<global>. If +unspecified, C<all> is assumed. + +=item B<-t> I<name> + +Title for the index. + +=item B<-x> + +Make a SetIndex. + +=item B<-V> + +Print version number and exit. + +=item F<file> + +The file containing index data generated with the DocBook DSSSL +HTML stylesheet (usually called F<HTML.index>). + +=back + +=cut + + +die $usage if ! getopts('Dfgi:NpP:s:o:S:I:t:xqV'); + +$linkpoints = $opt_p; +$lettergroups = $opt_g; +$symbolsname = $opt_s || "Symbols"; +$title = $opt_t; +$preamble = $opt_P; +$outfile = $opt_o || '-'; +$indexid = $opt_i; +$scope = uc($opt_S) || 'ALL'; +$impliedscope = uc($opt_I) || 'ALL'; +$setindex = $opt_x; +$forceoutput = $opt_f; +$newindex = $opt_N; +$debug = $opt_D; +$quiet = $opt_q; + +if ( $opt_V ) { + print "collateindex.pl $version\n"; + exit 0; +} + +$indextag = $setindex ? 'setindex' : 'index'; + +if ($newindex) { + safe_open(*OUT, $outfile); + if ($indexid) { + print OUT "<$indextag id='$indexid'>\n\n"; + } else { + print OUT "<$indextag>\n\n"; + } + + print OUT "<!-- This file was produced by collateindex.pl. -->\n"; + print OUT "<!-- Remove this comment if you edit this file by hand! -->\n"; + + print OUT "</$indextag>\n"; + exit 0; +} + +$dat = shift @ARGV || die $usage; +die "$me: file \"$dat\" does not exist\n" if ! -f $dat; + +%legal_scopes = ('ALL' => 1, 'LOCAL' => 1, 'GLOBAL' => 1); +if ($scope && !$legal_scopes{$scope}) { + die "$me: invalid scope: $scope\n"; +} +if ($impliedscope && !$legal_scopes{$impliedscope}) { + die "$me: invalid implied scope: $impliedscope\n"; +} + +@term = (); +%id = (); + +$termcount = 0; + +$quiet || print STDERR "Processing $dat...\n"; + +# Read the index file, creating an array of objects. Each object +# represents and indexterm and has fields for the content of the +# indexterm + +open (F, $dat); +while (<F>) { + chop; + chop if /\r$/; + + if (/^\/indexterm/i) { + push (@term, $idx); + next; + } + + if (/^indexterm (.*)$/i) { + $termcount++; + $idx = {}; + $idx->{'zone'} = {}; + $idx->{'href'} = $1; + $idx->{'count'} = $termcount; + $idx->{'scope'} = $impliedscope; + next; + } + + if (/^indexpoint (.*)$/i) { + $idx->{'hrefpoint'} = $1; + next; + } + + if (/^title (.*)$/i) { + $idx->{'title'} = $1; + next; + } + + if (/^primary[\[ ](.*)$/i) { + if (/^primary\[(.*?)\] (.*)$/i) { + $idx->{'psortas'} = &escape($1); + $idx->{'primary'} = &escape($2); + } else { + $idx->{'psortas'} = &escape($1); + $idx->{'primary'} = &escape($1); + } + next; + } + + if (/^secondary[\[ ](.*)$/i) { + if (/^secondary\[(.*?)\] (.*)$/i) { + $idx->{'ssortas'} = &escape($1); + $idx->{'secondary'} = &escape($2); + } else { + $idx->{'ssortas'} = &escape($1); + $idx->{'secondary'} = &escape($1); + } + next; + } + + if (/^tertiary[\[ ](.*)$/i) { + if (/^tertiary\[(.*?)\] (.*)$/i) { + $idx->{'tsortas'} = &escape($1); + $idx->{'tertiary'} = &escape($2); + } else { + $idx->{'tsortas'} = &escape($1); + $idx->{'tertiary'} = &escape($1); + } + next; + } + + if (/^see (.*)$/i) { + $idx->{'see'} = &escape($1); + next; + } + + if (/^seealso (.*)$/i) { + $idx->{'seealso'} = &escape($1); + next; + } + + if (/^significance (.*)$/i) { + $idx->{'significance'} = &escape($1); + next; + } + + if (/^class (.*)$/i) { + $idx->{'class'} = &escape($1); + next; + } + + if (/^scope (.*)$/i) { + $idx->{'scope'} = &escape(uc($1)); + next; + } + + if (/^startref (.*)$/i) { + $idx->{'startref'} = $1; + next; + } + + if (/^id (.*)$/i) { + $idx->{'id'} = $1; + $id{$1} = $idx; + next; + } + + if (/^zone (.*)$/i) { + my($href) = $1; + $_ = scalar(<F>); + chop; + die "$me: invalid zone: $_\n" if !/^title (.*)$/i; + $idx->{'zone'}->{$href} = $1; + next; + } + + die "$me: unrecognized tag in input: $_\n"; +} +close (F); + +$quiet || print STDERR "$termcount entries loaded...\n"; + +# Fixup the startrefs... +# In DocBook, STARTREF is a #CONREF attribute; support this by copying +# all of the fields from the indexterm with the id specified by STARTREF +# to the indexterm that has the STARTREF. +foreach $idx (@term) { + my($ididx, $field); + if ($idx->{'startref'}) { + $ididx = $id{$idx->{'startref'}}; + foreach $field ('primary', 'secondary', 'tertiary', 'see', 'seealso', + 'psortas', 'ssortas', 'tsortas', 'significance', + 'class', 'scope') { + $idx->{$field} = $ididx->{$field}; + } + } +} + +# Sort the index terms +@term = sort termsort @term; + +# Move all of the non-alphabetic entries to the front of the index. +@term = sortsymbols(@term); + +safe_open(*OUT, $outfile); + +# Write the index... +if ($indexid) { + print OUT "<$indextag id='$indexid'>\n\n"; +} else { + print OUT "<$indextag>\n\n"; +} + +print OUT "<!-- This file was produced by collateindex.pl. -->\n"; +print OUT "<!-- Remove this comment if you edit this file by hand! -->\n"; + +print OUT "<!-- ULINK is abused here. + + The URL attribute holds the URL that points from the index entry + back to the appropriate place in the output produced by the HTML + stylesheet. (It's much easier to calculate this URL in the first + pass.) + + The Role attribute holds the ID (either real or manufactured) of + the corresponding INDEXTERM. This is used by the print backends + to produce page numbers. + + The entries below are sorted and collated into the correct order. + Duplicates may be removed in the HTML backend, but in the print + backends, it is impossible to suppress duplicate pages or coalesce + sequences of pages into a range. +-->\n\n"; + +print OUT "<title>$title</title>\n\n" if $title; + +$last = {}; # the last indexterm we processed +$first = 1; # this is the first one +$group = ""; # we're not in a group yet +$lastout = ""; # we've not put anything out yet +@seealsos = (); # See also stack. + +foreach $idx (@term) { + next if $idx->{'startref'}; # no way to represent spans... + next if ($idx->{'scope'} eq 'LOCAL') && ($scope eq 'GLOBAL'); + next if ($idx->{'scope'} eq 'GLOBAL') && ($scope eq 'LOCAL'); + next if &same($idx, $last); # suppress duplicates + + $termcount--; + + # If primary changes, output a whole new index term, otherwise just + # output another secondary or tertiary, as appropriate. We know from + # sorting that the terms will always be in the right order. + if (!&tsame($last, $idx, 'primary')) { + print "DIFF PRIM\n" if $debug; + &end_entry() if not $first; + + if ($lettergroups) { + # If we're grouping, make the right indexdivs + $letter = $idx->{'psortas'}; + $letter = $idx->{'primary'} if !$letter; + $letter = uc(substr($letter, 0, 1)); + + # symbols are a special case + if (($letter lt 'A') || ($letter gt 'Z')) { + if (($group eq '') + || (($group ge 'A') && ($group le 'Z'))) { + print OUT "</indexdiv>\n" if !$first; + print OUT "<indexdiv><title>$symbolsname</title>\n\n"; + $group = $letter; + } + } elsif (($group eq '') || ($group ne $letter)) { + print OUT "</indexdiv>\n" if !$first; + print OUT "<indexdiv><title>$letter</title>\n\n"; + $group = $letter; + } + } + + $first = 0; # there can only be on first ;-) + + print OUT "<indexentry>\n"; + print OUT " <primaryie>", $idx->{'primary'}; + $lastout = "primaryie"; + + if ($idx->{'secondary'}) { + print OUT "\n </primaryie>\n"; + print OUT " <secondaryie>", $idx->{'secondary'}; + $lastout = "secondaryie"; + }; + + if ($idx->{'tertiary'}) { + print OUT "\n </secondaryie>\n"; + print OUT " <tertiaryie>", $idx->{'tertiary'}; + $lastout = "tertiaryie"; + } + } elsif (!&tsame($last, $idx, 'secondary')) { + print "DIFF SEC\n" if $debug; + + print OUT "\n </$lastout>\n" if $lastout; + + foreach (@seealsos) { + # it'd be nice to make this a link... + print OUT $indent, " <seealsoie>", &escape($_), "</seealsoie>\n"; + } + @seealsos = (); + + print OUT " <secondaryie>", $idx->{'secondary'}; + $lastout = "secondaryie"; + if ($idx->{'tertiary'}) { + print OUT "\n </secondaryie>\n"; + print OUT " <tertiaryie>", $idx->{'tertiary'}; + $lastout = "tertiaryie"; + } + } elsif (!&tsame($last, $idx, 'tertiary')) { + print "DIFF TERT\n" if $debug; + + print OUT "\n </$lastout>\n" if $lastout; + + foreach (@seealsos) { + # it'd be nice to make this a link... + print OUT $indent, " <seealsoie>", &escape($_), "</seealsoie>\n"; + } + @seealsos = (); + + if ($idx->{'tertiary'}) { + print OUT " <tertiaryie>", $idx->{'tertiary'}; + $lastout = "tertiaryie"; + } + } + + &print_term($idx); + + $last = $idx; +} + +# Termcount is > 0 iff some entries were skipped. +$quiet || print STDERR "$termcount entries ignored...\n"; + +&end_entry(); + +print OUT "</indexdiv>\n" if $lettergroups; +print OUT "</$indextag>\n"; + +close (OUT); + +$quiet || print STDERR "Done.\n"; + +sub same { + my($a) = shift; + my($b) = shift; + + my($aP) = $a->{'psortas'} || $a->{'primary'}; + my($aS) = $a->{'ssortas'} || $a->{'secondary'}; + my($aT) = $a->{'tsortas'} || $a->{'tertiary'}; + + my($bP) = $b->{'psortas'} || $b->{'primary'}; + my($bS) = $b->{'ssortas'} || $b->{'secondary'}; + my($bT) = $b->{'tsortas'} || $b->{'tertiary'}; + + my($same); + + $aP =~ s/^\s*//; $aP =~ s/\s*$//; $aP = uc($aP); + $aS =~ s/^\s*//; $aS =~ s/\s*$//; $aS = uc($aS); + $aT =~ s/^\s*//; $aT =~ s/\s*$//; $aT = uc($aT); + $bP =~ s/^\s*//; $bP =~ s/\s*$//; $bP = uc($bP); + $bS =~ s/^\s*//; $bS =~ s/\s*$//; $bS = uc($bS); + $bT =~ s/^\s*//; $bT =~ s/\s*$//; $bT = uc($bT); + +# print "[$aP]=[$bP]\n"; +# print "[$aS]=[$bS]\n"; +# print "[$aT]=[$bT]\n"; + + # Two index terms are the same if: + # 1. the primary, secondary, and tertiary entries are the same + # (or have the same SORTAS) + # AND + # 2. They occur in the same titled section + # AND + # 3. They point to the same place + # + # Notes: Scope is used to suppress some entries, but can't be used + # for comparing duplicates. + # Interpretation of "the same place" depends on whether or + # not $linkpoints is true. + + $same = (($aP eq $bP) + && ($aS eq $bS) + && ($aT eq $bT) + && ($a->{'title'} eq $b->{'title'}) + && ($a->{'href'} eq $b->{'href'})); + + # If we're linking to points, they're only the same if they link + # to exactly the same spot. + $same = $same && ($a->{'hrefpoint'} eq $b->{'hrefpoint'}) + if $linkpoints; + + if ($same) { + warn "$me: duplicated index entry found: $aP $aS $aT\n"; + } + + $same; +} + +sub tsame { + # Unlike same(), tsame only compares a single term + my($a) = shift; + my($b) = shift; + my($term) = shift; + my($sterm) = substr($term, 0, 1) . "sortas"; + my($A, $B); + + $A = $a->{$sterm} || $a->{$term}; + $B = $b->{$sterm} || $b->{$term}; + + $A =~ s/^\s*//; $A =~ s/\s*$//; $A = uc($A); + $B =~ s/^\s*//; $B =~ s/\s*$//; $B = uc($B); + + return $A eq $B; +} + +sub end_entry { + # End any open elements... + print OUT "\n </$lastout>\n" if $lastout; + + foreach (@seealsos) { + # it'd be nice to make this a link... + print OUT $indent, " <seealsoie>", &escape($_), "</seealsoie>\n"; + } + @seealsos = (); + + print OUT "</indexentry>\n\n"; + $lastout = ""; +} + +sub print_term { + # Print out the links for an indexterm. There can be more than + # one if the term has a ZONE that points to more than one place. + # (do we do the right thing in that case?) + my($idx) = shift; + my($key, $indent, @hrefs); + my(%href) = (); + my(%phref) = (); + + $indent = " "; + + if ($idx->{'see'}) { + # it'd be nice to make this a link... + if ($lastout) { + print OUT "\n </$lastout>\n"; + $lastout = ""; + } + print OUT $indent, "<seeie>", &escape($idx->{'see'}), "</seeie>\n"; + return; + } + + if (keys %{$idx->{'zone'}}) { + foreach $key (keys %{$idx->{'zone'}}) { + $href{$key} = $idx->{'zone'}->{$key}; + $phref{$key} = $key; + } + } else { + $href{$idx->{'href'}} = $idx->{'title'}; + $phref{$idx->{'href'}} = $idx->{'hrefpoint'}; + } + + # We can't use <LINK> because we don't know the ID of the term in the + # original source (and, in fact, it might not have one). + print OUT ",\n"; + @hrefs = keys %href; + while (@hrefs) { + my($linkend) = ""; + my($role) = ""; + $key = shift @hrefs; + if ($linkpoints) { + $linkend = $phref{$key}; + } else { + $linkend = $key; + } + + $role = $phref{$key}; + $role = $1 if $role =~ /\#(.*)$/; + $role = $1 if $role =~ /(.*)\./; + + print OUT $indent; + print OUT "<ulink url=\"$linkend\" role=\"$role\">"; + print OUT "<emphasis>" if ($idx->{'significance'} eq 'PREFERRED'); + print OUT &escape($href{$key}); + print OUT "</emphasis>" if ($idx->{'significance'} eq 'PREFERRED'); + print OUT "</ulink>"; + } + + if ($idx->{'seealso'}) { + push @seealsos, $idx->{'seealso'}; + } +} + +sub termsort { + my($aP) = $a->{'psortas'} || $a->{'primary'}; + my($aS) = $a->{'ssortas'} || $a->{'secondary'}; + my($aT) = $a->{'tsortas'} || $a->{'tertiary'}; + my($ap) = $a->{'count'}; + + my($bP) = $b->{'psortas'} || $b->{'primary'}; + my($bS) = $b->{'ssortas'} || $b->{'secondary'}; + my($bT) = $b->{'tsortas'} || $b->{'tertiary'}; + my($bp) = $b->{'count'}; + + $aP =~ s/^\s*//; $aP =~ s/\s*$//; $aP = uc($aP); + $aS =~ s/^\s*//; $aS =~ s/\s*$//; $aS = uc($aS); + $aT =~ s/^\s*//; $aT =~ s/\s*$//; $aT = uc($aT); + $bP =~ s/^\s*//; $bP =~ s/\s*$//; $bP = uc($bP); + $bS =~ s/^\s*//; $bS =~ s/\s*$//; $bS = uc($bS); + $bT =~ s/^\s*//; $bT =~ s/\s*$//; $bT = uc($bT); + + if ($aP eq $bP) { + if ($aS eq $bS) { + if ($aT eq $bT) { + # make sure seealso's always sort to the bottom + return 1 if ($a->{'seealso'}); + return -1 if ($b->{'seealso'}); + # if everything else is the same, keep these elements + # in document order (so the index links are in the right + # order) + return $ap <=> $bp; + } else { + return $aT cmp $bT; + } + } else { + return $aS cmp $bS; + } + } else { + return $aP cmp $bP; + } +} + +sub sortsymbols { + my(@term) = @_; + my(@new) = (); + my(@sym) = (); + my($letter); + my($idx); + + # Move the non-letter things to the front. Should digits be thier + # own group? Maybe... + foreach $idx (@term) { + $letter = $idx->{'psortas'}; + $letter = $idx->{'primary'} if !$letter; + $letter = uc(substr($letter, 0, 1)); + + if (($letter lt 'A') || ($letter gt 'Z')) { + push (@sym, $idx); + } else { + push (@new, $idx); + } + } + + return (@sym, @new); +} + +sub safe_open { + local(*OUT) = shift; + local(*F, $_); + + if (($outfile ne '-') && (!$forceoutput)) { + my($handedit) = 1; + if (open (OUT, $outfile)) { + while (<OUT>) { + if (/<!-- Remove this comment if you edit this file by hand! -->/){ + $handedit = 0; + last; + } + } + close (OUT); + } else { + $handedit = 0; + } + + if ($handedit) { + print STDERR "$me: file \"$outfile\" appears to have been edited by hand\n"; + print STDERR "Use the -f option or specify a different output file name.\n"; + exit 1; + } + } + + open (OUT, ">$outfile") || die "$me: could not open file \"$outfile\": $!\n"; + + if ($preamble) { + # Copy the preamble + if (open(F, $preamble)) { + while (<F>) { + print OUT $_; + } + close(F); + } else { + warn "$me: could not open preamble file \"$preamble\": $!\n"; + } + } +} + +sub escape { + # make sure & and < don't show up in the index + local $_ = shift; + s/&/&/sg; + s/</</sg; + s/>/>/sg; # what the heck + + return $_; +} + + + +=head1 EXAMPLE + +B<collateindex.pl> B<-o> F<index.sgml> F<HTML.index> + +=head1 EXIT STATUS + +=over 5 + +=item B<0> + +Success + +=item B<1> + +Failure + +=back + +=head1 AUTHOR + +Norm Walsh E<lt>ndw@nwalsh.comE<gt> + +Minor updates by Adam Di Carlo E<lt>adam@onshore.comE<gt> and Peter Eisentraut E<lt>peter_e@gmx.netE<gt> + +=cut + diff --git a/bin/collateindex.pl.1 b/bin/collateindex.pl.1 new file mode 100644 index 0000000..a1b7020 --- /dev/null +++ b/bin/collateindex.pl.1 @@ -0,0 +1,214 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "COLLATEINDEX 1" +.TH COLLATEINDEX 1 "2004-11-04" "docbook-dsssl 1.79" "DocBook DSSSL" +.SH "NAME" +collateindex.pl \- generate DocBook index files +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBcollateindex.pl\fR [\fB\-f\fR] [\fB\-g\fR] [\fB\-i\fR \fIid\fR] [\fB\-I\fR \fIscope\fR] [\fB\-N\fR] + [\fB\-o\fR \fIfile\fR] [\fB\-p\fR] [\fB\-P\fR \fIfile\fR] [\fB\-q\fR] [\fB\-s\fR \fIname\fR] + [\fB\-S\fR \fIscope\fR] [\fB\-t\fR \fIname\fR] [\fB\-x\fR] \fIfile\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBcollateindex.pl\fR creates index data for DocBook \s-1XML\s0 or \s-1SGML\s0 files. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-f\fR" 5 +.IX Item "-f" +Force the output file to be written, even if it appears to have been +edited by hand. +.IP "\fB\-g\fR" 5 +.IX Item "-g" +Group terms with IndexDiv based on the first letter of the term (or +its SortAs attribute). (This might not handle all language environments.) +.IP "\fB\-i\fR \fIid\fR" 5 +.IX Item "-i id" +The \s-1ID\s0 to use for the <index> tag. +.IP "\fB\-I\fR \fIscope\fR" 5 +.IX Item "-I scope" +The implied scope, must be \f(CW\*(C`all\*(C'\fR, \f(CW\*(C`local\*(C'\fR, or \f(CW\*(C`global\*(C'\fR. IndexTerms +which do not specify a scope will have the implied scope. If +unspecified, \f(CW\*(C`all\*(C'\fR is assumed. +.IP "\fB\-N\fR" 5 +.IX Item "-N" +New index (generates an empty index file). +.IP "\fB\-o\fR \fIfile\fR" 5 +.IX Item "-o file" +Output to \fIfile\fR. Defaults to \fIstdout\fR. +.IP "\fB\-p\fR" 5 +.IX Item "-p" +Link to points in the document. The default is to link to the closest +containing section. +.IP "\fB\-P\fR \fIfile\fR" 5 +.IX Item "-P file" +Read a preamble from \fIfile\fR. The contents of \fIfile\fR will be +inserted before the <index> tag. +.IP "\fB\-q\fR" 5 +.IX Item "-q" +Run quietly. +.IP "\fB\-s\fR \fIname\fR" 5 +.IX Item "-s name" +Name the IndexDiv that contains symbols. The default is \f(CW\*(C`Symbols\*(C'\fR. +Meaningless if \fB\-g\fR is not used. +.IP "\fB\-S\fR \fIscope\fR" 5 +.IX Item "-S scope" +Scope of the index, must be \f(CW\*(C`all\*(C'\fR, \f(CW\*(C`local\*(C'\fR, or \f(CW\*(C`global\*(C'\fR. If +unspecified, \f(CW\*(C`all\*(C'\fR is assumed. +.IP "\fB\-t\fR \fIname\fR" 5 +.IX Item "-t name" +Title for the index. +.IP "\fB\-x\fR" 5 +.IX Item "-x" +Make a SetIndex. +.IP "\fB\-V\fR" 5 +.IX Item "-V" +Print version number and exit. +.IP "\fIfile\fR" 5 +.IX Item "file" +The file containing index data generated with the DocBook \s-1DSSSL\s0 +\&\s-1HTML\s0 stylesheet (usually called \fI\s-1HTML\s0.index\fR). +.SH "EXAMPLE" +.IX Header "EXAMPLE" +\&\fBcollateindex.pl\fR \fB\-o\fR \fIindex.sgml\fR \fI\s-1HTML\s0.index\fR +.SH "EXIT STATUS" +.IX Header "EXIT STATUS" +.IP "\fB0\fR" 5 +.IX Item "0" +Success +.IP "\fB1\fR" 5 +.IX Item "1" +Failure +.SH "AUTHOR" +.IX Header "AUTHOR" +Norm Walsh <ndw@nwalsh.com> +.PP +Minor updates by Adam Di Carlo <adam@onshore.com> and Peter Eisentraut <peter_e@gmx.net> @@ -0,0 +1,53 @@ +OVERRIDE YES + +-- Stylesheets -- + +PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" + print/docbook.dsl + +PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" + html/docbook.dsl + +PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library//EN" + lib/dblib.dsl + +PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library V2//EN" + lib/dblib.dsl + +-- DTDs -- + +PUBLIC "+//IDN nwalsh.com//DTD DocBook DSSSL Architecture V1.0//EN" + dtds/dbdsssl/dbdsssl.dtd + +PUBLIC "-//Norman Walsh//DTD DocBook OLink Summary V1.1//EN" + dtds/olink/olinksum.dtd + +PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN" + dtds/html/dbhtml.dtd + +DTDDECL "-//Norman Walsh//DTD DocBook HTML 1.0//EN" + dtds/html/dbhtml.dcl + +PUBLIC "-//Norman Walsh//DTD Image Library 1.0//EN" + dtds/imagelib/imagelib.dtd + +-- Entities -- + +PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML" + dtds/html/ISOlat1.gml + +-- Documents -- + +PUBLIC "-//Norman Walsh//DOCUMENT DocBook DSSSL Stylesheet Documentation V1.0//EN" + docsrc/docbook.sgm + +PUBLIC "-//Norman Walsh//DOCUMENT OLink Test Document V1.0//EN" + docsrc/olinktarget.sgm + +PUBLIC "-//Norman Walsh//DOCUMENT OLink Semantics in the DocBook DSSSL Stylesheets V1.0//EN" + docsrc/olinksemantics.sgm + +-- Declarations -- + +-- SGMLDECL "dtds/decls/docbook.dcl" -- + diff --git a/common/ChangeLog b/common/ChangeLog new file mode 100644 index 0000000..bfdbc87 --- /dev/null +++ b/common/ChangeLog @@ -0,0 +1,157 @@ +2004-10-10 <petere78@users.sourceforge.net> + + * dbcommon.dsl: Give othercredit some useful rendering in print output, by copying over the + author rendering. Fix author-list-string for authorgroups that contain + both authors and othercredits. (bug #1038081) + +2004-10-09 <petere78@users.sourceforge.net> + + * .cvsignore, Makefile, dbl10n.dsl, dbl10n.ent, dbl10n.template, dbl1bg.dsl: + New Bulgarian translation by Viktor Vasilev (SF patch #1040075) + + * dbl1bs.dsl: Additional fixes for Bosnian translation, by Kemal Skripic (SF patch + #1037371) + +2004-09-22 Michael Smith <xmldoc@users.sourceforge.net> + + * .cvsignore: dbl1bs.ent added to ignore list; also re-sorted list + +2004-09-17 <petere78@users.sourceforge.net> + + * Makefile, dbl10n.dsl, dbl10n.ent, dbl10n.template, dbl1bs.dsl: + Bosnian translation by Kemal Skripic + +2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcommon.dsl: Fix a problem pointed out by Tim Waugh in articleinfo vs artheader in + the article-title procedure. Also ensure articleinfo is used in some + other contexts. + +2003-01-15 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcommon.dsl: make <section> appear correctly in the PDF bookmark hierarchy; also + fix font size selection for section titles + + corrects sourceforge bugs 589247 and 524028; patch from Carsten Haese + appreciated + +2002-12-20 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbl1en.dsl: fix up some case-folding incidents + +2002-08-07 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: dbl1he.ent doesn't exist, was breaking build + +2002-06-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbl1tr.dsl: Patch #554930: obvious gentext-tr-intra-label-sep fix + +2002-04-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, Makefile: (Incomplete) support for Hebrew + +2002-03-24 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * .cvsignore, Makefile: suffix rules for the *.ent production; add a rule to create a catalog + automatically form the *.dsl files + + * Makefile: clean shouldn't remove dbl10n.ent + +2002-03-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbl10n.dsl: Remove duplicated comment + +2002-02-22 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Fix test for articles in books + +2002-02-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbl1fr.dsl: Fix French quotes + +2002-01-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, Makefile: Added Thai localization + +2001-12-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Bug #435320: Poor enumeration of LoTs and LoFs + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Bug #473531 numbering of blocks when the root element is not a component + +2001-11-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, dbl10n.ent: Merged V174bugfixes + + * .cvsignore, dbl10n.ent: New file. + + * dbcommon.dsl: Patch #473116: Section levels + + * dbl10n.ent: branches: 1.1.2; + file dbl10n.ent was initially added on branch V174bugfixes. + +2001-11-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Support artheader or articleinfo as the info-element of an article + +2001-11-14 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile, dbl10n.dsl, dbl10n.pl, dbl10n.template, dbl1eu.dsl, dbl1nn.dsl, dbl1uk.dsl, dbl1xh.dsl: + Added Basque, Nynorsk, Ukranian, and Xhosa + +2001-09-23 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Patch #461632, title sizes for bibliography and index divs + + * dbcommon.dsl: Patch #460349, don't check extension for linespecific inclusions + +2001-09-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Bug #459209, allow format attribute to be absent + +2001-09-06 Jirka Kosek <kosek@users.sourceforge.net> + + * dbl1cs.dsl: Synchronized with localization in cs.xml + +2001-08-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl: Fix XML/SGML discrepancy wrt normalization of notation names; move some common stuff into dbcommon + +2001-07-04 <uid48421@users.sourceforge.net> + + * Makefile, dbl10n.dsl, dbl1af.dsl, dbl1tr.dsl: Added Afrikaans and Turkish + +2001-06-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcommon.dsl, dbl10n.dsl, dbl1ca.dsl, dbl1cs.dsl, dbl1da.dsl, dbl1de.dsl, dbl1el.dsl, dbl1en.dsl, dbl1es.dsl, dbl1et.dsl, dbl1fi.dsl, dbl1fr.dsl, dbl1hu.dsl, dbl1id.dsl, dbl1it.dsl, dbl1ja.dsl, dbl1ko.dsl, dbl1nl.dsl, dbl1no.dsl, dbl1pl.dsl, dbl1pt.dsl, dbl1ptbr.dsl, dbl1ro.dsl, dbl1ru.dsl, dbl1sk.dsl, dbl1sl.dsl, dbl1sr.dsl, dbl1sv.dsl, dbl1zhcn.dsl, dbl1zhtw.dsl: + Updated support for locale-sensitive commas in lists + +2001-05-11 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbl10n.dsl, dbl1sr.dsl, dbl1zhtw.dsl: Support Serbian and Traditional Chinese + +2001-05-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: Add (partial support for) Serbian localization + +2001-04-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile, cs-hack.pl: Fixed charset issues that caused the .ent files not to work in SGML + +2001-04-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbl1ko.dsl: Updates from Park Yong Joo + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore: branches: 1.1.2; + Added Makefiles to build common/*.ent + + * Makefile: New file. + + * dbcommon.dsl, dbl10n.dsl, dbl1ca.dsl, dbl1cs.dsl, dbl1da.dsl, dbl1de.dsl, dbl1el.dsl, dbl1en.dsl, dbl1es.dsl, dbl1et.dsl, dbl1fi.dsl, dbl1fr.dsl, dbl1hu.dsl, dbl1id.dsl, dbl1it.dsl, dbl1ja.dsl, dbl1ko.dsl, dbl1nl.dsl, dbl1no.dsl, dbl1null.dsl, dbl1pl.dsl, dbl1pt.dsl, dbl1ptbr.dsl, dbl1ro.dsl, dbl1ru.dsl, dbl1sk.dsl, dbl1sl.dsl, dbl1sv.dsl, dbl1zhcn.dsl, dbtable.dsl: + New file. + diff --git a/common/catalog b/common/catalog new file mode 100644 index 0000000..5829925 --- /dev/null +++ b/common/catalog @@ -0,0 +1,37 @@ +OVERRIDE YES +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//AF" "dbl1af.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//BG" "dbl1bg.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//BS" "dbl1bs.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//CA" "dbl1ca.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//CS" "dbl1cs.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//DA" "dbl1da.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//DE" "dbl1de.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EL" "dbl1el.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EN" "dbl1en.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ES" "dbl1es.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ET" "dbl1et.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EU" "dbl1eu.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FI" "dbl1fi.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FR" "dbl1fr.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//HU" "dbl1hu.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//IN" "dbl1id.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//IT" "dbl1it.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//JA" "dbl1ja.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//KO" "dbl1ko.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NL" "dbl1nl.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NN" "dbl1nn.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NO" "dbl1no.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PL" "dbl1pl.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PT" "dbl1pt.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PTBR" "dbl1ptbr.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//RO" "dbl1ro.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//RU" "dbl1ru.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SK" "dbl1sk.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SL" "dbl1sl.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SR" "dbl1sr.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SV" "dbl1sv.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//TR" "dbl1tr.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//UK" "dbl1uk.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//XH" "dbl1xh.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ZHCN" "dbl1zhcn.ent" +PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ZHTW" "dbl1zhtw.ent" diff --git a/common/cs-hack.pl b/common/cs-hack.pl new file mode 100644 index 0000000..7f1c1ee --- /dev/null +++ b/common/cs-hack.pl @@ -0,0 +1,8 @@ +#!/bin/perl -- # -*- Perl -*- + +# Charset hacking... + +while (<>) { + s/\&\#(\d+);/sprintf("\\U-%04X;", $1)/egs; + print; +} diff --git a/common/dbcommon.dsl b/common/dbcommon.dsl new file mode 100644 index 0000000..16e133b --- /dev/null +++ b/common/dbcommon.dsl @@ -0,0 +1,1904 @@ +;; $Id: dbcommon.dsl,v 1.14 2004/10/10 21:15:05 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; +;; This file contains general functions common to both print and HTML +;; versions of the DocBook stylesheets. +;; + +;; If **ANY** change is made to this file, you _MUST_ alter the +;; following definition: + +(define %docbook-common-version% + "Modular DocBook Stylesheet Common Functions") + +;; === element lists ==================================================== + +;; these have to be functions because they have to be evaluated when +;; there is a current-node so that normalize can know what declaration +;; is in effect + +(define (set-element-list) + (list (normalize "set"))) + +(define (book-element-list) + (list (normalize "book"))) + +(define (division-element-list) + (list (normalize "part"))) + +(define (component-element-list) + (list (normalize "preface") + (normalize "chapter") + (normalize "appendix") + (normalize "article") + (normalize "glossary") + (normalize "bibliography") + (normalize "index") + (normalize "colophon") + (normalize "setindex") + (normalize "reference") + (normalize "refentry") + (normalize "book"))) ;; just in case nothing else matches... + +(define (major-component-element-list) + (list (normalize "preface") + (normalize "chapter") + (normalize "appendix") + (normalize "article") + (normalize "glossary") + (normalize "bibliography") + (normalize "index") + (normalize "colophon") + (normalize "setindex") + (normalize "reference") + (normalize "refentry") + (normalize "part") + (normalize "book"))) ;; just in case nothing else matches... + +(define (section-element-list) + (list (normalize "sect1") + (normalize "sect2") + (normalize "sect3") + (normalize "sect4") + (normalize "sect5") + (normalize "section") + (normalize "simplesect") + (normalize "refsect1") + (normalize "refsect2") + (normalize "refsect3"))) + +(define (block-element-list) + (list (normalize "example") + (normalize "figure") + (normalize "table") + (normalize "equation") + (normalize "procedure"))) + +(define (outer-parent-list) + (list (normalize "toc") + (normalize "lot") + (normalize "appendix") + (normalize "chapter") + (normalize "part") + (normalize "preface") + (normalize "reference") + (normalize "bibliography") + (normalize "glossary") + (normalize "index") + (normalize "setindex") + (normalize "sect1") + (normalize "sect2") + (normalize "sect3") + (normalize "sect4") + (normalize "sect5") + (normalize "simplesect") + (normalize "partintro") + (normalize "bibliodiv") + (normalize "glossdiv") + (normalize "indexdiv") + (normalize "refentry") + (normalize "refsect1") + (normalize "refsect2") + (normalize "refsect3") + (normalize "msgtext") + (normalize "msgexplan"))) + +(define (list-element-list) + (list (normalize "orderedlist") + (normalize "itemizedlist") + (normalize "variablelist") + (normalize "segmentedlist") + (normalize "simplelist") + (normalize "calloutlist") + (normalize "step"))) + +(define (info-element-list) + (list (normalize "appendixinfo") + (normalize "articleinfo") + (normalize "bibliographyinfo") + (normalize "bookinfo") + (normalize "chapterinfo") + (normalize "glossaryinfo") + (normalize "indexinfo") + (normalize "objectinfo") + (normalize "partinfo") + (normalize "prefaceinfo") + (normalize "refentryinfo") + (normalize "referenceinfo") + (normalize "refsect1info") + (normalize "refsect2info") + (normalize "refsect3info") + (normalize "refsynopsisdivinfo") + (normalize "sect1info") + (normalize "sect2info") + (normalize "sect3info") + (normalize "sect4info") + (normalize "sect5info") + (normalize "sectioninfo") + (normalize "setindexinfo") + (normalize "setinfo") + (normalize "sidebarinfo") + ;; historical + (normalize "artheader") + (normalize "docinfo"))) + +;; === automatic TOC ==================================================== + +;; Returns #t if nd should appear in the auto TOC +(define (appears-in-auto-toc? nd) + (if (or (equal? (gi nd) (normalize "refsect1")) + (have-ancestor? (normalize "refsect1") nd)) + #f + #t)) + +;; # return elements of nl for which appears-in-auto-toc? is #t +(define (toc-list-filter nodelist) + (let loop ((toclist (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + toclist + (if (appears-in-auto-toc? (node-list-first nl)) + (loop (node-list toclist (node-list-first nl)) + (node-list-rest nl)) + (loop toclist (node-list-rest nl)))))) + +;; === common =========================================================== + +(define (INLIST?) + (has-ancestor-member? (current-node) (list-element-list))) + +(define (INBLOCK?) + (has-ancestor-member? (current-node) + (list (normalize "example") + (normalize "informalexample") + (normalize "figure") + (normalize "informalfigure") + (normalize "equation") + (normalize "informalequation") + (normalize "funcsynopsis") + (normalize "programlistingco") + (normalize "screenco") + (normalize "graphicco")))) + +(define (PARNUM) + (child-number (parent (current-node)))) + +(define (NESTEDFNUM n fmt) + (if (number? n) + (format-number n fmt) + #f)) + +(define (FNUM n) (NESTEDFNUM n "1")) + +(define (book-start?) + ;; Returns #t if the current-node is in the first division or + ;; component of a book. + (let ((book (ancestor (normalize "book"))) + (nd (ancestor-member + (current-node) + (append (component-element-list) (division-element-list))))) + (let loop ((ch (children book))) + (if (node-list-empty? ch) + #f + (if (member (gi (node-list-first ch)) + (append (component-element-list) (division-element-list))) + (node-list=? (node-list-first ch) nd) + (loop (node-list-rest ch))))))) + +(define (first-chapter?) + ;; Returns #t if the current-node is in the first chapter of a book + (let* ((book (ancestor (normalize "book"))) + (nd (ancestor-member + (current-node) + (append (component-element-list) (division-element-list)))) + (bookch (children book)) + (bookcomp (expand-children bookch (list (normalize "part"))))) + (let loop ((nl bookcomp)) + (if (node-list-empty? nl) + #f + (if (equal? (gi (node-list-first nl)) (normalize "chapter")) + (if (node-list=? (node-list-first nl) nd) + #t + #f) + (loop (node-list-rest nl))))))) + +;; === bibliographic ==================================================== + +;; Localized author-string + +(define (author-list-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of AUTHOR + ;; *including appropriate punctuation* if the AUTHOR occurs in a list + ;; of AUTHORs in an AUTHORGROUP: + ;; + ;; John Doe + ;; or + ;; John Doe and Jane Doe + ;; or + ;; John Doe, Jane Doe, and A. Nonymous + ;; + + (let* ((author-node-list (select-elements + (descendants + (ancestor (normalize "authorgroup") author)) + (normalize "author"))) + (corpauthor-node-list (select-elements + (descendants + (ancestor (normalize "authorgroup") author)) + (normalize "corpauthor"))) + (othercredit-node-list (select-elements + (descendants + (ancestor (normalize "authorgroup") author)) + (normalize "othercredit"))) + (editor-node-list (select-elements + (descendants + (ancestor (normalize "authorgroup"))) + (normalize "editor"))) + (author-count (if (have-ancestor? (normalize "authorgroup") author) + (+ (node-list-length author-node-list) + (node-list-length corpauthor-node-list) + (node-list-length othercredit-node-list) + (node-list-length editor-node-list)) + 1)) + (this-count (if (have-ancestor? (normalize "authorgroup") author) + (+ (node-list-length (preced author)) 1) + 1))) + (string-append + (if (and (> author-count 1) + (absolute-last-sibling? author)) + (string-append (gentext-and) " ") + "") + + (author-string author) + + (if (> author-count 2) + (if (> (- author-count this-count) 1) + (gentext-listcomma) + (if (= (- author-count this-count) 1) + (gentext-lastlistcomma) + "")) + "") + (if (and (> author-count 1) + (not (absolute-last-sibling? author))) + " " + "")))) + +;; === procedures ======================================================= + +(define ($proc-hierarch-number-format$ depth) + (case (modulo depth 5) + ((1) "1") + ((2) "a") + ((3) "i") + ((4) "A") + (else "I"))) + +(define ($proc-hierarch-number$ nd seperator) + (if (equal? (gi nd) (normalize "step")) + (string-append + (format-number + (child-number nd) + ($proc-hierarch-number-format$ ($proc-step-depth$ nd))) + seperator) + "")) + +(define ($proc-step-depth$ nd) + (let loop ((step nd) (depth 0)) + (if (equal? (gi step) (normalize "procedure")) + depth + (loop (parent step) + (if (equal? (gi step) (normalize "step")) + (+ depth 1) + depth))))) + +(define ($proc-step-number$ nd) + (let* ((step (if (equal? (gi nd) (normalize "step")) nd (parent nd))) + (str ($proc-hierarch-number$ step ""))) + (string-append str (gentext-label-title-sep (normalize "step"))))) + +(define ($proc-step-xref-number$ nd) + (let loop ((step nd) (str "") (first #t)) + (if (equal? (gi step) (normalize "procedure")) + str + (loop (parent step) + (if (equal? (gi step) (normalize "step")) + (string-append + ($proc-hierarch-number$ step + (if first + "" + (gentext-intra-label-sep (normalize "step")))) + str) + str) + (if (equal? (gi step) (normalize "step")) + #f + first))))) + +;; === sections ========================================================= + +(define (section-level-by-gi chunked? gi) + ;; Figure out the heading level of an element by its name. We need + ;; to distinguish between the chunked processing mode (for HTML) and + ;; the non-chunked (print or HTML). It is important that no heading + ;; level is skipped in a document structure (e.g., sect1 = 2, sect2 + ;; = 4); this results in broken PDF bookmarks. + (if chunked? + (cond + ((equal? gi (normalize "sect5")) 5) + ((equal? gi (normalize "sect4")) 4) + ((equal? gi (normalize "sect3")) 3) + ((equal? gi (normalize "sect2")) 2) + ((equal? gi (normalize "sect1")) 1) + ((equal? gi (normalize "refsect3")) 4) + ((equal? gi (normalize "refsect2")) 3) + ((equal? gi (normalize "refsect1")) 2) + ((equal? gi (normalize "refsynopsisdiv")) 2) + ((equal? gi (normalize "bibliography")) 1) + ((equal? gi (normalize "bibliodiv")) 2) + ((equal? gi (normalize "index")) 1) + ((equal? gi (normalize "setindex")) 1) + ((equal? gi (normalize "indexdiv")) 2) + (else 1)) + (cond + ((equal? gi (normalize "sect5")) 6) + ((equal? gi (normalize "sect4")) 5) + ((equal? gi (normalize "sect3")) 4) + ((equal? gi (normalize "sect2")) 3) + ((equal? gi (normalize "sect1")) 2) + ;; The next four are not used by the HTML stylesheets. + ((equal? gi (normalize "refsect3")) 5) + ((equal? gi (normalize "refsect2")) 4) + ((equal? gi (normalize "refsect1")) 3) + ((equal? gi (normalize "refsynopsisdiv")) 3) + ((equal? gi (normalize "bibliography")) 1) + ((equal? gi (normalize "bibliodiv")) 2) + ((equal? gi (normalize "index")) 1) + ((equal? gi (normalize "setindex")) 1) + ((equal? gi (normalize "indexdiv")) 2) + (else 1)))) + +(define (section-level-by-node chunked? sect) + (if (equal? (gi sect) (normalize "section")) + ;; Section is special, it is recursive. + (let ((depth (length (hierarchical-number-recursive + (normalize "section"))))) + (if (> depth 5) + 6 + (if chunked? (+ depth 1) (+ depth 2)))) + (if (equal? (gi sect) (normalize "simplesect")) + ;; SimpleSect is special, it should be level "n+1", where "n" is + ;; the level of the numbered section that contains it. If it is + ;; the *first* sectioning element in a chapter, make it + ;; %default-simplesect-level% + (cond + ((have-ancestor? (normalize "sect5")) + (+ 1 (section-level-by-gi chunked? (normalize "sect5")))) + ((have-ancestor? (normalize "sect4")) + (+ 1 (section-level-by-gi chunked? (normalize "sect4")))) + ((have-ancestor? (normalize "sect3")) + (+ 1 (section-level-by-gi chunked? (normalize "sect3")))) + ((have-ancestor? (normalize "sect2")) + (+ 1 (section-level-by-gi chunked? (normalize "sect2")))) + ((have-ancestor? (normalize "sect1")) + (+ 1 (section-level-by-gi chunked? (normalize "sect1")))) + ((have-ancestor? (normalize "refsect3")) + (+ 1 (section-level-by-gi chunked? (normalize "refsect3")))) + ((have-ancestor? (normalize "refsect2")) + (+ 1 (section-level-by-gi chunked? (normalize "refsect2")))) + ((have-ancestor? (normalize "refsect1")) + (+ 1 (section-level-by-gi chunked? (normalize "refsect1")))) + (else %default-simplesect-level%)) + ;; the rest of the section elements can be identified by name + (section-level-by-gi chunked? (gi sect))))) + +;; === synopsis ========================================================= + +;; The following definitions match those given in the reference +;; documentation for DocBook V3.0 +(define %arg-choice-opt-open-str% "[") +(define %arg-choice-opt-close-str% "]") +(define %arg-choice-req-open-str% "{") +(define %arg-choice-req-close-str% "}") +(define %arg-choice-plain-open-str% " ") +(define %arg-choice-plain-close-str% " ") +(define %arg-choice-def-open-str% "[") +(define %arg-choice-def-close-str% "]") +(define %arg-rep-repeat-str% "...") +(define %arg-rep-norepeat-str% "") +(define %arg-rep-def-str% "") +(define %arg-or-sep% " | ") +(define %cmdsynopsis-hanging-indent% 4pi) + +;; === linking ========================================================== + +;; From the DocBook V3.0 Reference entry for element XREF: +;; +;; Description +;; +;; Cross reference link to another part of the document. XRef is empty, +;; and has common, Linkend, and Endterm attributes. +;; +;; Processing Expectations +;; +;; XRef must have a Linkend, but the Endterm is optional. If it is used, +;; the content of the element it points to is displayed as the text of +;; the cross reference; if it is absent, the XRefLabel of the +;; cross-referenced object is displayed. +;; +;; If neither the ENDTERM nor the XREFLABEL is present, then the cross +;; reference text is taken from the (gentext-xref-strings) function +;; in the localization file, like this +;; +;; A cross reference to an element, the target, begins with the +;; text returned by (gentext-xref-strings (gi target)). Within +;; that text, the following substitutions are made: +;; +;; %p is replaced by the number of the page on which target occurs +;; %g is replaced by the (gentext-element-name) +;; %n is replaced by the label +;; %t is replaced by the title +;; +;; After the "direct" cross reference, a number of indirect references +;; are possible. If the target element is in a different block, section, +;; component, division, or book an indirect cross reference may be made. +;; +;; The indirect cross reference will only be made if +;; +;; (auto-xref-indirect? target ancestor) +;; +;; returns #t. The indirect reference is created by appending the +;; connect returned by (auto-xref-indirect-connector) to the direct +;; reference and then adding a direct refernce to the ancestor. +;; The process is repeated for each ancestral element. +;; +;; For example, if a direct reference to a section returns +;; +;; "the section called %t" +;; +;; and a direct reference to a chapter returns +;; +;; "Chapter %n" +;; +;; and (auto-xref-indirect? sect1 chapter) returns #t, and +;; (auto-xref-indirect-connector chapter) returns "in", then +;; an xref to a section in another chapter will be: +;; +;; "the section called %t in Chapter %n" +;; +;; Where %t and %n will be filled in accordingly. +;; +;; ====================================================================== + +(define (auto-xref-indirect? target ancestor) + ;; This function answers the question: should an indirect reference + ;; to ancestor be made for target? For example: + ;; + ;; (auto-xref-indirect? SECT1 CHAP) + ;; + ;; should return #t iff a reference of the form "in [CHAP-xref]" should + ;; be generated for a reference to SECT1 if SECT1 is in a different + ;; chapter than the XREF to SECT1. + ;; + ;; This function _does not_ have to consider the case of whether or + ;; not target and the xref are in the same ancestor. + ;; + (cond + ;; Always add indirect references to another book + ((member (gi ancestor) (book-element-list)) + #t) + ;; Add indirect references to the section or component a block + ;; is in iff chapters aren't autolabelled. (Otherwise "Figure 1-3" + ;; is sufficient) + ((and (member (gi target) (block-element-list)) + (not %chapter-autolabel%)) + #t) + ;; Add indirect references to the component a section is in if + ;; the sections are not autolabelled + ((and (member (gi target) (section-element-list)) + (member (gi ancestor) (component-element-list)) + (not %section-autolabel%)) + #t) + (else #f))) + +(define (auto-xref-direct target + #!optional + (xref-string (gentext-xref-strings target))) + (let* ((substitute (list + (list "%g" (element-gi-sosofo target)) + (list "%n" (element-label-sosofo target)) + (list "%p" (element-page-number-sosofo target)) + (list "%t" (element-title-xref-sosofo target)))) + (tlist (match-split-list xref-string (assoc-objs substitute)))) + (string-list-sosofo tlist substitute))) + +(define (auto-xref-indirect target + #!optional + (xref-string (gentext-xref-strings target))) + (make sequence + (auto-xref-indirect-connector target) + (auto-xref-direct target xref-string))) + +(define (auto-xref target + #!optional (xref-string (gentext-xref-strings target))) + (let ((source (current-node)) + (cont-blok (ancestor-member target (block-element-list))) + (cont-sect (ancestor-member target (section-element-list))) + (cont-comp (ancestor-member target (component-element-list))) + (cont-divn (ancestor-member target (division-element-list))) + (cont-book (ancestor-member target (book-element-list)))) + (make sequence + (auto-xref-direct target xref-string) + (if (or (node-list=? cont-blok + (ancestor-member source (block-element-list))) + (node-list=? cont-blok target) + (not (auto-xref-indirect? target cont-blok))) + (empty-sosofo) + (auto-xref-indirect cont-blok)) + (if (or (node-list=? cont-sect + (ancestor-member source (section-element-list))) + (node-list=? cont-sect target) + (not (auto-xref-indirect? target cont-sect))) + (empty-sosofo) + (auto-xref-indirect cont-sect)) + (if (or (node-list=? cont-comp + (ancestor-member source (component-element-list))) + (node-list=? cont-comp target) + (not (auto-xref-indirect? target cont-comp))) + (empty-sosofo) + (auto-xref-indirect cont-comp)) + (if (or (node-list=? cont-divn + (ancestor-member source (division-element-list))) + (node-list=? cont-divn target) + (not (auto-xref-indirect? target cont-divn))) + (empty-sosofo) + (auto-xref-indirect cont-divn)) + (if (or (node-list=? cont-book + (ancestor-member source (book-element-list))) + (node-list=? cont-book target) + (not (auto-xref-indirect? target cont-book))) + (empty-sosofo) + (auto-xref-indirect cont-book))))) + +;; ====================================================================== + +(define (set-number-restart-list cmp) (list (normalize "set"))) +(define (book-number-restart-list cmp) (list (normalize "set"))) +(define (part-number-restart-list cmp) (list (normalize "book"))) +(define (reference-number-restart-list cmp) (list (normalize "book"))) +(define (preface-number-restart-list cmp) (list (normalize "book"))) +(define (chapter-number-restart-list cmp) (list (normalize "book"))) +(define (appendix-number-restart-list cmp) (list (normalize "book") + (normalize "article"))) +(define (article-number-restart-list cmp) (list (normalize "book"))) +(define (glossary-number-restart-list cmp) (list (normalize "book"))) +(define (bibliography-number-restart-list cmp) (list (normalize "book"))) +(define (index-number-restart-list cmp) (list (normalize "book"))) +(define (setindex-number-restart-list cmp) (list (normalize "set"))) +(define (refentry-number-restart-list cmp) (list (normalize "reference"))) +(define (default-number-restart-list cmp) (list (normalize "book"))) + +(define (component-number-restart-list cmp) + ;; Return the list of elements at which numbering of 'cmp' should reset. + ;; For example, for CHAPTER, it might return '("BOOK") causing chapters + ;; to be sequentially numbered across a book. If it returned + ;; '("BOOK" "PART") then chapter numbering would restart at each + ;; BOOK or PART. + (let ((name (gi cmp))) + (cond + ((equal? name (normalize "set")) (set-number-restart-list cmp)) + ((equal? name (normalize "book")) (book-number-restart-list cmp)) + ((equal? name (normalize "part")) (part-number-restart-list cmp)) + ((equal? name (normalize "reference")) (reference-number-restart-list cmp)) + ((equal? name (normalize "preface")) (preface-number-restart-list cmp)) + ((equal? name (normalize "chapter")) (chapter-number-restart-list cmp)) + ((equal? name (normalize "appendix")) (appendix-number-restart-list cmp)) + ((equal? name (normalize "article")) (article-number-restart-list cmp)) + ((equal? name (normalize "glossary")) (glossary-number-restart-list cmp)) + ((equal? name (normalize "bibliography")) (bibliography-number-restart-list cmp)) + ((equal? name (normalize "index")) (index-number-restart-list cmp)) + ((equal? name (normalize "setindex")) (setindex-number-restart-list cmp)) + ((equal? name (normalize "refentry")) (refentry-number-restart-list cmp)) + (else (default-number-restart-list cmp))))) + +(define (set-number-ignore-list cmp) '()) +(define (book-number-ignore-list cmp) '()) +(define (part-number-ignore-list cmp) '()) +(define (reference-number-ignore-list cmp) (list (normalize "part"))) +(define (preface-number-ignore-list cmp) (list (normalize "part"))) +(define (chapter-number-ignore-list cmp) (list (normalize "part"))) +(define (appendix-number-ignore-list cmp) (list (normalize "part"))) +(define (article-number-ignore-list cmp) (list (normalize "part"))) +(define (glossary-number-ignore-list cmp) (list (normalize "part"))) +(define (bibliography-number-ignore-list cmp) (list (normalize "part"))) +(define (index-number-ignore-list cmp) (list (normalize "part"))) +(define (setindex-number-ignore-list cmp) (list (normalize "part"))) +(define (refentry-number-ignore-list cmp) '()) +(define (default-number-ignore-list cmp) '()) + +(define (component-number-ignore-list cmp) + ;; Return the list of elements (inside the restart list) which are + ;; hierarchy levels which should be ignored. For example, for CHAPTER, + ;; it might return '("PART") causing chapter numbering inside books + ;; to ignore parts. + ;; + ;; Basically, if you skip up past a component/division element in + ;; the restart list, you better put the element(s) you skipped in + ;; the ignore list or the stylesheet may never see your component + ;; when it's trying to do the numbering. + (let ((name (gi cmp))) + (cond + ((equal? name (normalize "set")) (set-number-ignore-list cmp)) + ((equal? name (normalize "book")) (book-number-ignore-list cmp)) + ((equal? name (normalize "part")) (part-number-ignore-list cmp)) + ((equal? name (normalize "reference")) (reference-number-ignore-list cmp)) + ((equal? name (normalize "preface")) (preface-number-ignore-list cmp)) + ((equal? name (normalize "chapter")) (chapter-number-ignore-list cmp)) + ((equal? name (normalize "appendix")) (appendix-number-ignore-list cmp)) + ((equal? name (normalize "article")) (article-number-ignore-list cmp)) + ((equal? name (normalize "glossary")) (glossary-number-ignore-list cmp)) + ((equal? name (normalize "bibliography")) (bibliography-number-ignore-list cmp)) + ((equal? name (normalize "index")) (index-number-ignore-list cmp)) + ((equal? name (normalize "setindex")) (setindex-number-ignore-list cmp)) + ((equal? name (normalize "refentry")) (refentry-number-ignore-list cmp)) + (else (default-number-ignore-list cmp))))) + +(define (set-number-sibling-list cmp) '()) +(define (book-number-sibling-list cmp) '()) +(define (part-number-sibling-list cmp) '()) +(define (reference-number-sibling-list cmp) '()) +(define (preface-number-sibling-list cmp) '()) +(define (chapter-number-sibling-list cmp) '()) +(define (appendix-number-sibling-list cmp) '()) +(define (article-number-sibling-list cmp) '()) +(define (glossary-number-sibling-list cmp) '()) +(define (bibliography-number-sibling-list cmp) '()) +(define (index-number-sibling-list cmp) '()) +(define (setindex-number-sibling-list cmp) '()) +(define (refentry-number-sibling-list cmp) '()) +(define (default-number-sibling-list cmp) '()) + +(define (component-number-sibling-list cmp) + ;; Return the list of elements with which 'cmp' should be numbered. + ;; For example, for PART it might return '("PART" "REFERENCE") causing + ;; sibling parts and references to be numbered together. + (let ((name (gi cmp))) + (cond + ((equal? name (normalize "set")) (set-number-sibling-list cmp)) + ((equal? name (normalize "book")) (book-number-sibling-list cmp)) + ((equal? name (normalize "part")) (part-number-sibling-list cmp)) + ((equal? name (normalize "reference")) (reference-number-sibling-list cmp)) + ((equal? name (normalize "preface")) (preface-number-sibling-list cmp)) + ((equal? name (normalize "chapter")) (chapter-number-sibling-list cmp)) + ((equal? name (normalize "appendix")) (appendix-number-sibling-list cmp)) + ((equal? name (normalize "article")) (article-number-sibling-list cmp)) + ((equal? name (normalize "glossary")) (glossary-number-sibling-list cmp)) + ((equal? name (normalize "bibliography")) (bibliography-number-sibling-list cmp)) + ((equal? name (normalize "index")) (index-number-sibling-list cmp)) + ((equal? name (normalize "setindex")) (setindex-number-sibling-list cmp)) + ((equal? name (normalize "refentry")) (refentry-number-sibling-list cmp)) + (else (default-number-sibling-list cmp))))) + +(define (component-number component-node) + (let* ((root (ancestor-member component-node + (component-number-restart-list + component-node))) + (clist (expand-children (children root) + (component-number-ignore-list + component-node))) + (slist (append (list (gi component-node)) + (component-number-sibling-list component-node)))) + (let loop ((nl clist) (count 1)) + (if (node-list-empty? nl) + 1 + (if (node-list=? (node-list-first nl) component-node) + count + (if (member (gi (node-list-first nl)) slist) + (loop (node-list-rest nl) (+ count 1)) + (loop (node-list-rest nl) count))))))) + +;; == components and divisions == + +(define (set-autolabel nd #!optional (force-label? #f)) + "") + +(define (book-autolabel nd #!optional (force-label? #f)) + "") + +(define (part-autolabel nd #!optional (force-label? #f)) + (format-number (component-number nd) (label-number-format nd))) + +(define (reference-autolabel nd #!optional (force-label? #f)) + (format-number (component-number nd) (label-number-format nd))) + +(define (preface-autolabel nd #!optional (force-label? #f)) + "") + +(define (chapter-autolabel nd #!optional (force-label? #f)) + (if (or force-label? %chapter-autolabel%) + (format-number (component-number nd) (label-number-format nd)) + "")) + +(define (appendix-autolabel nd #!optional (force-label? #f)) + ;; Abandoned special processing for appendixes in articles. Maybe + ;; it's a good idea, but it can't be done here because it screws + ;; up cross references to appendixes. + (if (or force-label? %chapter-autolabel%) + (format-number (component-number nd) (label-number-format nd)) + "")) + +(define (article-autolabel nd #!optional (force-label? #f)) + "") + +(define (glossary-autolabel nd #!optional (force-label? #f)) + "") + +(define (bibliography-autolabel nd #!optional (force-label? #f)) + "") + +(define (index-autolabel nd #!optional (force-label? #f)) + "") + +(define (indexdiv-autolabel nd #!optional (force-label? #f)) + "") + +(define (colophon-autolabel nd #!optional (force-label? #f)) + "") + +(define (setindex-autolabel nd #!optional (force-label? #f)) + "") + +(define (refentry-autolabel nd #!optional (force-label? #f)) + (let* ((isep (gentext-intra-label-sep nd)) + (refnamediv (select-elements (children nd) + (normalize "refnamediv"))) + (refd (select-elements (children refnamediv) + (normalize "refdescriptor"))) + (refnames (select-elements (children refnamediv) + (normalize "refname")))) + "")) + +;; == /components and divisions == + +(define (dedication-autolabel nd #!optional (force-label? #f)) + "") + +(define (bibliodiv-autolabel nd #!optional (force-label? #f)) + "") + +(define (glossdiv-autolabel nd #!optional (force-label? #f)) + "") + +(define (section-autolabel-prefix nd) + (let* ((isep (gentext-intra-label-sep nd)) + (haschn (not (node-list-empty? (ancestor (normalize "chapter") nd)))) + (hasapn (not (node-list-empty? (ancestor (normalize "appendix") nd))))) + (cond + (haschn (string-append + (element-label (ancestor (normalize "chapter") nd)) isep)) + (hasapn (string-append + (element-label (ancestor (normalize "appendix") nd)) isep)) + (else "")))) + +(define (section-autolabel nd #!optional (force-label? #f)) + (let* ((isep (gentext-intra-label-sep nd)) + (hasprf (not (node-list-empty? (ancestor (normalize "preface") nd)))) + (prefix (section-autolabel-prefix nd))) + (if (and (or force-label? %section-autolabel%) + (or %label-preface-sections% + (not hasprf))) + (cond + ((equal? (gi nd) (normalize "sect1")) + (string-append prefix (format-number (child-number nd) + (label-number-format nd)))) + ((equal? (gi nd) (normalize "sect2")) + (string-append + (element-label (ancestor (normalize "sect1") nd) force-label?) + isep + (format-number (child-number nd) (label-number-format nd)))) + ((equal? (gi nd) (normalize "sect3")) + (string-append + (element-label (ancestor (normalize "sect2") nd) force-label?) + isep + (format-number (child-number nd) (label-number-format nd)))) + ((equal? (gi nd) (normalize "sect4")) + (string-append + (element-label (ancestor (normalize "sect3") nd) force-label?) + isep + (format-number (child-number nd) (label-number-format nd)))) + ((equal? (gi nd) (normalize "sect5")) + (string-append + (element-label (ancestor (normalize "sect4") nd) force-label?) + isep + (format-number (child-number nd) (label-number-format nd)))) + + ((equal? (gi nd) (normalize "simplesect")) + (let* ((possible-sect-ancestors + (node-list (ancestor (normalize "section") nd) + (ancestor (normalize "sect5") nd) + (ancestor (normalize "sect4") nd) + (ancestor (normalize "sect3") nd) + (ancestor (normalize "sect2") nd) + (ancestor (normalize "sect1") nd))) + (section-ancestor (node-list-first possible-sect-ancestors))) + (if (node-list-empty? section-ancestor) + (string-append prefix (format-number (child-number nd) + (label-number-format nd))) + (string-append + (element-label section-ancestor force-label?) + isep + (format-number (child-number nd) (label-number-format nd)))))) + + ((equal? (gi nd) (normalize "section")) + (if (node-list-empty? (ancestor (normalize "section") nd)) + (string-append prefix (format-number (child-number nd) + (label-number-format nd))) + (string-append + (element-label (ancestor (normalize "section") nd) force-label?) + isep + (format-number (child-number nd) (label-number-format nd))))) + (else (string-append (gi nd) " IS NOT A SECTION!"))) + ""))) + +(define (refsection-autolabel nd #!optional (force-label? #f)) + "") + +(define (step-autolabel nd #!optional (force-label? #f)) + ($proc-step-xref-number$ nd)) + +(define (listitem-autolabel nd #!optional (force-label? #f)) + (if (equal? (gi (parent nd)) (normalize "orderedlist")) + (number->string (child-number nd)) + "[xref to LISTITEM only supported in ORDEREDLIST]")) + +(define (sidebar-autolabel nd #!optional (force-label? #f)) + "") + +(define (legalnotice-autolabel nd #!optional (force-label? #f)) + "") + +(define (abstract-autolabel nd #!optional (force-label? #f)) + "") + +(define (block-autolabel nd #!optional (force-label? #f)) + (let* ((chn (element-label (ancestor (normalize "chapter") nd))) + (apn (element-label (ancestor (normalize "appendix") nd))) + (rfn (element-label (ancestor (normalize "refentry") nd))) + ;; If the root of this document isn't in component-element-list, these + ;; things all wind up being numbered 0. To avoid that, we force the + ;; root element to be in the list of components if it isn't already + ;; a component. + (incomp (member (gi (sgml-root-element)) (component-element-list))) + ;; In articles in books, number blocks from book not from article. + ;; Otherwise you get 1, 1, 1, 1, etc. for the first figure in each + ;; article. + (artinbook (and (not (node-list-empty? (ancestor (normalize "article") nd))) + (not (node-list-empty? (ancestor (normalize "book") nd))))) + + (bkn (if artinbook + (format-number (component-child-number + nd + (list (normalize "book"))) + (label-number-format nd)) + (if incomp + (format-number (component-child-number + nd + (component-element-list)) + (label-number-format nd)) + (format-number (component-child-number + nd + (append (component-element-list) + (list (gi (sgml-root-element))))) + (label-number-format nd)))))) + (if (equal? chn "") + (if (equal? apn "") + (if (equal? rfn "") + bkn + (string-append rfn (gentext-intra-label-sep nd) bkn)) + (string-append apn (gentext-intra-label-sep nd) bkn)) + (string-append chn (gentext-intra-label-sep nd) bkn)))) + +;; For all elements, if a LABEL attribute is present, that is the label +;; that they get. Otherwise: +;; BOOK gets the Book volume, by book-autolabel +;; PREFACE gets "", by preface-autolabel +;; CHAPTER gets the Chapter number, by chapter-autolabel +;; APPENDIX gets the Appendix letter, by appendix-autolabel +;; REFERENCE gets "", by reference-autolabel +;; REFENTRY gets "", by refentry-autolabel +;; SECT* gets the nested section number (e.g., 1.3.5), by section-autolabel +;; REFSECT* gets the nested section number, by refsection-autolabel +;; everything else gets numbered by block-autolabel +;; +(define (element-label #!optional (nd (current-node)) (force-label? #f)) + (if (node-list-empty? nd) + "" + (let ((label (attribute-string (normalize "label") nd))) + (if label + label + (cond + ;; Use a seperately defined assoc list? + ((equal? (gi nd) (normalize "abstract")) + (abstract-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "appendix")) + (appendix-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "article")) + (article-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "bibliodiv")) + (bibliodiv-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "bibliography")) + (bibliography-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "book")) + (book-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "chapter")) + (chapter-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "dedication")) + (dedication-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "glossary")) + (glossary-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "glossdiv")) + (glossdiv-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "index")) + (index-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "colophon")) + (colophon-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "indexdiv")) + (indexdiv-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "setindex")) + (setindex-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "legalnotice")) + (legalnotice-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "listitem")) + (listitem-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "part")) + (part-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "preface")) + (preface-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "refentry")) + (refentry-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "reference")) + (reference-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "refsynopsisdiv")) + (refsection-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "refsect1")) + (refsection-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "refsect2")) + (refsection-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "refsect3")) + (refsection-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sect1")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sect2")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sect3")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sect4")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sect5")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "section")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "simplesect")) + (section-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "set")) + (set-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "sidebar")) + (sidebar-autolabel nd force-label?)) + ((equal? (gi nd) (normalize "step")) + (step-autolabel nd force-label?)) + (else (block-autolabel nd force-label?))))))) + +;; ====================================================================== + +;; Returns the element label as a sosofo +;; +(define (element-label-sosofo nd #!optional (force-label? #f)) + (if (string=? (element-label nd force-label?) "") + (empty-sosofo) + (make sequence + (literal (element-label nd force-label?))))) + +;; ====================================================================== + +(define (set-title nd) + (let* ((setinfo (select-elements (children nd) (normalize "setinfo"))) + (sititles (select-elements + (expand-children (children setinfo) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))) + (normalize "title"))) + (settitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? settitles) + sititles + settitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (book-title nd) + (let* ((bookinfo (select-elements (children nd) (normalize "bookinfo"))) + (bititles (select-elements + (expand-children (children bookinfo) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))) + (normalize "title"))) + (chtitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? chtitles) + bititles + chtitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (part-title nd) + (let* ((docinfo (select-elements (children nd) (normalize "docinfo"))) + (dititles (select-elements + (expand-children (children docinfo) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))) + (normalize "title"))) + (chtitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? chtitles) + dititles + chtitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + + (define (article-title nd) + (let* ((titles + (or (select-elements (children + (node-list-filter-by-gi (children nd) + (list (normalize "artheader") + (normalize "articleinfo")))) + (normalize "title")) + (select-elements (children nd) + (normalize "title"))))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (preface-title nd) + (chapter-title nd)) + +(define (chapter-title nd) + (let* ((docinfo (select-elements (children nd) (normalize "docinfo"))) + (dititles (select-elements + (expand-children (children docinfo) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))) + (normalize "title"))) + (chtitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? chtitles) + dititles + chtitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (appendix-title nd) + (chapter-title nd)) + +(define (reference-title nd) + (chapter-title nd)) + +(define (refsynopsisdiv-title nd) + (optional-title nd)) + +;; Returns either the REFENTRYTITLE or the first REFNAME. +;; +(define (refentry-title nd) + (let* ((refmeta (select-elements (descendants nd) (normalize "refmeta"))) + (refttl (select-elements (descendants refmeta) (normalize "refentrytitle"))) + (refndiv (select-elements (descendants nd) (normalize "refnamediv"))) + (refname (select-elements (descendants refndiv) (normalize "refname")))) + (if (node-list-empty? refttl) + (if (node-list-empty? refname) + "" + (node-list-first refname)) + (node-list-first refttl)))) + +(define (optional-title nd) + (let* ((docinfo (select-elements (children nd) (normalize "docinfo"))) + (dititles (select-elements (children docinfo) (normalize "title"))) + (chtitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? chtitles) + dititles + chtitles))) + (if (node-list-empty? titles) + (gentext-element-name nd) + (node-list-first titles)))) + +(define (glossary-title nd) + (optional-title nd)) + +(define (bibliography-title nd) + (optional-title nd)) + +(define (index-title nd) + (optional-title nd)) + +(define (setindex-title nd) + (optional-title nd)) + +(define (dedication-title nd) + (optional-title nd)) + +(define (colophon-title nd) + (gentext-element-name nd)) + +(define (section-title nd) + (let* ((info (select-elements (children nd) + (list (normalize "sect1info") + (normalize "sect2info") + (normalize "sect3info") + (normalize "sect4info") + (normalize "sect5info") + (normalize "section")))) + (ititles (select-elements (children info) (normalize "title"))) + (ctitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? ctitles) + ititles + ctitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (refsection-title nd) + (let* ((info (select-elements (children nd) + (list (normalize "refsect1info") + (normalize "refsect2info") + (normalize "refsect3info")))) + (ititles (select-elements (children info) (normalize "title"))) + (ctitles (select-elements (children nd) (normalize "title"))) + (titles (if (node-list-empty? ctitles) + ititles + ctitles))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +(define (block-title nd) + (let ((titles (select-elements (children nd) (normalize "title")))) + (if (node-list-empty? titles) + "" + (node-list-first titles)))) + +;; ====================================================================== + +(define (set-title-sosofo nd) + (let ((title (set-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (book-title-sosofo nd) + (let ((title (book-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (part-title-sosofo nd) + (let ((title (part-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (article-title-sosofo nd) + (let ((title (article-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (preface-title-sosofo nd) + (let ((title (preface-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (chapter-title-sosofo nd) + (let ((title (chapter-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (appendix-title-sosofo nd) + (let ((title (appendix-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (reference-title-sosofo nd) + (let ((title (reference-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (refsynopsisdiv-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (refentry-title-sosofo nd) + (let ((title (refentry-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (optional-title-sosofo nd) + (let ((title (optional-title nd))) + (if (string? title) + (literal title) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (glossary-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (bibliography-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (index-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (setindex-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (dedication-title-sosofo nd) + (optional-title-sosofo nd)) + +(define (colophon-title-sosofo nd) + (literal (gentext-element-name nd))) + +(define (section-title-sosofo nd) + (let ((title (section-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (refsection-title-sosofo nd) + (let ((title (refsection-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(define (block-title-sosofo nd) + (let ((title (block-title nd))) + (if (string? title) + (empty-sosofo) + (with-mode title-sosofo-mode + (process-node-list title))))) + +(mode title-sosofo-mode + (element title + (process-children-trim)) + + (element citetitle + (process-children-trim)) + + (element refname + (process-children-trim)) + + (element refentrytitle + (process-children-trim))) + +;; Returns the title of the element as a sosofo. +;; +(define (element-title-sosofo #!optional (nd (current-node))) + (if (node-list-empty? nd) + (empty-sosofo) + (cond + ;; Use a seperately defined assoc list? + ((equal? (gi nd) (normalize "appendix")) (appendix-title-sosofo nd)) + ((equal? (gi nd) (normalize "article")) (article-title-sosofo nd)) + ((equal? (gi nd) (normalize "bibliography")) (bibliography-title-sosofo nd)) + ((equal? (gi nd) (normalize "book")) (book-title-sosofo nd)) + ((equal? (gi nd) (normalize "chapter")) (chapter-title-sosofo nd)) + ((equal? (gi nd) (normalize "dedication")) (dedication-title-sosofo nd)) + ((equal? (gi nd) (normalize "glossary")) (glossary-title-sosofo nd)) + ((equal? (gi nd) (normalize "index")) (index-title-sosofo nd)) + ((equal? (gi nd) (normalize "colophon")) (colophon-title-sosofo nd)) + ((equal? (gi nd) (normalize "setindex")) (index-title-sosofo nd)) + ((equal? (gi nd) (normalize "part")) (part-title-sosofo nd)) + ((equal? (gi nd) (normalize "preface")) (preface-title-sosofo nd)) + ((equal? (gi nd) (normalize "refentry")) (refentry-title-sosofo nd)) + ((equal? (gi nd) (normalize "reference")) (reference-title-sosofo nd)) + ((equal? (gi nd) (normalize "refsect1")) (refsection-title-sosofo nd)) + ((equal? (gi nd) (normalize "refsect2")) (refsection-title-sosofo nd)) + ((equal? (gi nd) (normalize "refsect3")) (refsection-title-sosofo nd)) + ((equal? (gi nd) (normalize "refsynopsisdiv")) (refsynopsisdiv-title-sosofo nd)) + ((equal? (gi nd) (normalize "sect1")) (section-title-sosofo nd)) + ((equal? (gi nd) (normalize "sect2")) (section-title-sosofo nd)) + ((equal? (gi nd) (normalize "sect3")) (section-title-sosofo nd)) + ((equal? (gi nd) (normalize "sect4")) (section-title-sosofo nd)) + ((equal? (gi nd) (normalize "sect5")) (section-title-sosofo nd)) + ((equal? (gi nd) (normalize "set")) (set-title-sosofo nd)) + (else (block-title-sosofo nd))))) + +;; ====================================================================== + +;; Returns the title of the element; returns a node if possible, or a string +(define (element-title nd) + (if (node-list-empty? nd) + "" + (cond + ;; Use a seperately defined assoc list? + ((equal? (gi nd) (normalize "appendix")) (appendix-title nd)) + ((equal? (gi nd) (normalize "article")) (article-title nd)) + ((equal? (gi nd) (normalize "bibliography")) (bibliography-title nd)) + ((equal? (gi nd) (normalize "book")) (book-title nd)) + ((equal? (gi nd) (normalize "chapter")) (chapter-title nd)) + ((equal? (gi nd) (normalize "dedication")) (dedication-title nd)) + ((equal? (gi nd) (normalize "glossary")) (glossary-title nd)) + ((equal? (gi nd) (normalize "index")) (index-title nd)) + ((equal? (gi nd) (normalize "colophon")) (colophon-title nd)) + ((equal? (gi nd) (normalize "setindex")) (setindex-title nd)) + ((equal? (gi nd) (normalize "part")) (part-title nd)) + ((equal? (gi nd) (normalize "preface")) (preface-title nd)) + ((equal? (gi nd) (normalize "refentry")) (refentry-title nd)) + ((equal? (gi nd) (normalize "reference")) (reference-title nd)) + ((equal? (gi nd) (normalize "refsect1")) (refsection-title nd)) + ((equal? (gi nd) (normalize "refsect2")) (refsection-title nd)) + ((equal? (gi nd) (normalize "refsect3")) (refsection-title nd)) + ((equal? (gi nd) (normalize "refsynopsisdiv")) (refsynopsisdiv-title nd)) + ((equal? (gi nd) (normalize "sect1")) (section-title nd)) + ((equal? (gi nd) (normalize "sect2")) (section-title nd)) + ((equal? (gi nd) (normalize "sect3")) (section-title nd)) + ((equal? (gi nd) (normalize "sect4")) (section-title nd)) + ((equal? (gi nd) (normalize "sect5")) (section-title nd)) + ((equal? (gi nd) (normalize "set")) (set-title nd)) + (else (block-title nd))))) + +;; ====================================================================== +;; Returns the data of a node, carefully excising INDEXTERMs from +;; the data content +;; + +(define (data-of node) + ;; return the data characters of a node, except for the content of + ;; indexterms which are suppressed. + (let loop ((nl (children node)) (result "")) + (if (node-list-empty? nl) + result + (if (equal? (node-property 'class-name (node-list-first nl)) 'element) + (if (or (equal? (gi (node-list-first nl)) (normalize "indexterm")) + (equal? (gi (node-list-first nl)) (normalize "comment")) + (equal? (gi (node-list-first nl)) (normalize "remark"))) + (loop (node-list-rest nl) result) + (loop (node-list-rest nl) + (string-append result (data-of (node-list-first nl))))) + (if (or (equal? (node-property 'class-name (node-list-first nl)) + 'data-char) + (equal? (node-property 'class-name (node-list-first nl)) + 'sdata)) + (loop (node-list-rest nl) + (string-append result (data (node-list-first nl)))) + (loop (node-list-rest nl) result)))))) + +;; ====================================================================== +;; Returns the element title data of nd +;; +(define (element-title-string nd) + (let ((title (element-title nd))) + (if (string? title) + title + (data-of title)))) + +;; ====================================================================== +;; Returns the element gi as a sosofo +;; +(define (element-gi-sosofo nd) + (if (node-list-empty? nd) + (empty-sosofo) + (make sequence + (literal (gentext-element-name nd))))) + +;; ====================================================================== + +(define (titlepage-info-elements node info #!optional (intro (empty-node-list))) + ;; Returns a node-list of the elements that might appear on a title + ;; page. This node-list is constructed as follows: + ;; + ;; 1. The "title" child of node is considered as a possibility + ;; 2. If info is not empty, then node-list starts as the children + ;; of info. If the children of info don't include a title, then + ;; the title from the node is added. + ;; 3. If info is empty, then node-list starts as the children of node, + ;; but with "partintro" filtered out. + + (let* ((title (select-elements (children node) (normalize "title"))) + (nl (if (node-list-empty? info) + (node-list-filter-by-not-gi (children node) + (list (normalize "partintro"))) + (children info))) + (nltitle (node-list-filter-by-gi nl (list (normalize "title"))))) + (if (node-list-empty? info) + (node-list nl + intro) + (node-list (if (node-list-empty? nltitle) + title + (empty-node-list)) + nl + intro)))) + +;; ====================================================================== + +(define (info-element #!optional (nd (current-node))) + ;; Returns the *INFO element for the nd or (empty-node-list) if no + ;; such node exists... + (cond + ((equal? (gi nd) (normalize "set")) + (select-elements (children nd) (normalize "setinfo"))) + ((equal? (gi nd) (normalize "book")) + (select-elements (children nd) (normalize "bookinfo"))) + ((equal? (gi nd) (normalize "section")) + (select-elements (children nd) (normalize "sectioninfo"))) + ((equal? (gi nd) (normalize "sect1")) + (select-elements (children nd) (normalize "sect1info"))) + ((equal? (gi nd) (normalize "sect2")) + (select-elements (children nd) (normalize "sect2info"))) + ((equal? (gi nd) (normalize "sect3")) + (select-elements (children nd) (normalize "sect3info"))) + ((equal? (gi nd) (normalize "sect4")) + (select-elements (children nd) (normalize "sect4info"))) + ((equal? (gi nd) (normalize "sect5")) + (select-elements (children nd) (normalize "sect5info"))) + ((equal? (gi nd) (normalize "refsect1")) + (select-elements (children nd) (normalize "refsect1info"))) + ((equal? (gi nd) (normalize "refsect2")) + (select-elements (children nd) (normalize "refsect2info"))) + ((equal? (gi nd) (normalize "refsect3")) + (select-elements (children nd) (normalize "refsect3info"))) + ((equal? (gi nd) (normalize "refsynopsisdiv")) + (select-elements (children nd) (normalize "refsynopsisdivinfo"))) + ((equal? (gi nd) (normalize "article")) + (node-list-filter-by-gi (children nd) (list (normalize "artheader") + (normalize "articleinfo")))) + (else ;; BIBLIODIV, GLOSSDIV, INDEXDIV, PARTINTRO, SIMPLESECT + (select-elements (children nd) (normalize "docinfo"))))) + +;; ====================================================================== +;; +;; Bibliography filtering... + +(define (biblio-filter allentries) + (let* ((all (descendants (sgml-root-element))) + (link (select-elements all (normalize "link"))) + (xref (select-elements all (normalize "xref"))) + (cite (select-elements all (normalize "citation"))) + (xref-elements (node-list link xref))) + (let loop ((entries allentries) (used (empty-node-list))) + (if (node-list-empty? entries) + used + (if (or (cited-by-xref (node-list-first entries) xref-elements) + (cited-by-citation (node-list-first entries) cite)) + (loop (node-list-rest entries) + (node-list used (node-list-first entries))) + (loop (node-list-rest entries) used)))))) + +(define (cited-by-xref bib xref-elements) + (let* ((id (attribute-string (normalize "id") bib))) + (if id + (let loop ((links xref-elements)) + (if (node-list-empty? links) + #f + (if (equal? (attribute-string (normalize "linkend") + (node-list-first links)) id) + #t + (loop (node-list-rest links))))) + #f))) + +(define (cited-by-citation bib citations) + (let loop ((links citations)) + (if (node-list-empty? links) + #f + (if (citation-matches-target? (node-list-first links) bib) + #t + (loop (node-list-rest links)))))) + +(define (citation-matches-target? citation target) + (let* ((fchild (node-list-first + (node-list-filter-out-pis + (children target)))) + (abbrev (if (equal? (gi fchild) (normalize "abbrev")) + fchild + (empty-node-list))) + (cite (data-of citation))) + (or (equal? (attribute-string "id" target) (normalize cite)) + (equal? (attribute-string "xreflabel" target) (normalize cite)) + (equal? (normalize cite) (normalize (data-of abbrev)))))) + +(define (bibentry-number bibentry) + (let* ((bgraphy (ancestor-member bibentry + (list (normalize "bibliography")))) + (comps (expand-children (children bgraphy) + (list (normalize "bibliodiv"))))) + (let loop ((nl comps) (count 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? (node-list-first nl) bibentry) + count + (if (or (equal? (gi (node-list-first nl)) + (normalize "biblioentry")) + (equal? (gi (node-list-first nl)) + (normalize "bibliomixed"))) + (loop (node-list-rest nl) (+ count 1)) + (loop (node-list-rest nl) count))))))) + +;; ====================================================================== + +(define (olink-resource-title pubid sysid) + ;; This version of olink-resource-title expects public identifiers + ;; with the following format: + ;; + ;; -//owner//TEXT title Vx.x//EN + ;; + ;; Specifically the title is the description field of the public + ;; identifier minus the first word (TEXT, the type) and the last + ;; word, in my case a version string. Words are blank delimited. + ;; The parsing will fail if a "/" appears anywhere in any field. + ;; The system identifier is ignored + ;; + (let* ((pubidparts (if pubid + (split pubid '(#\/)) + (split "-//none//type version//la" '(#\/)))) + (description (car (cdr (cdr pubidparts)))) + (descparts (split description)) + (titleparts (list-head (cdr descparts) (- (length descparts) 2)))) + (join titleparts))) + +;; ====================================================================== + +(define (orderedlist-listitem-number listitem) + ;; return the number of listitem, taking continuation into account + (let* ((orderedlist (parent listitem)) + (listitems (select-elements (children orderedlist) + (normalize "listitem"))) + (continue? (equal? (attribute-string (normalize "continuation") + orderedlist) + (normalize "continues"))) + +;; If a list is the continuation of a previous list, we must find the +;; list that is continued in order to calculate the starting +;; item number of this list. +;; +;; Of all the lists in this component, only the following are candidates: +;; 1. Lists which precede this list +;; 2. Lists which are not ancestors of this list +;; 3. Lists that do not have ancestors that are lists which precede this one +;; +;; Of the candidates, the last one, in document order, is the preceding +;; list + (all-lists (select-elements + (descendants (ancestor-member orderedlist + (component-element-list))) + (normalize "orderedlist"))) + + (cand1 (if continue? + (let loop ((nl all-lists) + (prec (empty-node-list))) + (if (node-list-empty? nl) + prec + (if (node-list=? (node-list-first nl) + orderedlist) + prec + (loop (node-list-rest nl) + (node-list prec + (node-list-first nl)))))) + (empty-node-list))) + + (cand2 (let loop ((nl cand1) + (cand2lists (empty-node-list))) + (if (node-list-empty? nl) + cand2lists + (loop (node-list-rest nl) + (if (descendant-of? (node-list-first nl) + orderedlist) + cand2lists + (node-list cand2lists + (node-list-first nl))))))) + + ;; now find the last item of cand2 that is not a descendant + ;; of some other element of the cand2 list. + (preclist (let loop ((nl (node-list-reverse cand2))) + (if (node-list-empty? nl) + (empty-node-list) + (if (descendant-member-of? + (node-list-first nl) + (node-list-rest nl)) + (loop (node-list-rest nl)) + (node-list-first nl))))) + + (precitem (if (node-list-empty? preclist) + (empty-node-list) + (node-list-last (children preclist)))) + (precitem-number (if (and continue? (not (node-list-empty? precitem))) + (orderedlist-listitem-number precitem) + 0))) + + (+ precitem-number (child-number listitem)))) + +(define (descendant-member-of? node node-list) + ;; return true if node is a descedant of any member of node-list + (let loop ((nl node-list)) + (if (node-list-empty? nl) + #f + (if (descendant-of? (node-list-first nl) node) + #t + (loop (node-list-rest nl)))))) + +;; ====================================================================== + +(define (orderedlist-listitem-label listitem) + ;; return the formatted number of listitem + (let* ((number (orderedlist-listitem-number listitem)) + (depth (length (hierarchical-number-recursive + (normalize "orderedlist") + listitem))) + (numeration (inherited-attribute-string (normalize "numeration") + listitem)) + ;; rawnum allows for numbering to alternate + (rawnum (cond + ((equal? numeration (normalize "arabic")) 1) + ((equal? numeration (normalize "loweralpha")) 2) + ((equal? numeration (normalize "lowerroman")) 3) + ((equal? numeration (normalize "upperalpha")) 4) + ((equal? numeration (normalize "upperroman")) 0) + (else (modulo depth 5))))) + (case rawnum + ((1) (format-number number "1")) + ((2) (format-number number "a")) + ((3) (format-number number "i")) + ((4) (format-number number "A")) + ((0) (format-number number "I"))))) + +(define (orderedlist-listitem-label-recursive listitem) + ;; return the recursively formatted number of the listitem. + ;; In other words, something of the form 1.2.3 for a third level + ;; nested ordered list + (let loop ((li (parent listitem)) + (label (orderedlist-listitem-label listitem))) + (if (or (node-list-empty? li) + (node-list-empty? (ancestor (normalize "orderedlist") li))) + label + (if (and (equal? (gi li) (normalize "listitem")) + (equal? (gi (parent li)) (normalize "orderedlist"))) + (loop (parent li) + (string-append + (orderedlist-listitem-label li) + (gentext-intra-label-sep li) + label)) + (loop (parent li) label))))) + +(define (question-answer-label #!optional (node (current-node))) + (let* ((inhlabel (inherited-attribute-string (normalize "defaultlabel") + node)) + (deflabel (if inhlabel inhlabel (qanda-defaultlabel))) + (label (attribute-string (normalize "label") node)) + (hnr (hierarchical-number-recursive (normalize "qandadiv") + node)) + + (parsect (ancestor-member node (section-element-list))) + + (defnum (if (and %qanda-inherit-numeration% + %section-autolabel%) + (if (node-list-empty? parsect) + (section-autolabel-prefix node) + (section-autolabel parsect)) + "")) + + (hnumber (let loop ((numlist hnr) (number defnum) + (sep (if (equal? defnum "") "" "."))) + (if (null? numlist) + number + (loop (cdr numlist) + (string-append number + sep + (number->string (car numlist))) + ".")))) + (cnumber (child-number (parent node))) + (number (string-append hnumber + (if (equal? hnumber "") + "" + ".") + (number->string cnumber)))) + (cond + ((equal? deflabel (normalize "qanda")) + (gentext-element-name node)) + ((equal? deflabel (normalize "label")) + label) + ;; Note: only questions are numbered... + ((and (equal? deflabel (normalize "number")) + (equal? (gi node) (normalize "question"))) + (string-append number ".")) + (else "")))) + +;; ====================================================================== +;; Calculate term lengths... + +(define (varlistentry-term-too-long? vle termlength) + (let loop ((nl (select-elements (children vle) (normalize "term"))) + (too-long? #f)) + (if (or too-long? (node-list-empty? nl)) + too-long? + (loop (node-list-rest nl) + (> (string-length (data (node-list-first nl))) + termlength))))) + +(define (variablelist-term-too-long? termlength) + (let loop ((nl (select-elements (children (current-node)) + (normalize "varlistentry"))) + (too-long? #f)) + (if (or too-long? (node-list-empty? nl)) + too-long? + (loop (node-list-rest nl) + (varlistentry-term-too-long? (node-list-first nl) termlength))))) + +;; ====================================================================== +;; bibliography elements + +(define (biblioentry-inline-elements) + (list (normalize "abbrev") + (normalize "affiliation") + (normalize "artpagenums") + (normalize "author") + (normalize "authorgroup") + (normalize "authorinitials") + (normalize "citetitle") + (normalize "collab") + (normalize "confgroup") + (normalize "contractnum") + (normalize "contractsponsor") + (normalize "contrib") + (normalize "copyright") + (normalize "corpauthor") + (normalize "corpname") + (normalize "date") + (normalize "edition") + (normalize "editor") + (normalize "firstname") + (normalize "honorific") + (normalize "invpartnumber") + (normalize "isbn") + (normalize "issn") + (normalize "issuenum") + (normalize "lineage") + (normalize "orgname") + (normalize "othercredit") + (normalize "othername") + (normalize "pagenums") + (normalize "productname") + (normalize "productnumber") + (normalize "pubdate") + (normalize "publisher") + (normalize "publishername") + (normalize "pubsnumber") + (normalize "releaseinfo") + (normalize "seriesvolnums") + (normalize "subtitle") + (normalize "surname") + (normalize "title") + (normalize "titleabbrev") + (normalize "volumenum"))) + +(define (biblioentry-block-elements) + (list (normalize "abstract") + (normalize "address") + (normalize "authorblurb") + (normalize "printhistory") + (normalize "revhistory") + (normalize "seriesinfo"))) + +(define (biblioentry-flatten-elements) + (list (normalize "articleinfo") + (normalize "biblioset") + (normalize "bookbiblio") + (normalize "artheader"))) + +;; === db31 common ====================================================== + +(define (data-filename dataobj) + (let* ((entityref (attribute-string (normalize "entityref") dataobj)) + (fileref (attribute-string (normalize "fileref") dataobj)) + (filename (if fileref + fileref + (system-id-filename entityref))) + (ext (file-extension filename))) + (if (or (not filename) + (not %graphic-default-extension%) + (member ext %graphic-extensions%)) + filename + (string-append filename "." %graphic-default-extension%)))) + +(define (normalized-member string string-list) + (if (string? string) + (let loop ((sl string-list)) + (if (null? sl) + #f + (if (string=? (normalize string) (normalize (car sl))) + #t + (loop (cdr sl))))) + #f)) + +(define (find-displayable-object objlist notlist extlist) + (let loop ((nl objlist)) + (if (node-list-empty? nl) + (empty-node-list) + (let* ((objdata (node-list-filter-by-gi + (children (node-list-first nl)) + (list (normalize "videodata") + (normalize "audiodata") + (normalize "imagedata")))) + (filename (data-filename objdata)) + (extension (file-extension filename)) + (notation (attribute-string (normalize "format") objdata))) + (if (or (normalized-member notation notlist) + (normalized-member extension extlist) + (and notation + (string=? notation (normalize "linespecific")))) + (node-list-first nl) + (loop (node-list-rest nl))))))) + +(define (select-displayable-object objlist) + (let ((pref (find-displayable-object objlist + preferred-mediaobject-notations + preferred-mediaobject-extensions)) + (ok (find-displayable-object objlist + acceptable-mediaobject-notations + acceptable-mediaobject-extensions))) + (if (node-list-empty? pref) + ok + pref))) + +(define ($mediaobject$) + (let* ((objects (node-list-filter-by-gi + (children (current-node)) + (list (normalize "videoobject") + (normalize "imageobject") + (normalize "audioobject")))) + (dobject (select-displayable-object objects)) + (textobj (select-elements (children (current-node)) + (normalize "textobject"))) + (caption (select-elements (children (current-node)) + (normalize "caption")))) + (make sequence + (if (node-list-empty? dobject) + (if (node-list-empty? textobj) + (empty-sosofo) + (process-node-list (node-list-first textobj))) + (process-node-list dobject)) + (process-node-list caption)))) + +;; ====================================================================== diff --git a/common/dbl10n.dsl b/common/dbl10n.dsl new file mode 100644 index 0000000..35876bd --- /dev/null +++ b/common/dbl10n.dsl @@ -0,0 +1,1554 @@ +;; $Id: dbl10n.dsl,v 1.8 2004/10/09 21:36:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com. Please use the ISO 639 language +;; code to identify the language. Append a subtag as per RFC 1766, +;; if necessary. + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x and #x +;; keywords. +;; + +;; The following language codes from ISO 639 are recognized: +;; af - Afrikaans 1.71 +;; bg - Bulgarian +;; bs - Bosnian +;; ca - Catalan +;; cs - Czech +;; da - Danish (previously dk) +;; de - German (previously dege) +;; el - Greek +;; en - English (previously usen) +;; es - Spanish +;; et - Estonian 1.55 +;; eu - Basque 1.74 +;; fi - Finnish +;; fr - French +;; hu - Hungarian 1.55 +;; id - Indonesian 1.55 +;; it - Italian +;; ja - Japanese +;; ko - Korean 1.59 +;; nl - Dutch +;; nn - Nnyorsk 1.74 +;; no - Norwegian (previously bmno) ??? +;; pl - Polish +;; pt - Portuguese +;; pt_br - Portuguese (Brazil) +;; ro - Romanian +;; ru - Russian +;; sk - Slovak +;; sl - Slovenian 1.55 +;; sr - Serbian 1.70 +;; sv - Swedish (previously svse) +;; tr - Turkish 1.71 +;; uk - Ukranian 1.74 +;; xh - Xhosa 1.74 +;; zh_cn - Chinese (Continental) 1.55 +;; zh_tw - Chinese (Traditional) 1.70 + +;; The following language codes are recognized for historical reasons: + +;; bmno(no) - Norwegian (Norsk Bokmal) ??? +;; dege(de) - German +;; dk(da) - Danish +;; svse(sv) - Swedish +;; usen(en) - English + +(define %default-language% "en") +(define %gentext-language% #f) +(define %gentext-use-xref-lang% #f) + +(define ($lang$ #!optional (target (current-node)) (xref-context #f)) + (if %gentext-language% + (lang-fix %gentext-language%) + (if (or xref-context %gentext-use-xref-lang%) + (let loop ((here target)) + (if (node-list-empty? here) + (lang-fix %default-language%) + (if (attribute-string (normalize "lang") here) + (lang-fix (attribute-string (normalize "lang") here)) + (loop (parent here))))) + (if (inherited-attribute-string (normalize "lang")) + (lang-fix (inherited-attribute-string (normalize "lang"))) + (lang-fix %default-language%))))) + +(define (lang-fix language) + ;; Lowercase the language + ;; Translate 'xx-yy' to 'xx_yy' + (let ((fixed-lang (if (> (string-index language "-") 0) + (let ((pos (string-index language "-"))) + (string-append + (substring language 0 pos) + "_" + (substring language (+ pos 1) + (string-length language)))) + language))) + (case-fold-down fixed-lang))) + +(define (author-string #!optional (author (current-node))) + (let ((lang (if (string? author) ($lang$) ($lang$ author)))) + (case lang + ;; ISO 639/ISO 3166/RFC 1766 + <![%l10n-af[ (("af") (af-author-string author)) ]]> + <![%l10n-bg[ (("bg") (bg-author-string author)) ]]> + <![%l10n-bs[ (("bs") (bs-author-string author)) ]]> + <![%l10n-ca[ (("ca") (ca-author-string author)) ]]> + <![%l10n-cs[ (("cs") (cs-author-string author)) ]]> + <![%l10n-da[ (("da") (da-author-string author)) ]]> + <![%l10n-de[ (("de") (de-author-string author)) ]]> + <![%l10n-el[ (("el") (el-author-string author)) ]]> + <![%l10n-en[ (("en") (en-author-string author)) ]]> + <![%l10n-es[ (("es") (es-author-string author)) ]]> + <![%l10n-et[ (("et") (et-author-string author)) ]]> + <![%l10n-eu[ (("eu") (eu-author-string author)) ]]> + <![%l10n-fi[ (("fi") (fi-author-string author)) ]]> + <![%l10n-fr[ (("fr") (fr-author-string author)) ]]> + <![%l10n-hu[ (("hu") (hu-author-string author)) ]]> + <![%l10n-id[ (("id") (id-author-string author)) ]]> + <![%l10n-it[ (("it") (it-author-string author)) ]]> + <![%l10n-ja[ (("ja") (ja-author-string author)) ]]> + <![%l10n-ko[ (("ko") (ko-author-string author)) ]]> + <![%l10n-nl[ (("nl") (nl-author-string author)) ]]> + <![%l10n-nn[ (("nn") (nn-author-string author)) ]]> + <![%l10n-no[ (("no") (no-author-string author)) ]]> + <![%l10n-pl[ (("pl") (pl-author-string author)) ]]> + <![%l10n-pt[ (("pt") (pt-author-string author)) ]]> + <![%l10n-ptbr[ (("pt_br") (ptbr-author-string author)) ]]> + <![%l10n-ro[ (("ro") (ro-author-string author)) ]]> + <![%l10n-ru[ (("ru") (ru-author-string author)) ]]> + <![%l10n-sk[ (("sk") (sk-author-string author)) ]]> + <![%l10n-sl[ (("sl") (sl-author-string author)) ]]> + <![%l10n-sr[ (("sr") (sr-author-string author)) ]]> + <![%l10n-sv[ (("sv") (sv-author-string author)) ]]> + <![%l10n-tr[ (("tr") (tr-author-string author)) ]]> + <![%l10n-uk[ (("uk") (uk-author-string author)) ]]> + <![%l10n-xh[ (("xh") (xh-author-string author)) ]]> + <![%l10n-zhcn[ (("zh_cn") (zhcn-author-string author)) ]]> + <![%l10n-zhtw[ (("zh_tw") (zhtw-author-string author)) ]]> + <![%l10n-no[ (("bmno") (no-author-string author)) ]]> + <![%l10n-de[ (("dege") (de-author-string author)) ]]> + <![%l10n-da[ (("dk") (da-author-string author)) ]]> + <![%l10n-sv[ (("svse") (sv-author-string author)) ]]> + <![%l10n-en[ (("usen") (en-author-string author)) ]]> + (else (error (string-append "L10N ERROR: author-string: " + lang)))))) + +(define (gentext-xref-strings target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-af[ (("af") (gentext-af-xref-strings giname)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-xref-strings giname)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-xref-strings giname)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-xref-strings giname)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-xref-strings giname)) ]]> + <![%l10n-da[ (("da") (gentext-da-xref-strings giname)) ]]> + <![%l10n-de[ (("de") (gentext-de-xref-strings giname)) ]]> + <![%l10n-el[ (("el") (gentext-el-xref-strings giname)) ]]> + <![%l10n-en[ (("en") (gentext-en-xref-strings giname)) ]]> + <![%l10n-es[ (("es") (gentext-es-xref-strings giname)) ]]> + <![%l10n-et[ (("et") (gentext-et-xref-strings giname)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-xref-strings giname)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-xref-strings giname)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-xref-strings giname)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-xref-strings giname)) ]]> + <![%l10n-id[ (("id") (gentext-id-xref-strings giname)) ]]> + <![%l10n-it[ (("it") (gentext-it-xref-strings giname)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-xref-strings giname)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-xref-strings giname)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-xref-strings giname)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-xref-strings giname)) ]]> + <![%l10n-no[ (("no") (gentext-no-xref-strings giname)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-xref-strings giname)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-xref-strings giname)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-xref-strings giname)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-xref-strings giname)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-xref-strings giname)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-xref-strings giname)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-xref-strings giname)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-xref-strings giname)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-xref-strings giname)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-xref-strings giname)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-xref-strings giname)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-xref-strings giname)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-xref-strings giname)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-xref-strings giname)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-xref-strings giname)) ]]> + <![%l10n-de[ (("dege") (gentext-de-xref-strings giname)) ]]> + <![%l10n-da[ (("dk") (gentext-da-xref-strings giname)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-xref-strings giname)) ]]> + <![%l10n-en[ (("usen") (gentext-en-xref-strings giname)) ]]> + (else (error (string-append "L10N ERROR: gentext-xref-strings: " + lang)))))) + +(define (auto-xref-indirect-connector before) + (case ($lang$) + <![%l10n-af[ (("af") (af-auto-xref-indirect-connector before)) ]]> + <![%l10n-bg[ (("bg") (bg-auto-xref-indirect-connector before)) ]]> + <![%l10n-bs[ (("bs") (bs-auto-xref-indirect-connector before)) ]]> + <![%l10n-ca[ (("ca") (ca-auto-xref-indirect-connector before)) ]]> + <![%l10n-cs[ (("cs") (cs-auto-xref-indirect-connector before)) ]]> + <![%l10n-da[ (("da") (da-auto-xref-indirect-connector before)) ]]> + <![%l10n-de[ (("de") (de-auto-xref-indirect-connector before)) ]]> + <![%l10n-el[ (("el") (el-auto-xref-indirect-connector before)) ]]> + <![%l10n-en[ (("en") (en-auto-xref-indirect-connector before)) ]]> + <![%l10n-es[ (("es") (es-auto-xref-indirect-connector before)) ]]> + <![%l10n-et[ (("et") (et-auto-xref-indirect-connector before)) ]]> + <![%l10n-eu[ (("eu") (eu-auto-xref-indirect-connector before)) ]]> + <![%l10n-fi[ (("fi") (fi-auto-xref-indirect-connector before)) ]]> + <![%l10n-fr[ (("fr") (fr-auto-xref-indirect-connector before)) ]]> + <![%l10n-hu[ (("hu") (hu-auto-xref-indirect-connector before)) ]]> + <![%l10n-id[ (("id") (id-auto-xref-indirect-connector before)) ]]> + <![%l10n-it[ (("it") (it-auto-xref-indirect-connector before)) ]]> + <![%l10n-ja[ (("ja") (ja-auto-xref-indirect-connector before)) ]]> + <![%l10n-ko[ (("ko") (ko-auto-xref-indirect-connector before)) ]]> + <![%l10n-nl[ (("nl") (nl-auto-xref-indirect-connector before)) ]]> + <![%l10n-nn[ (("nn") (nn-auto-xref-indirect-connector before)) ]]> + <![%l10n-no[ (("no") (no-auto-xref-indirect-connector before)) ]]> + <![%l10n-pl[ (("pl") (pl-auto-xref-indirect-connector before)) ]]> + <![%l10n-pt[ (("pt") (pt-auto-xref-indirect-connector before)) ]]> + <![%l10n-ptbr[ (("pt_br") (ptbr-auto-xref-indirect-connector before)) ]]> + <![%l10n-ro[ (("ro") (ro-auto-xref-indirect-connector before)) ]]> + <![%l10n-ru[ (("ru") (ru-auto-xref-indirect-connector before)) ]]> + <![%l10n-sk[ (("sk") (sk-auto-xref-indirect-connector before)) ]]> + <![%l10n-sl[ (("sl") (sl-auto-xref-indirect-connector before)) ]]> + <![%l10n-sr[ (("sr") (sr-auto-xref-indirect-connector before)) ]]> + <![%l10n-sv[ (("sv") (sv-auto-xref-indirect-connector before)) ]]> + <![%l10n-tr[ (("tr") (tr-auto-xref-indirect-connector before)) ]]> + <![%l10n-uk[ (("uk") (uk-auto-xref-indirect-connector before)) ]]> + <![%l10n-xh[ (("xh") (xh-auto-xref-indirect-connector before)) ]]> + <![%l10n-zhcn[ (("zh_cn") (zhcn-auto-xref-indirect-connector before)) ]]> + <![%l10n-zhtw[ (("zh_tw") (zhtw-auto-xref-indirect-connector before)) ]]> + <![%l10n-no[ (("bmno") (no-auto-xref-indirect-connector before)) ]]> + <![%l10n-de[ (("dege") (de-auto-xref-indirect-connector before)) ]]> + <![%l10n-da[ (("dk") (da-auto-xref-indirect-connector before)) ]]> + <![%l10n-sv[ (("svse") (sv-auto-xref-indirect-connector before)) ]]> + <![%l10n-en[ (("usen") (en-auto-xref-indirect-connector before)) ]]> + (else (error "L10N ERROR: auto-xref-indirect-connector")))) + +(define (generate-toc-in-front) + (case ($lang$) + <![%l10n-af[ (("af") %generate-af-toc-in-front%) ]]> + <![%l10n-bg[ (("bg") %generate-bg-toc-in-front%) ]]> + <![%l10n-bs[ (("bs") %generate-bs-toc-in-front%) ]]> + <![%l10n-ca[ (("ca") %generate-ca-toc-in-front%) ]]> + <![%l10n-cs[ (("cs") %generate-cs-toc-in-front%) ]]> + <![%l10n-da[ (("da") %generate-da-toc-in-front%) ]]> + <![%l10n-de[ (("de") %generate-de-toc-in-front%) ]]> + <![%l10n-el[ (("el") %generate-el-toc-in-front%) ]]> + <![%l10n-en[ (("en") %generate-en-toc-in-front%) ]]> + <![%l10n-es[ (("es") %generate-es-toc-in-front%) ]]> + <![%l10n-et[ (("et") %generate-et-toc-in-front%) ]]> + <![%l10n-eu[ (("eu") %generate-eu-toc-in-front%) ]]> + <![%l10n-fi[ (("fi") %generate-fi-toc-in-front%) ]]> + <![%l10n-fr[ (("fr") %generate-fr-toc-in-front%) ]]> + <![%l10n-hu[ (("hu") %generate-hu-toc-in-front%) ]]> + <![%l10n-id[ (("id") %generate-id-toc-in-front%) ]]> + <![%l10n-it[ (("it") %generate-it-toc-in-front%) ]]> + <![%l10n-ja[ (("ja") %generate-ja-toc-in-front%) ]]> + <![%l10n-ko[ (("ko") %generate-ko-toc-in-front%) ]]> + <![%l10n-nl[ (("nl") %generate-nl-toc-in-front%) ]]> + <![%l10n-nn[ (("nn") %generate-nn-toc-in-front%) ]]> + <![%l10n-no[ (("no") %generate-no-toc-in-front%) ]]> + <![%l10n-pl[ (("pl") %generate-pl-toc-in-front%) ]]> + <![%l10n-pt[ (("pt") %generate-pt-toc-in-front%) ]]> + <![%l10n-ptbr[ (("pt_br") %generate-ptbr-toc-in-front%) ]]> + <![%l10n-ro[ (("ro") %generate-ro-toc-in-front%) ]]> + <![%l10n-ru[ (("ru") %generate-ru-toc-in-front%) ]]> + <![%l10n-sk[ (("sk") %generate-sk-toc-in-front%) ]]> + <![%l10n-sl[ (("sl") %generate-sl-toc-in-front%) ]]> + <![%l10n-sr[ (("sr") %generate-sr-toc-in-front%) ]]> + <![%l10n-sv[ (("sv") %generate-sv-toc-in-front%) ]]> + <![%l10n-tr[ (("tr") %generate-tr-toc-in-front%) ]]> + <![%l10n-uk[ (("uk") %generate-uk-toc-in-front%) ]]> + <![%l10n-xh[ (("xh") %generate-xh-toc-in-front%) ]]> + <![%l10n-zhcn[ (("zh_cn") %generate-zhcn-toc-in-front%) ]]> + <![%l10n-zhtw[ (("zh_tw") %generate-zhtw-toc-in-front%) ]]> + <![%l10n-no[ (("bmno") %generate-no-toc-in-front%) ]]> + <![%l10n-de[ (("dege") %generate-de-toc-in-front%) ]]> + <![%l10n-da[ (("dk") %generate-da-toc-in-front%) ]]> + <![%l10n-sv[ (("svse") %generate-sv-toc-in-front%) ]]> + <![%l10n-en[ (("usen") %generate-en-toc-in-front%) ]]> + (else (error "L10N ERROR: generate-toc-in-front")))) + +(define (gentext-element-name target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target #t)))) + (case lang + <![%l10n-af[ (("af") (gentext-af-element-name giname)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-element-name giname)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-element-name giname)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-element-name giname)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-element-name giname)) ]]> + <![%l10n-da[ (("da") (gentext-da-element-name giname)) ]]> + <![%l10n-de[ (("de") (gentext-de-element-name giname)) ]]> + <![%l10n-el[ (("el") (gentext-el-element-name giname)) ]]> + <![%l10n-en[ (("en") (gentext-en-element-name giname)) ]]> + <![%l10n-es[ (("es") (gentext-es-element-name giname)) ]]> + <![%l10n-et[ (("et") (gentext-et-element-name giname)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-element-name giname)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-element-name giname)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-element-name giname)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-element-name giname)) ]]> + <![%l10n-id[ (("id") (gentext-id-element-name giname)) ]]> + <![%l10n-it[ (("it") (gentext-it-element-name giname)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-element-name giname)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-element-name giname)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-element-name giname)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-element-name giname)) ]]> + <![%l10n-no[ (("no") (gentext-no-element-name giname)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-element-name giname)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-element-name giname)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-element-name giname)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-element-name giname)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-element-name giname)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-element-name giname)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-element-name giname)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-element-name giname)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-element-name giname)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-element-name giname)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-element-name giname)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-element-name giname)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-element-name giname)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-element-name giname)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-element-name giname)) ]]> + <![%l10n-de[ (("dege") (gentext-de-element-name giname)) ]]> + <![%l10n-da[ (("dk") (gentext-da-element-name giname)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-element-name giname)) ]]> + <![%l10n-en[ (("usen") (gentext-en-element-name giname)) ]]> + (else (error (string-append "L10N ERROR: gentext-element-name: " + lang + " (" + giname + ")")))))) + +(define (gentext-element-name-space target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-af[ (("af") (gentext-af-element-name-space giname)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-element-name-space giname)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-element-name-space giname)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-element-name-space giname)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-element-name-space giname)) ]]> + <![%l10n-da[ (("da") (gentext-da-element-name-space giname)) ]]> + <![%l10n-de[ (("de") (gentext-de-element-name-space giname)) ]]> + <![%l10n-el[ (("el") (gentext-el-element-name-space giname)) ]]> + <![%l10n-en[ (("en") (gentext-en-element-name-space giname)) ]]> + <![%l10n-es[ (("es") (gentext-es-element-name-space giname)) ]]> + <![%l10n-et[ (("et") (gentext-et-element-name-space giname)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-element-name-space giname)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-element-name-space giname)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-element-name-space giname)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-element-name-space giname)) ]]> + <![%l10n-id[ (("id") (gentext-id-element-name-space giname)) ]]> + <![%l10n-it[ (("it") (gentext-it-element-name-space giname)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-element-name-space giname)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-element-name-space giname)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-element-name-space giname)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-element-name-space giname)) ]]> + <![%l10n-no[ (("no") (gentext-no-element-name-space giname)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-element-name-space giname)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-element-name-space giname)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-element-name-space giname)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-element-name-space giname)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-element-name-space giname)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-element-name-space giname)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-element-name-space giname)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-element-name-space giname)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-element-name-space giname)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-element-name-space giname)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-element-name-space giname)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-element-name-space giname)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-element-name-space giname)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-element-name-space giname)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-element-name-space giname)) ]]> + <![%l10n-de[ (("dege") (gentext-de-element-name-space giname)) ]]> + <![%l10n-da[ (("dk") (gentext-da-element-name-space giname)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-element-name-space giname)) ]]> + <![%l10n-en[ (("usen") (gentext-en-element-name-space giname)) ]]> + (else (error "L10N ERROR: gentext-element-name-space"))))) + +(define (gentext-intra-label-sep target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-af[ (("af") (gentext-af-intra-label-sep giname)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-intra-label-sep giname)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-intra-label-sep giname)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-intra-label-sep giname)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-intra-label-sep giname)) ]]> + <![%l10n-da[ (("da") (gentext-da-intra-label-sep giname)) ]]> + <![%l10n-de[ (("de") (gentext-de-intra-label-sep giname)) ]]> + <![%l10n-el[ (("el") (gentext-el-intra-label-sep giname)) ]]> + <![%l10n-en[ (("en") (gentext-en-intra-label-sep giname)) ]]> + <![%l10n-es[ (("es") (gentext-es-intra-label-sep giname)) ]]> + <![%l10n-et[ (("et") (gentext-et-intra-label-sep giname)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-intra-label-sep giname)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-intra-label-sep giname)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-intra-label-sep giname)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-intra-label-sep giname)) ]]> + <![%l10n-id[ (("id") (gentext-id-intra-label-sep giname)) ]]> + <![%l10n-it[ (("it") (gentext-it-intra-label-sep giname)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-intra-label-sep giname)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-intra-label-sep giname)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-intra-label-sep giname)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-intra-label-sep giname)) ]]> + <![%l10n-no[ (("no") (gentext-no-intra-label-sep giname)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-intra-label-sep giname)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-intra-label-sep giname)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-intra-label-sep giname)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-intra-label-sep giname)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-intra-label-sep giname)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-intra-label-sep giname)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-intra-label-sep giname)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-intra-label-sep giname)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-intra-label-sep giname)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-intra-label-sep giname)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-intra-label-sep giname)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-intra-label-sep giname)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-intra-label-sep giname)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-intra-label-sep giname)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-intra-label-sep giname)) ]]> + <![%l10n-de[ (("dege") (gentext-de-intra-label-sep giname)) ]]> + <![%l10n-da[ (("dk") (gentext-da-intra-label-sep giname)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-intra-label-sep giname)) ]]> + <![%l10n-en[ (("usen") (gentext-en-intra-label-sep giname)) ]]> + (else (error "L10N ERROR: gentext-intra-label-sep"))))) + +(define (gentext-label-title-sep target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-af[ (("af") (gentext-af-label-title-sep giname)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-label-title-sep giname)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-label-title-sep giname)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-label-title-sep giname)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-label-title-sep giname)) ]]> + <![%l10n-da[ (("da") (gentext-da-label-title-sep giname)) ]]> + <![%l10n-de[ (("de") (gentext-de-label-title-sep giname)) ]]> + <![%l10n-el[ (("el") (gentext-el-label-title-sep giname)) ]]> + <![%l10n-en[ (("en") (gentext-en-label-title-sep giname)) ]]> + <![%l10n-es[ (("es") (gentext-es-label-title-sep giname)) ]]> + <![%l10n-et[ (("et") (gentext-et-label-title-sep giname)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-label-title-sep giname)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-label-title-sep giname)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-label-title-sep giname)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-label-title-sep giname)) ]]> + <![%l10n-id[ (("id") (gentext-id-label-title-sep giname)) ]]> + <![%l10n-it[ (("it") (gentext-it-label-title-sep giname)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-label-title-sep giname)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-label-title-sep giname)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-label-title-sep giname)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-label-title-sep giname)) ]]> + <![%l10n-no[ (("no") (gentext-no-label-title-sep giname)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-label-title-sep giname)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-label-title-sep giname)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-label-title-sep giname)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-label-title-sep giname)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-label-title-sep giname)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-label-title-sep giname)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-label-title-sep giname)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-label-title-sep giname)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-label-title-sep giname)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-label-title-sep giname)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-label-title-sep giname)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-label-title-sep giname)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-label-title-sep giname)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-label-title-sep giname)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-label-title-sep giname)) ]]> + <![%l10n-de[ (("dege") (gentext-de-label-title-sep giname)) ]]> + <![%l10n-da[ (("dk") (gentext-da-label-title-sep giname)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-label-title-sep giname)) ]]> + <![%l10n-en[ (("usen") (gentext-en-label-title-sep giname)) ]]> + (else (error "L10N ERROR: gentext-label-title-sep"))))) + +(define (label-number-format target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-af[ (("af") (af-label-number-format target)) ]]> + <![%l10n-bg[ (("bg") (bg-label-number-format target)) ]]> + <![%l10n-bs[ (("bs") (bs-label-number-format target)) ]]> + <![%l10n-ca[ (("ca") (ca-label-number-format target)) ]]> + <![%l10n-cs[ (("cs") (cs-label-number-format target)) ]]> + <![%l10n-da[ (("da") (da-label-number-format target)) ]]> + <![%l10n-de[ (("de") (de-label-number-format target)) ]]> + <![%l10n-el[ (("el") (el-label-number-format target)) ]]> + <![%l10n-en[ (("en") (en-label-number-format target)) ]]> + <![%l10n-es[ (("es") (es-label-number-format target)) ]]> + <![%l10n-et[ (("et") (et-label-number-format target)) ]]> + <![%l10n-eu[ (("eu") (eu-label-number-format target)) ]]> + <![%l10n-fi[ (("fi") (fi-label-number-format target)) ]]> + <![%l10n-fr[ (("fr") (fr-label-number-format target)) ]]> + <![%l10n-hu[ (("hu") (hu-label-number-format target)) ]]> + <![%l10n-id[ (("id") (id-label-number-format target)) ]]> + <![%l10n-it[ (("it") (it-label-number-format target)) ]]> + <![%l10n-ja[ (("ja") (ja-label-number-format target)) ]]> + <![%l10n-ko[ (("ko") (ko-label-number-format target)) ]]> + <![%l10n-nl[ (("nl") (nl-label-number-format target)) ]]> + <![%l10n-nn[ (("nn") (nn-label-number-format target)) ]]> + <![%l10n-no[ (("no") (no-label-number-format target)) ]]> + <![%l10n-pl[ (("pl") (pl-label-number-format target)) ]]> + <![%l10n-pt[ (("pt") (pt-label-number-format target)) ]]> + <![%l10n-ptbr[ (("pt_br") (ptbr-label-number-format target)) ]]> + <![%l10n-ro[ (("ro") (ro-label-number-format target)) ]]> + <![%l10n-ru[ (("ru") (ru-label-number-format target)) ]]> + <![%l10n-sk[ (("sk") (sk-label-number-format target)) ]]> + <![%l10n-sl[ (("sl") (sl-label-number-format target)) ]]> + <![%l10n-sr[ (("sr") (sr-label-number-format target)) ]]> + <![%l10n-sv[ (("sv") (sv-label-number-format target)) ]]> + <![%l10n-tr[ (("tr") (tr-label-number-format target)) ]]> + <![%l10n-uk[ (("uk") (uk-label-number-format target)) ]]> + <![%l10n-xh[ (("xh") (xh-label-number-format target)) ]]> + <![%l10n-zhcn[ (("zh_cn") (zhcn-label-number-format target)) ]]> + <![%l10n-zhtw[ (("zh_tw") (zhtw-label-number-format target)) ]]> + <![%l10n-no[ (("bmno") (no-label-number-format target)) ]]> + <![%l10n-de[ (("dege") (de-label-number-format target)) ]]> + <![%l10n-da[ (("dk") (da-label-number-format target)) ]]> + <![%l10n-sv[ (("svse") (sv-label-number-format target)) ]]> + <![%l10n-en[ (("usen") (en-label-number-format target)) ]]> + (else (error "L10N ERROR: label-number-format"))))) + +(define ($lot-title$ lotgi) + (case ($lang$) + <![%l10n-af[ (("af") ($lot-title-af$ lotgi)) ]]> + <![%l10n-bg[ (("bg") ($lot-title-bg$ lotgi)) ]]> + <![%l10n-bs[ (("bs") ($lot-title-bs$ lotgi)) ]]> + <![%l10n-ca[ (("ca") ($lot-title-ca$ lotgi)) ]]> + <![%l10n-cs[ (("cs") ($lot-title-cs$ lotgi)) ]]> + <![%l10n-da[ (("da") ($lot-title-da$ lotgi)) ]]> + <![%l10n-de[ (("de") ($lot-title-de$ lotgi)) ]]> + <![%l10n-el[ (("el") ($lot-title-el$ lotgi)) ]]> + <![%l10n-en[ (("en") ($lot-title-en$ lotgi)) ]]> + <![%l10n-es[ (("es") ($lot-title-es$ lotgi)) ]]> + <![%l10n-et[ (("et") ($lot-title-et$ lotgi)) ]]> + <![%l10n-eu[ (("eu") ($lot-title-eu$ lotgi)) ]]> + <![%l10n-fi[ (("fi") ($lot-title-fi$ lotgi)) ]]> + <![%l10n-fr[ (("fr") ($lot-title-fr$ lotgi)) ]]> + <![%l10n-hu[ (("hu") ($lot-title-hu$ lotgi)) ]]> + <![%l10n-id[ (("id") ($lot-title-id$ lotgi)) ]]> + <![%l10n-it[ (("it") ($lot-title-it$ lotgi)) ]]> + <![%l10n-ja[ (("ja") ($lot-title-ja$ lotgi)) ]]> + <![%l10n-ko[ (("ko") ($lot-title-ko$ lotgi)) ]]> + <![%l10n-nl[ (("nl") ($lot-title-nl$ lotgi)) ]]> + <![%l10n-nn[ (("nn") ($lot-title-nn$ lotgi)) ]]> + <![%l10n-no[ (("no") ($lot-title-no$ lotgi)) ]]> + <![%l10n-pl[ (("pl") ($lot-title-pl$ lotgi)) ]]> + <![%l10n-pt[ (("pt") ($lot-title-pt$ lotgi)) ]]> + <![%l10n-ptbr[ (("pt_br") ($lot-title-ptbr$ lotgi)) ]]> + <![%l10n-ro[ (("ro") ($lot-title-ro$ lotgi)) ]]> + <![%l10n-ru[ (("ru") ($lot-title-ru$ lotgi)) ]]> + <![%l10n-sk[ (("sk") ($lot-title-sk$ lotgi)) ]]> + <![%l10n-sl[ (("sl") ($lot-title-sl$ lotgi)) ]]> + <![%l10n-sr[ (("sr") ($lot-title-sr$ lotgi)) ]]> + <![%l10n-sv[ (("sv") ($lot-title-sv$ lotgi)) ]]> + <![%l10n-tr[ (("tr") ($lot-title-tr$ lotgi)) ]]> + <![%l10n-uk[ (("uk") ($lot-title-uk$ lotgi)) ]]> + <![%l10n-xh[ (("xh") ($lot-title-xh$ lotgi)) ]]> + <![%l10n-zhcn[ (("zh_cn") ($lot-title-zhcn$ lotgi)) ]]> + <![%l10n-zhtw[ (("zh_tw") ($lot-title-zhtw$ lotgi)) ]]> + <![%l10n-no[ (("bmno") ($lot-title-no$ lotgi)) ]]> + <![%l10n-de[ (("dege") ($lot-title-de$ lotgi)) ]]> + <![%l10n-da[ (("dk") ($lot-title-da$ lotgi)) ]]> + <![%l10n-sv[ (("svse") ($lot-title-sv$ lotgi)) ]]> + <![%l10n-en[ (("usen") ($lot-title-en$ lotgi)) ]]> + (else (error "L10N ERROR: $lot-title$")))) + +(define (gentext-start-quote) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-start-quote%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-start-quote%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-start-quote%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-start-quote%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-start-quote%) ]]> + <![%l10n-da[ (("da") %gentext-da-start-quote%) ]]> + <![%l10n-de[ (("de") %gentext-de-start-quote%) ]]> + <![%l10n-el[ (("el") %gentext-el-start-quote%) ]]> + <![%l10n-en[ (("en") %gentext-en-start-quote%) ]]> + <![%l10n-es[ (("es") %gentext-es-start-quote%) ]]> + <![%l10n-et[ (("et") %gentext-et-start-quote%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-start-quote%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-start-quote%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-start-quote%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-start-quote%) ]]> + <![%l10n-id[ (("id") %gentext-id-start-quote%) ]]> + <![%l10n-it[ (("it") %gentext-it-start-quote%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-start-quote%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-start-quote%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-start-quote%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-start-quote%) ]]> + <![%l10n-no[ (("no") %gentext-no-start-quote%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-start-quote%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-start-quote%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-start-quote%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-start-quote%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-start-quote%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-start-quote%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-start-quote%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-start-quote%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-start-quote%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-start-quote%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-start-quote%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-start-quote%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-start-quote%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-start-quote%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-start-quote%) ]]> + <![%l10n-de[ (("dege") %gentext-de-start-quote%) ]]> + <![%l10n-da[ (("dk") %gentext-da-start-quote%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-start-quote%) ]]> + <![%l10n-en[ (("usen") %gentext-en-start-quote%) ]]> + (else (error "L10N ERROR: gentext-start-quote")))) + +(define (gentext-end-quote) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-end-quote%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-end-quote%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-end-quote%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-end-quote%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-end-quote%) ]]> + <![%l10n-da[ (("da") %gentext-da-end-quote%) ]]> + <![%l10n-de[ (("de") %gentext-de-end-quote%) ]]> + <![%l10n-el[ (("el") %gentext-el-end-quote%) ]]> + <![%l10n-en[ (("en") %gentext-en-end-quote%) ]]> + <![%l10n-es[ (("es") %gentext-es-end-quote%) ]]> + <![%l10n-et[ (("et") %gentext-et-end-quote%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-end-quote%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-end-quote%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-end-quote%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-end-quote%) ]]> + <![%l10n-id[ (("id") %gentext-id-end-quote%) ]]> + <![%l10n-it[ (("it") %gentext-it-end-quote%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-end-quote%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-end-quote%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-end-quote%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-end-quote%) ]]> + <![%l10n-no[ (("no") %gentext-no-end-quote%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-end-quote%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-end-quote%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-end-quote%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-end-quote%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-end-quote%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-end-quote%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-end-quote%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-end-quote%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-end-quote%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-end-quote%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-end-quote%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-end-quote%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-end-quote%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-end-quote%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-end-quote%) ]]> + <![%l10n-de[ (("dege") %gentext-de-end-quote%) ]]> + <![%l10n-da[ (("dk") %gentext-da-end-quote%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-end-quote%) ]]> + <![%l10n-en[ (("usen") %gentext-en-end-quote%) ]]> + (else (error "L10N ERROR: gentext-end-quote")))) + +(define (gentext-start-nested-quote) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-start-nested-quote%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-start-nested-quote%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-start-nested-quote%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-start-nested-quote%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-start-nested-quote%) ]]> + <![%l10n-da[ (("da") %gentext-da-start-nested-quote%) ]]> + <![%l10n-de[ (("de") %gentext-de-start-nested-quote%) ]]> + <![%l10n-el[ (("el") %gentext-el-start-nested-quote%) ]]> + <![%l10n-en[ (("en") %gentext-en-start-nested-quote%) ]]> + <![%l10n-es[ (("es") %gentext-es-start-nested-quote%) ]]> + <![%l10n-et[ (("et") %gentext-et-start-nested-quote%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-start-nested-quote%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-start-nested-quote%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-start-nested-quote%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-start-nested-quote%) ]]> + <![%l10n-id[ (("id") %gentext-id-start-nested-quote%) ]]> + <![%l10n-it[ (("it") %gentext-it-start-nested-quote%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-start-nested-quote%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-start-nested-quote%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-start-nested-quote%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-start-nested-quote%) ]]> + <![%l10n-no[ (("no") %gentext-no-start-nested-quote%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-start-nested-quote%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-start-nested-quote%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-start-nested-quote%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-start-nested-quote%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-start-nested-quote%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-start-nested-quote%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-start-nested-quote%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-start-nested-quote%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-start-nested-quote%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-start-nested-quote%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-start-nested-quote%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-start-nested-quote%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-start-nested-quote%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-start-nested-quote%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-start-nested-quote%) ]]> + <![%l10n-de[ (("dege") %gentext-de-start-nested-quote%) ]]> + <![%l10n-da[ (("dk") %gentext-da-start-nested-quote%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-start-nested-quote%) ]]> + <![%l10n-en[ (("usen") %gentext-en-start-nested-quote%) ]]> + (else (error "L10N ERROR: gentext-start-nested-quote")))) + +(define (gentext-end-nested-quote) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-end-nested-quote%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-end-nested-quote%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-end-nested-quote%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-end-nested-quote%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-end-nested-quote%) ]]> + <![%l10n-da[ (("da") %gentext-da-end-nested-quote%) ]]> + <![%l10n-de[ (("de") %gentext-de-end-nested-quote%) ]]> + <![%l10n-el[ (("el") %gentext-el-end-nested-quote%) ]]> + <![%l10n-en[ (("en") %gentext-en-end-nested-quote%) ]]> + <![%l10n-es[ (("es") %gentext-es-end-nested-quote%) ]]> + <![%l10n-et[ (("et") %gentext-et-end-nested-quote%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-end-nested-quote%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-end-nested-quote%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-end-nested-quote%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-end-nested-quote%) ]]> + <![%l10n-id[ (("id") %gentext-id-end-nested-quote%) ]]> + <![%l10n-it[ (("it") %gentext-it-end-nested-quote%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-end-nested-quote%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-end-nested-quote%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-end-nested-quote%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-end-nested-quote%) ]]> + <![%l10n-no[ (("no") %gentext-no-end-nested-quote%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-end-nested-quote%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-end-nested-quote%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-end-nested-quote%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-end-nested-quote%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-end-nested-quote%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-end-nested-quote%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-end-nested-quote%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-end-nested-quote%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-end-nested-quote%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-end-nested-quote%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-end-nested-quote%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-end-nested-quote%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-end-nested-quote%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-end-nested-quote%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-end-nested-quote%) ]]> + <![%l10n-de[ (("dege") %gentext-de-end-nested-quote%) ]]> + <![%l10n-da[ (("dk") %gentext-da-end-nested-quote%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-end-nested-quote%) ]]> + <![%l10n-en[ (("usen") %gentext-en-end-nested-quote%) ]]> + (else (error "L10N ERROR: gentext-end-nested-quote")))) + +(define (gentext-by) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-by%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-by%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-by%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-by%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-by%) ]]> + <![%l10n-da[ (("da") %gentext-da-by%) ]]> + <![%l10n-de[ (("de") %gentext-de-by%) ]]> + <![%l10n-el[ (("el") %gentext-el-by%) ]]> + <![%l10n-en[ (("en") %gentext-en-by%) ]]> + <![%l10n-es[ (("es") %gentext-es-by%) ]]> + <![%l10n-et[ (("et") %gentext-et-by%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-by%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-by%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-by%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-by%) ]]> + <![%l10n-id[ (("id") %gentext-id-by%) ]]> + <![%l10n-it[ (("it") %gentext-it-by%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-by%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-by%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-by%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-by%) ]]> + <![%l10n-no[ (("no") %gentext-no-by%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-by%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-by%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-by%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-by%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-by%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-by%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-by%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-by%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-by%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-by%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-by%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-by%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-by%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-by%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-by%) ]]> + <![%l10n-de[ (("dege") %gentext-de-by%) ]]> + <![%l10n-da[ (("dk") %gentext-da-by%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-by%) ]]> + <![%l10n-en[ (("usen") %gentext-en-by%) ]]> + (else (error "L10N ERROR: gentext-by")))) + +(define (gentext-edited-by) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-edited-by%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-edited-by%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-edited-by%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-edited-by%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-edited-by%) ]]> + <![%l10n-da[ (("da") %gentext-da-edited-by%) ]]> + <![%l10n-de[ (("de") %gentext-de-edited-by%) ]]> + <![%l10n-el[ (("el") %gentext-el-edited-by%) ]]> + <![%l10n-en[ (("en") %gentext-en-edited-by%) ]]> + <![%l10n-es[ (("es") %gentext-es-edited-by%) ]]> + <![%l10n-et[ (("et") %gentext-et-edited-by%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-edited-by%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-edited-by%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-edited-by%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-edited-by%) ]]> + <![%l10n-id[ (("id") %gentext-id-edited-by%) ]]> + <![%l10n-it[ (("it") %gentext-it-edited-by%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-edited-by%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-edited-by%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-edited-by%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-edited-by%) ]]> + <![%l10n-no[ (("no") %gentext-no-edited-by%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-edited-by%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-edited-by%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-edited-by%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-edited-by%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-edited-by%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-edited-by%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-edited-by%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-edited-by%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-edited-by%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-edited-by%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-edited-by%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-edited-by%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-edited-by%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-edited-by%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-edited-by%) ]]> + <![%l10n-de[ (("dege") %gentext-de-edited-by%) ]]> + <![%l10n-da[ (("dk") %gentext-da-edited-by%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-edited-by%) ]]> + <![%l10n-en[ (("usen") %gentext-en-edited-by%) ]]> + (else (error "L10N ERROR: gentext-edited-by")))) + +(define (gentext-revised-by) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-revised-by%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-revised-by%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-revised-by%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-revised-by%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-revised-by%) ]]> + <![%l10n-da[ (("da") %gentext-da-revised-by%) ]]> + <![%l10n-de[ (("de") %gentext-de-revised-by%) ]]> + <![%l10n-el[ (("el") %gentext-el-revised-by%) ]]> + <![%l10n-en[ (("en") %gentext-en-revised-by%) ]]> + <![%l10n-es[ (("es") %gentext-es-revised-by%) ]]> + <![%l10n-et[ (("et") %gentext-et-revised-by%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-revised-by%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-revised-by%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-revised-by%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-revised-by%) ]]> + <![%l10n-id[ (("id") %gentext-id-revised-by%) ]]> + <![%l10n-it[ (("it") %gentext-it-revised-by%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-revised-by%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-revised-by%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-revised-by%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-revised-by%) ]]> + <![%l10n-no[ (("no") %gentext-no-revised-by%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-revised-by%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-revised-by%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-revised-by%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-revised-by%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-revised-by%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-revised-by%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-revised-by%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-revised-by%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-revised-by%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-revised-by%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-revised-by%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-revised-by%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-revised-by%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-revised-by%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-revised-by%) ]]> + <![%l10n-de[ (("dege") %gentext-de-revised-by%) ]]> + <![%l10n-da[ (("dk") %gentext-da-revised-by%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-revised-by%) ]]> + <![%l10n-en[ (("usen") %gentext-en-revised-by%) ]]> + (else (error "L10N ERROR: gentext-revised-by")))) + +(define (gentext-page) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-page%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-page%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-page%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-page%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-page%) ]]> + <![%l10n-da[ (("da") %gentext-da-page%) ]]> + <![%l10n-de[ (("de") %gentext-de-page%) ]]> + <![%l10n-el[ (("el") %gentext-el-page%) ]]> + <![%l10n-en[ (("en") %gentext-en-page%) ]]> + <![%l10n-es[ (("es") %gentext-es-page%) ]]> + <![%l10n-et[ (("et") %gentext-et-page%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-page%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-page%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-page%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-page%) ]]> + <![%l10n-id[ (("id") %gentext-id-page%) ]]> + <![%l10n-it[ (("it") %gentext-it-page%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-page%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-page%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-page%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-page%) ]]> + <![%l10n-no[ (("no") %gentext-no-page%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-page%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-page%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-page%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-page%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-page%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-page%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-page%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-page%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-page%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-page%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-page%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-page%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-page%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-page%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-page%) ]]> + <![%l10n-de[ (("dege") %gentext-de-page%) ]]> + <![%l10n-da[ (("dk") %gentext-da-page%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-page%) ]]> + <![%l10n-en[ (("usen") %gentext-en-page%) ]]> + (else (error "L10N ERROR: gentext-page")))) + +(define (gentext-and) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-and%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-and%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-and%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-and%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-and%) ]]> + <![%l10n-da[ (("da") %gentext-da-and%) ]]> + <![%l10n-de[ (("de") %gentext-de-and%) ]]> + <![%l10n-el[ (("el") %gentext-el-and%) ]]> + <![%l10n-en[ (("en") %gentext-en-and%) ]]> + <![%l10n-es[ (("es") %gentext-es-and%) ]]> + <![%l10n-et[ (("et") %gentext-et-and%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-and%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-and%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-and%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-and%) ]]> + <![%l10n-id[ (("id") %gentext-id-and%) ]]> + <![%l10n-it[ (("it") %gentext-it-and%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-and%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-and%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-and%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-and%) ]]> + <![%l10n-no[ (("no") %gentext-no-and%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-and%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-and%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-and%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-and%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-and%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-and%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-and%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-and%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-and%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-and%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-and%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-and%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-and%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-and%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-and%) ]]> + <![%l10n-de[ (("dege") %gentext-de-and%) ]]> + <![%l10n-da[ (("dk") %gentext-da-and%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-and%) ]]> + <![%l10n-en[ (("usen") %gentext-en-and%) ]]> + (else (error "L10N ERROR: gentext-and")))) + +(define (gentext-listcomma) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-listcomma%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-listcomma%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-listcomma%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-listcomma%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-listcomma%) ]]> + <![%l10n-da[ (("da") %gentext-da-listcomma%) ]]> + <![%l10n-de[ (("de") %gentext-de-listcomma%) ]]> + <![%l10n-el[ (("el") %gentext-el-listcomma%) ]]> + <![%l10n-en[ (("en") %gentext-en-listcomma%) ]]> + <![%l10n-es[ (("es") %gentext-es-listcomma%) ]]> + <![%l10n-et[ (("et") %gentext-et-listcomma%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-listcomma%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-listcomma%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-listcomma%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-listcomma%) ]]> + <![%l10n-id[ (("id") %gentext-id-listcomma%) ]]> + <![%l10n-it[ (("it") %gentext-it-listcomma%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-listcomma%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-listcomma%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-listcomma%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-listcomma%) ]]> + <![%l10n-no[ (("no") %gentext-no-listcomma%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-listcomma%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-listcomma%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-listcomma%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-listcomma%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-listcomma%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-listcomma%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-listcomma%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-listcomma%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-listcomma%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-listcomma%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-listcomma%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-listcomma%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-listcomma%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-listcomma%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-listcomma%) ]]> + <![%l10n-de[ (("dege") %gentext-de-listcomma%) ]]> + <![%l10n-da[ (("dk") %gentext-da-listcomma%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-listcomma%) ]]> + <![%l10n-en[ (("usen") %gentext-en-listcomma%) ]]> + (else (error "L10N ERROR: gentext-listcomma")))) + +(define (gentext-lastlistcomma) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-lastlistcomma%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-lastlistcomma%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-lastlistcomma%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-lastlistcomma%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-lastlistcomma%) ]]> + <![%l10n-da[ (("da") %gentext-da-lastlistcomma%) ]]> + <![%l10n-de[ (("de") %gentext-de-lastlistcomma%) ]]> + <![%l10n-el[ (("el") %gentext-el-lastlistcomma%) ]]> + <![%l10n-en[ (("en") %gentext-en-lastlistcomma%) ]]> + <![%l10n-es[ (("es") %gentext-es-lastlistcomma%) ]]> + <![%l10n-et[ (("et") %gentext-et-lastlistcomma%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-lastlistcomma%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-lastlistcomma%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-lastlistcomma%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-lastlistcomma%) ]]> + <![%l10n-id[ (("id") %gentext-id-lastlistcomma%) ]]> + <![%l10n-it[ (("it") %gentext-it-lastlistcomma%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-lastlistcomma%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-lastlistcomma%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-lastlistcomma%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-lastlistcomma%) ]]> + <![%l10n-no[ (("no") %gentext-no-lastlistcomma%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-lastlistcomma%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-lastlistcomma%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-lastlistcomma%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-lastlistcomma%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-lastlistcomma%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-lastlistcomma%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-lastlistcomma%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-lastlistcomma%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-lastlistcomma%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-lastlistcomma%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-lastlistcomma%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-lastlistcomma%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-lastlistcomma%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-lastlistcomma%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-lastlistcomma%) ]]> + <![%l10n-de[ (("dege") %gentext-de-lastlistcomma%) ]]> + <![%l10n-da[ (("dk") %gentext-da-lastlistcomma%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-lastlistcomma%) ]]> + <![%l10n-en[ (("usen") %gentext-en-lastlistcomma%) ]]> + (else (error "L10N ERROR: gentext-lastlistcomma")))) + +(define (gentext-bibl-pages) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-bibl-pages%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-bibl-pages%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-bibl-pages%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-bibl-pages%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-bibl-pages%) ]]> + <![%l10n-da[ (("da") %gentext-da-bibl-pages%) ]]> + <![%l10n-de[ (("de") %gentext-de-bibl-pages%) ]]> + <![%l10n-el[ (("el") %gentext-el-bibl-pages%) ]]> + <![%l10n-en[ (("en") %gentext-en-bibl-pages%) ]]> + <![%l10n-es[ (("es") %gentext-es-bibl-pages%) ]]> + <![%l10n-et[ (("et") %gentext-et-bibl-pages%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-bibl-pages%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-bibl-pages%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-bibl-pages%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-bibl-pages%) ]]> + <![%l10n-id[ (("id") %gentext-id-bibl-pages%) ]]> + <![%l10n-it[ (("it") %gentext-it-bibl-pages%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-bibl-pages%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-bibl-pages%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-bibl-pages%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-bibl-pages%) ]]> + <![%l10n-no[ (("no") %gentext-no-bibl-pages%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-bibl-pages%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-bibl-pages%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-bibl-pages%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-bibl-pages%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-bibl-pages%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-bibl-pages%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-bibl-pages%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-bibl-pages%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-bibl-pages%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-bibl-pages%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-bibl-pages%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-bibl-pages%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-bibl-pages%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-bibl-pages%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-bibl-pages%) ]]> + <![%l10n-de[ (("dege") %gentext-de-bibl-pages%) ]]> + <![%l10n-da[ (("dk") %gentext-da-bibl-pages%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-bibl-pages%) ]]> + <![%l10n-en[ (("usen") %gentext-en-bibl-pages%) ]]> + (else (error "L10N ERROR: gentext-bibl-pages")))) + +(define (gentext-endnotes) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-endnotes%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-endnotes%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-endnotes%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-endnotes%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-endnotes%) ]]> + <![%l10n-da[ (("da") %gentext-da-endnotes%) ]]> + <![%l10n-de[ (("de") %gentext-de-endnotes%) ]]> + <![%l10n-el[ (("el") %gentext-el-endnotes%) ]]> + <![%l10n-en[ (("en") %gentext-en-endnotes%) ]]> + <![%l10n-es[ (("es") %gentext-es-endnotes%) ]]> + <![%l10n-et[ (("et") %gentext-et-endnotes%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-endnotes%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-endnotes%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-endnotes%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-endnotes%) ]]> + <![%l10n-id[ (("id") %gentext-id-endnotes%) ]]> + <![%l10n-it[ (("it") %gentext-it-endnotes%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-endnotes%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-endnotes%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-endnotes%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-endnotes%) ]]> + <![%l10n-no[ (("no") %gentext-no-endnotes%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-endnotes%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-endnotes%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-endnotes%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-endnotes%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-endnotes%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-endnotes%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-endnotes%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-endnotes%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-endnotes%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-endnotes%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-endnotes%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-endnotes%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-endnotes%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-endnotes%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-endnotes%) ]]> + <![%l10n-de[ (("dege") %gentext-de-endnotes%) ]]> + <![%l10n-da[ (("dk") %gentext-da-endnotes%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-endnotes%) ]]> + <![%l10n-en[ (("usen") %gentext-en-endnotes%) ]]> + (else (error "L10N ERROR: gentext-endnotes")))) + +(define (gentext-table-endnotes) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-table-endnotes%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-table-endnotes%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-table-endnotes%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-table-endnotes%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-table-endnotes%) ]]> + <![%l10n-da[ (("da") %gentext-da-table-endnotes%) ]]> + <![%l10n-de[ (("de") %gentext-de-table-endnotes%) ]]> + <![%l10n-el[ (("el") %gentext-el-table-endnotes%) ]]> + <![%l10n-en[ (("en") %gentext-en-table-endnotes%) ]]> + <![%l10n-es[ (("es") %gentext-es-table-endnotes%) ]]> + <![%l10n-et[ (("et") %gentext-et-table-endnotes%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-table-endnotes%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-table-endnotes%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-table-endnotes%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-table-endnotes%) ]]> + <![%l10n-id[ (("id") %gentext-id-table-endnotes%) ]]> + <![%l10n-it[ (("it") %gentext-it-table-endnotes%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-table-endnotes%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-table-endnotes%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-table-endnotes%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-table-endnotes%) ]]> + <![%l10n-no[ (("no") %gentext-no-table-endnotes%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-table-endnotes%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-table-endnotes%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-table-endnotes%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-table-endnotes%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-table-endnotes%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-table-endnotes%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-table-endnotes%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-table-endnotes%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-table-endnotes%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-table-endnotes%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-table-endnotes%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-table-endnotes%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-table-endnotes%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-table-endnotes%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-table-endnotes%) ]]> + <![%l10n-de[ (("dege") %gentext-de-table-endnotes%) ]]> + <![%l10n-da[ (("dk") %gentext-da-table-endnotes%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-table-endnotes%) ]]> + <![%l10n-en[ (("usen") %gentext-en-table-endnotes%) ]]> + (else (error "L10N ERROR: gentext-table-endnotes")))) + +(define (gentext-index-see) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-index-see%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-index-see%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-index-see%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-index-see%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-index-see%) ]]> + <![%l10n-da[ (("da") %gentext-da-index-see%) ]]> + <![%l10n-de[ (("de") %gentext-de-index-see%) ]]> + <![%l10n-el[ (("el") %gentext-el-index-see%) ]]> + <![%l10n-en[ (("en") %gentext-en-index-see%) ]]> + <![%l10n-es[ (("es") %gentext-es-index-see%) ]]> + <![%l10n-et[ (("et") %gentext-et-index-see%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-index-see%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-index-see%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-index-see%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-index-see%) ]]> + <![%l10n-id[ (("id") %gentext-id-index-see%) ]]> + <![%l10n-it[ (("it") %gentext-it-index-see%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-index-see%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-index-see%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-index-see%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-index-see%) ]]> + <![%l10n-no[ (("no") %gentext-no-index-see%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-index-see%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-index-see%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-index-see%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-index-see%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-index-see%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-index-see%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-index-see%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-index-see%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-index-see%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-index-see%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-index-see%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-index-see%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-index-see%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-index-see%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-index-see%) ]]> + <![%l10n-de[ (("dege") %gentext-de-index-see%) ]]> + <![%l10n-da[ (("dk") %gentext-da-index-see%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-index-see%) ]]> + <![%l10n-en[ (("usen") %gentext-en-index-see%) ]]> + (else (error "L10N ERROR: gentext-index-see")))) + +(define (gentext-index-seealso) + (case ($lang$) + <![%l10n-af[ (("af") %gentext-af-index-seealso%) ]]> + <![%l10n-bg[ (("bg") %gentext-bg-index-seealso%) ]]> + <![%l10n-bs[ (("bs") %gentext-bs-index-seealso%) ]]> + <![%l10n-ca[ (("ca") %gentext-ca-index-seealso%) ]]> + <![%l10n-cs[ (("cs") %gentext-cs-index-seealso%) ]]> + <![%l10n-da[ (("da") %gentext-da-index-seealso%) ]]> + <![%l10n-de[ (("de") %gentext-de-index-seealso%) ]]> + <![%l10n-el[ (("el") %gentext-el-index-seealso%) ]]> + <![%l10n-en[ (("en") %gentext-en-index-seealso%) ]]> + <![%l10n-es[ (("es") %gentext-es-index-seealso%) ]]> + <![%l10n-et[ (("et") %gentext-et-index-seealso%) ]]> + <![%l10n-eu[ (("eu") %gentext-eu-index-seealso%) ]]> + <![%l10n-fi[ (("fi") %gentext-fi-index-seealso%) ]]> + <![%l10n-fr[ (("fr") %gentext-fr-index-seealso%) ]]> + <![%l10n-hu[ (("hu") %gentext-hu-index-seealso%) ]]> + <![%l10n-id[ (("id") %gentext-id-index-seealso%) ]]> + <![%l10n-it[ (("it") %gentext-it-index-seealso%) ]]> + <![%l10n-ja[ (("ja") %gentext-ja-index-seealso%) ]]> + <![%l10n-ko[ (("ko") %gentext-ko-index-seealso%) ]]> + <![%l10n-nl[ (("nl") %gentext-nl-index-seealso%) ]]> + <![%l10n-nn[ (("nn") %gentext-nn-index-seealso%) ]]> + <![%l10n-no[ (("no") %gentext-no-index-seealso%) ]]> + <![%l10n-pl[ (("pl") %gentext-pl-index-seealso%) ]]> + <![%l10n-pt[ (("pt") %gentext-pt-index-seealso%) ]]> + <![%l10n-ptbr[ (("pt_br") %gentext-ptbr-index-seealso%) ]]> + <![%l10n-ro[ (("ro") %gentext-ro-index-seealso%) ]]> + <![%l10n-ru[ (("ru") %gentext-ru-index-seealso%) ]]> + <![%l10n-sk[ (("sk") %gentext-sk-index-seealso%) ]]> + <![%l10n-sl[ (("sl") %gentext-sl-index-seealso%) ]]> + <![%l10n-sr[ (("sr") %gentext-sr-index-seealso%) ]]> + <![%l10n-sv[ (("sv") %gentext-sv-index-seealso%) ]]> + <![%l10n-tr[ (("tr") %gentext-tr-index-seealso%) ]]> + <![%l10n-uk[ (("uk") %gentext-uk-index-seealso%) ]]> + <![%l10n-xh[ (("xh") %gentext-xh-index-seealso%) ]]> + <![%l10n-zhcn[ (("zh_cn") %gentext-zhcn-index-seealso%) ]]> + <![%l10n-zhtw[ (("zh_tw") %gentext-zhtw-index-seealso%) ]]> + <![%l10n-no[ (("bmno") %gentext-no-index-seealso%) ]]> + <![%l10n-de[ (("dege") %gentext-de-index-seealso%) ]]> + <![%l10n-da[ (("dk") %gentext-da-index-seealso%) ]]> + <![%l10n-sv[ (("svse") %gentext-sv-index-seealso%) ]]> + <![%l10n-en[ (("usen") %gentext-en-index-seealso%) ]]> + (else (error "L10N ERROR: gentext-index-seealso")))) + +(define (gentext-nav-prev prev) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-prev prev)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-prev prev)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-prev prev)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-prev prev)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-prev prev)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-prev prev)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-prev prev)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-prev prev)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-prev prev)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-prev prev)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-prev prev)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-prev prev)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-prev prev)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-prev prev)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-prev prev)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-prev prev)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-prev prev)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-prev prev)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-prev prev)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-prev prev)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-prev prev)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-prev prev)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-prev prev)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-prev prev)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-prev prev)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-prev prev)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-prev prev)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-prev prev)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-prev prev)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-prev prev)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-prev prev)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-prev prev)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-prev prev)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-prev prev)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-prev prev)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-prev prev)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-prev prev)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-prev prev)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-prev prev)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-prev prev)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-prev prev)) ]]> + (else (error "L10N ERROR: gentext-nav-prev")))) + +(define (gentext-nav-prev-sibling prevsib) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-prev-sibling prevsib)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-prev-sibling prevsib)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-prev-sibling prevsib)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-prev-sibling prevsib)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-prev-sibling prevsib)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-prev-sibling prevsib)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-prev-sibling prevsib)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-prev-sibling prevsib)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-prev-sibling prevsib)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-prev-sibling prevsib)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-prev-sibling prevsib)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-prev-sibling prevsib)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-prev-sibling prevsib)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-prev-sibling prevsib)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-prev-sibling prevsib)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-prev-sibling prevsib)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-prev-sibling prevsib)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-prev-sibling prevsib)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-prev-sibling prevsib)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-prev-sibling prevsib)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-prev-sibling prevsib)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-prev-sibling prevsib)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-prev-sibling prevsib)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-prev-sibling prevsib)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-prev-sibling prevsib)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-prev-sibling prevsib)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-prev-sibling prevsib)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-prev-sibling prevsib)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-prev-sibling prevsib)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-prev-sibling prevsib)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-prev-sibling prevsib)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-prev-sibling prevsib)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-prev-sibling prevsib)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-prev-sibling prevsib)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-prev-sibling prevsib)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-prev-sibling prevsib)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-prev-sibling prevsib)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-prev-sibling prevsib)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-prev-sibling prevsib)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-prev-sibling prevsib)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-prev-sibling prevsib)) ]]> + (else (error "L10N ERROR: gentext-nav-prev-sibling ")))) + +(define (gentext-nav-next-sibling nextsib) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-next-sibling nextsib)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-next-sibling nextsib)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-next-sibling nextsib)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-next-sibling nextsib)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-next-sibling nextsib)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-next-sibling nextsib)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-next-sibling nextsib)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-next-sibling nextsib)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-next-sibling nextsib)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-next-sibling nextsib)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-next-sibling nextsib)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-next-sibling nextsib)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-next-sibling nextsib)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-next-sibling nextsib)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-next-sibling nextsib)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-next-sibling nextsib)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-next-sibling nextsib)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-next-sibling nextsib)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-next-sibling nextsib)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-next-sibling nextsib)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-next-sibling nextsib)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-next-sibling nextsib)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-next-sibling nextsib)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-next-sibling nextsib)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-next-sibling nextsib)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-next-sibling nextsib)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-next-sibling nextsib)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-next-sibling nextsib)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-next-sibling nextsib)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-next-sibling nextsib)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-next-sibling nextsib)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-next-sibling nextsib)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-next-sibling nextsib)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-next-sibling nextsib)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-next-sibling nextsib)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-next-sibling nextsib)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-next-sibling nextsib)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-next-sibling nextsib)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-next-sibling nextsib)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-next-sibling nextsib)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-next-sibling nextsib)) ]]> + (else (error "L10N ERROR: gentext-nav-next-sibling")))) + +(define (gentext-nav-next next) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-next next)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-next next)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-next next)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-next next)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-next next)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-next next)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-next next)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-next next)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-next next)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-next next)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-next next)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-next next)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-next next)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-next next)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-next next)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-next next)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-next next)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-next next)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-next next)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-next next)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-next next)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-next next)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-next next)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-next next)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-next next)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-next next)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-next next)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-next next)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-next next)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-next next)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-next next)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-next next)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-next next)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-next next)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-next next)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-next next)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-next next)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-next next)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-next next)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-next next)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-next next)) ]]> + (else (error "L10N ERROR: gentext-nav-next")))) + +(define (gentext-nav-up up) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-up up)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-up up)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-up up)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-up up)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-up up)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-up up)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-up up)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-up up)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-up up)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-up up)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-up up)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-up up)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-up up)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-up up)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-up up)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-up up)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-up up)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-up up)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-up up)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-up up)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-up up)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-up up)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-up up)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-up up)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-up up)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-up up)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-up up)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-up up)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-up up)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-up up)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-up up)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-up up)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-up up)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-up up)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-up up)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-up up)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-up up)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-up up)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-up up)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-up up)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-up up)) ]]> + (else (error "L10N ERROR: gentext-nav-up")))) + +(define (gentext-nav-home home) + (case ($lang$) + <![%l10n-af[ (("af") (gentext-af-nav-home home)) ]]> + <![%l10n-bg[ (("bg") (gentext-bg-nav-home home)) ]]> + <![%l10n-bs[ (("bs") (gentext-bs-nav-home home)) ]]> + <![%l10n-ca[ (("ca") (gentext-ca-nav-home home)) ]]> + <![%l10n-cs[ (("cs") (gentext-cs-nav-home home)) ]]> + <![%l10n-da[ (("da") (gentext-da-nav-home home)) ]]> + <![%l10n-de[ (("de") (gentext-de-nav-home home)) ]]> + <![%l10n-el[ (("el") (gentext-el-nav-home home)) ]]> + <![%l10n-en[ (("en") (gentext-en-nav-home home)) ]]> + <![%l10n-es[ (("es") (gentext-es-nav-home home)) ]]> + <![%l10n-et[ (("et") (gentext-et-nav-home home)) ]]> + <![%l10n-eu[ (("eu") (gentext-eu-nav-home home)) ]]> + <![%l10n-fi[ (("fi") (gentext-fi-nav-home home)) ]]> + <![%l10n-fr[ (("fr") (gentext-fr-nav-home home)) ]]> + <![%l10n-hu[ (("hu") (gentext-hu-nav-home home)) ]]> + <![%l10n-id[ (("id") (gentext-id-nav-home home)) ]]> + <![%l10n-it[ (("it") (gentext-it-nav-home home)) ]]> + <![%l10n-ja[ (("ja") (gentext-ja-nav-home home)) ]]> + <![%l10n-ko[ (("ko") (gentext-ko-nav-home home)) ]]> + <![%l10n-nl[ (("nl") (gentext-nl-nav-home home)) ]]> + <![%l10n-nn[ (("nn") (gentext-nn-nav-home home)) ]]> + <![%l10n-no[ (("no") (gentext-no-nav-home home)) ]]> + <![%l10n-pl[ (("pl") (gentext-pl-nav-home home)) ]]> + <![%l10n-pt[ (("pt") (gentext-pt-nav-home home)) ]]> + <![%l10n-ptbr[ (("pt_br") (gentext-ptbr-nav-home home)) ]]> + <![%l10n-ro[ (("ro") (gentext-ro-nav-home home)) ]]> + <![%l10n-ru[ (("ru") (gentext-ru-nav-home home)) ]]> + <![%l10n-sk[ (("sk") (gentext-sk-nav-home home)) ]]> + <![%l10n-sl[ (("sl") (gentext-sl-nav-home home)) ]]> + <![%l10n-sr[ (("sr") (gentext-sr-nav-home home)) ]]> + <![%l10n-sv[ (("sv") (gentext-sv-nav-home home)) ]]> + <![%l10n-tr[ (("tr") (gentext-tr-nav-home home)) ]]> + <![%l10n-uk[ (("uk") (gentext-uk-nav-home home)) ]]> + <![%l10n-xh[ (("xh") (gentext-xh-nav-home home)) ]]> + <![%l10n-zhcn[ (("zh_cn") (gentext-zhcn-nav-home home)) ]]> + <![%l10n-zhtw[ (("zh_tw") (gentext-zhtw-nav-home home)) ]]> + <![%l10n-no[ (("bmno") (gentext-no-nav-home home)) ]]> + <![%l10n-de[ (("dege") (gentext-de-nav-home home)) ]]> + <![%l10n-da[ (("dk") (gentext-da-nav-home home)) ]]> + <![%l10n-sv[ (("svse") (gentext-sv-nav-home home)) ]]> + <![%l10n-en[ (("usen") (gentext-en-nav-home home)) ]]> + (else (error "L10N ERROR: gentext-nav-home")))) diff --git a/common/dbl10n.ent b/common/dbl10n.ent new file mode 100644 index 0000000..5b9b3a2 --- /dev/null +++ b/common/dbl10n.ent @@ -0,0 +1,361 @@ +<!ENTITY % l10n-af "INCLUDE"> +<!ENTITY % l10n-bg "INCLUDE"> +<!ENTITY % l10n-bs "INCLUDE"> +<!ENTITY % l10n-ca "INCLUDE"> +<!ENTITY % l10n-cs "INCLUDE"> +<!ENTITY % l10n-da "INCLUDE"> +<!ENTITY % l10n-de "INCLUDE"> +<!ENTITY % l10n-el "INCLUDE"> +<!ENTITY % l10n-en "INCLUDE"> +<!ENTITY % l10n-es "INCLUDE"> +<!ENTITY % l10n-et "INCLUDE"> +<!ENTITY % l10n-eu "INCLUDE"> +<!ENTITY % l10n-fi "INCLUDE"> +<!ENTITY % l10n-fr "INCLUDE"> +<!ENTITY % l10n-hu "INCLUDE"> +<!ENTITY % l10n-id "INCLUDE"> +<!ENTITY % l10n-it "INCLUDE"> +<!ENTITY % l10n-ja "INCLUDE"> +<!ENTITY % l10n-ko "INCLUDE"> +<!ENTITY % l10n-nl "INCLUDE"> +<!ENTITY % l10n-nn "INCLUDE"> +<!ENTITY % l10n-no "INCLUDE"> +<!ENTITY % l10n-pl "INCLUDE"> +<!ENTITY % l10n-pt "INCLUDE"> +<!ENTITY % l10n-ptbr "INCLUDE"> +<!ENTITY % l10n-ro "INCLUDE"> +<!ENTITY % l10n-ru "INCLUDE"> +<!ENTITY % l10n-sk "INCLUDE"> +<!ENTITY % l10n-sl "INCLUDE"> +<!ENTITY % l10n-sr "INCLUDE"> +<!ENTITY % l10n-sv "INCLUDE"> +<!ENTITY % l10n-tr "INCLUDE"> +<!ENTITY % l10n-uk "INCLUDE"> +<!ENTITY % l10n-xh "INCLUDE"> +<!ENTITY % l10n-zhcn "INCLUDE"> +<!ENTITY % l10n-zhtw "INCLUDE"> + +<![%l10n-af;[ +<!ENTITY dbl1af + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//AF" + "../common/dbl1af.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1af + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-bg;[ +<!ENTITY dbl1bg + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//BG" + "../common/dbl1bg.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1bg + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-bs;[ +<!ENTITY dbl1bs + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//BS" + "../common/dbl1bs.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1bs + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ca;[ +<!ENTITY dbl1ca + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//CA" + "../common/dbl1ca.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ca + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-cs;[ +<!ENTITY dbl1cs + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//CS" + "../common/dbl1cs.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1cs + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-da;[ +<!ENTITY dbl1da + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//DA" + "../common/dbl1da.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1da + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-de;[ +<!ENTITY dbl1de + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//DE" + "../common/dbl1de.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1de + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-el;[ +<!ENTITY dbl1el + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//EL" + "../common/dbl1el.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1el + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EL" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-en;[ +<!ENTITY dbl1en + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//EN" + "../common/dbl1en.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1en + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-es;[ +<!ENTITY dbl1es + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//ES" + "../common/dbl1es.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1es + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-et;[ +<!ENTITY dbl1et + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//ET" + "../common/dbl1et.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1et + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-eu;[ +<!ENTITY dbl1eu + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//EU" + "../common/dbl1eu.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1eu + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-fi;[ +<!ENTITY dbl1fi + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//FI" + "../common/dbl1fi.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1fi + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-fr;[ +<!ENTITY dbl1fr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//FR" + "../common/dbl1fr.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1fr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-hu;[ +<!ENTITY dbl1hu + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//HU" + "../common/dbl1hu.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1hu + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-id;[ +<!ENTITY dbl1id + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//ID" + "../common/dbl1id.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1id + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-it;[ +<!ENTITY dbl1it + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//IT" + "../common/dbl1it.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1it + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ja;[ +<!ENTITY dbl1ja + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//JA" + "../common/dbl1ja.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ja + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ko;[ +<!ENTITY dbl1ko + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//KO" + "../common/dbl1ko.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ko + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-nl;[ +<!ENTITY dbl1nl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//NL" + "../common/dbl1nl.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1nl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-nn;[ +<!ENTITY dbl1nn + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//NN" + "../common/dbl1nn.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1nn + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-no;[ +<!ENTITY dbl1no + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//NO" + "../common/dbl1no.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1no + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-pl;[ +<!ENTITY dbl1pl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//PL" + "../common/dbl1pl.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1pl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-pt;[ +<!ENTITY dbl1pt + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//PT" + "../common/dbl1pt.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1pt + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ptbr;[ +<!ENTITY dbl1ptbr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//PTBR" + "../common/dbl1ptbr.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ptbr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ro;[ +<!ENTITY dbl1ro + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//RO" + "../common/dbl1ro.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ro + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-ru;[ +<!ENTITY dbl1ru + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//RU" + "../common/dbl1ru.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1ru + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-sk;[ +<!ENTITY dbl1sk + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//SK" + "../common/dbl1sk.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1sk + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-sl;[ +<!ENTITY dbl1sl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//SL" + "../common/dbl1sl.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1sl + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-sr;[ +<!ENTITY dbl1sr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//SR" + "../common/dbl1sr.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1sr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-sv;[ +<!ENTITY dbl1sv + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//SV" + "../common/dbl1sv.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1sv + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-tr;[ +<!ENTITY dbl1tr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//TR" + "../common/dbl1tr.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1tr + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-uk;[ +<!ENTITY dbl1uk + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//UK" + "../common/dbl1uk.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1uk + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-xh;[ +<!ENTITY dbl1xh + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//XH" + "../common/dbl1xh.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1xh + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-zhcn;[ +<!ENTITY dbl1zhcn + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//ZHCN" + "../common/dbl1zhcn.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1zhcn + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + +<![%l10n-zhtw;[ +<!ENTITY dbl1zhtw + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Localization//ZHTW" + "../common/dbl1zhtw.dsl" CDATA DSSSL> +]]> +<!ENTITY dbl1zhtw + PUBLIC "-//Norman Walsh//DOCUMENT DocBook Stylesheet Null Localization//EN" + "../common/dbl1null.dsl" CDATA DSSSL> + diff --git a/common/dbl10n.pl b/common/dbl10n.pl new file mode 100644 index 0000000..8683841 --- /dev/null +++ b/common/dbl10n.pl @@ -0,0 +1,55 @@ +#!/usr/bin/perl -w -- # -*- Perl -*- + +use strict; + +my $template = "dbl10n.template"; +my $dbl10n = "dbl10n.dsl"; +my @languages = (); +my %langsection = (); +my $inlist = 0; +my $historical = 0; + +open (F, $template); +open (G, ">$dbl10n"); + +while (<F>) { + if (/\%\%\/?LANGUAGES\%\%/ || /\%\%HISTORICAL\%\%/) { + $inlist = 1 if $& eq '%%LANGUAGES%%'; + $inlist = 0 if $& eq '%%/LANGUAGES%%'; + $historical = 1 if $& eq '%%HISTORICAL%%'; + next; + } + + if ($inlist && /^;; (\S+)\s+-/) { + my $lang = $1; + my $section = $1; + + if ($historical) { + $lang =~ /^(\S+)\((\S+)\)/; + $lang = $1; + $section = $2; + } + + $section =~ s/\_//sg; +# print "$lang = $section\n"; + + push (@languages, $lang); + $langsection{$lang} = $section; + } + + if (/<!\[\%l10n-XX/) { + my $line = $_; + foreach my $lang (@languages) { + my $section = $langsection{$lang}; + $_ = $line; + s/\"XX\"/\"$lang\"/g; + s/XX/$section/g; + print G $_; + } + } else { + print G $_; + } +} + +close (F); +close (G); diff --git a/common/dbl10n.template b/common/dbl10n.template new file mode 100644 index 0000000..b05f789 --- /dev/null +++ b/common/dbl10n.template @@ -0,0 +1,277 @@ +;; $Id: dbl10n.template,v 1.3 2004/10/09 21:36:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com. Please use the ISO 639 language +;; code to identify the language. Append a subtag as per RFC 1766, +;; if necessary. + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x and #x +;; keywords. +;; + +;; The following language codes from ISO 639 are recognized: +;; %%LANGUAGES%% +;; af - Afrikaans 1.71 +;; bg - Bulgarian +;; bs - Bosnian +;; ca - Catalan +;; cs - Czech +;; da - Danish (previously dk) +;; de - German (previously dege) +;; el - Greek +;; en - English (previously usen) +;; es - Spanish +;; et - Estonian 1.55 +;; eu - Basque 1.74 +;; fi - Finnish +;; fr - French +;; hu - Hungarian 1.55 +;; id - Indonesian 1.55 +;; it - Italian +;; ja - Japanese +;; ko - Korean 1.59 +;; nl - Dutch +;; nn - Nnyorsk 1.74 +;; no - Norwegian (previously bmno) ??? +;; pl - Polish +;; pt - Portuguese +;; pt_br - Portuguese (Brazil) +;; ro - Romanian +;; ru - Russian +;; sk - Slovak +;; sl - Slovenian 1.55 +;; sr - Serbian 1.70 +;; sv - Swedish (previously svse) +;; tr - Turkish 1.71 +;; uk - Ukranian 1.74 +;; xh - Xhosa 1.74 +;; zh_cn - Chinese (Continental) 1.55 +;; zh_tw - Chinese (Traditional) 1.70 + +;; The following language codes are recognized for historical reasons: + +;; %%HISTORICAL%% +;; bmno(no) - Norwegian (Norsk Bokmal) ??? +;; dege(de) - German +;; dk(da) - Danish +;; svse(sv) - Swedish +;; usen(en) - English +;; %%/LANGUAGES%% + +(define %default-language% "en") +(define %gentext-language% #f) +(define %gentext-use-xref-lang% #f) + +(define ($lang$ #!optional (target (current-node)) (xref-context #f)) + (if %gentext-language% + (lang-fix %gentext-language%) + (if (or xref-context %gentext-use-xref-lang%) + (let loop ((here target)) + (if (node-list-empty? here) + (lang-fix %default-language%) + (if (attribute-string (normalize "lang") here) + (lang-fix (attribute-string (normalize "lang") here)) + (loop (parent here))))) + (if (inherited-attribute-string (normalize "lang")) + (lang-fix (inherited-attribute-string (normalize "lang"))) + (lang-fix %default-language%))))) + +(define (lang-fix language) + ;; Lowercase the language + ;; Translate 'xx-yy' to 'xx_yy' + (let ((fixed-lang (if (> (string-index language "-") 0) + (let ((pos (string-index language "-"))) + (string-append + (substring language 0 pos) + "_" + (substring language (+ pos 1) + (string-length language)))) + language))) + (case-fold-down fixed-lang))) + +(define (author-string #!optional (author (current-node))) + (let ((lang (if (string? author) ($lang$) ($lang$ author)))) + (case lang + ;; ISO 639/ISO 3166/RFC 1766 + <![%l10n-XX[ (("XX") (XX-author-string author)) ]]> + (else (error (string-append "L10N ERROR: author-string: " + lang)))))) + +(define (gentext-xref-strings target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-XX[ (("XX") (gentext-XX-xref-strings giname)) ]]> + (else (error (string-append "L10N ERROR: gentext-xref-strings: " + lang)))))) + +(define (auto-xref-indirect-connector before) + (case ($lang$) + <![%l10n-XX[ (("XX") (XX-auto-xref-indirect-connector before)) ]]> + (else (error "L10N ERROR: auto-xref-indirect-connector")))) + +(define (generate-toc-in-front) + (case ($lang$) + <![%l10n-XX[ (("XX") %generate-XX-toc-in-front%) ]]> + (else (error "L10N ERROR: generate-toc-in-front")))) + +(define (gentext-element-name target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target #t)))) + (case lang + <![%l10n-XX[ (("XX") (gentext-XX-element-name giname)) ]]> + (else (error (string-append "L10N ERROR: gentext-element-name: " + lang + " (" + giname + ")")))))) + +(define (gentext-element-name-space target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-XX[ (("XX") (gentext-XX-element-name-space giname)) ]]> + (else (error "L10N ERROR: gentext-element-name-space"))))) + +(define (gentext-intra-label-sep target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-XX[ (("XX") (gentext-XX-intra-label-sep giname)) ]]> + (else (error "L10N ERROR: gentext-intra-label-sep"))))) + +(define (gentext-label-title-sep target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-XX[ (("XX") (gentext-XX-label-title-sep giname)) ]]> + (else (error "L10N ERROR: gentext-label-title-sep"))))) + +(define (label-number-format target) + (let ((giname (if (string? target) (normalize target) (gi target))) + (lang (if (string? target) ($lang$) ($lang$ target)))) + (case lang + <![%l10n-XX[ (("XX") (XX-label-number-format target)) ]]> + (else (error "L10N ERROR: label-number-format"))))) + +(define ($lot-title$ lotgi) + (case ($lang$) + <![%l10n-XX[ (("XX") ($lot-title-XX$ lotgi)) ]]> + (else (error "L10N ERROR: $lot-title$")))) + +(define (gentext-start-quote) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-start-quote%) ]]> + (else (error "L10N ERROR: gentext-start-quote")))) + +(define (gentext-end-quote) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-end-quote%) ]]> + (else (error "L10N ERROR: gentext-end-quote")))) + +(define (gentext-start-nested-quote) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-start-nested-quote%) ]]> + (else (error "L10N ERROR: gentext-start-nested-quote")))) + +(define (gentext-end-nested-quote) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-end-nested-quote%) ]]> + (else (error "L10N ERROR: gentext-end-nested-quote")))) + +(define (gentext-by) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-by%) ]]> + (else (error "L10N ERROR: gentext-by")))) + +(define (gentext-edited-by) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-edited-by%) ]]> + (else (error "L10N ERROR: gentext-edited-by")))) + +(define (gentext-revised-by) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-revised-by%) ]]> + (else (error "L10N ERROR: gentext-revised-by")))) + +(define (gentext-page) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-page%) ]]> + (else (error "L10N ERROR: gentext-page")))) + +(define (gentext-and) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-and%) ]]> + (else (error "L10N ERROR: gentext-and")))) + +(define (gentext-listcomma) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-listcomma%) ]]> + (else (error "L10N ERROR: gentext-listcomma")))) + +(define (gentext-lastlistcomma) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-lastlistcomma%) ]]> + (else (error "L10N ERROR: gentext-lastlistcomma")))) + +(define (gentext-bibl-pages) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-bibl-pages%) ]]> + (else (error "L10N ERROR: gentext-bibl-pages")))) + +(define (gentext-endnotes) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-endnotes%) ]]> + (else (error "L10N ERROR: gentext-endnotes")))) + +(define (gentext-table-endnotes) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-table-endnotes%) ]]> + (else (error "L10N ERROR: gentext-table-endnotes")))) + +(define (gentext-index-see) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-index-see%) ]]> + (else (error "L10N ERROR: gentext-index-see")))) + +(define (gentext-index-seealso) + (case ($lang$) + <![%l10n-XX[ (("XX") %gentext-XX-index-seealso%) ]]> + (else (error "L10N ERROR: gentext-index-seealso")))) + +(define (gentext-nav-prev prev) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-prev prev)) ]]> + (else (error "L10N ERROR: gentext-nav-prev")))) + +(define (gentext-nav-prev-sibling prevsib) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-prev-sibling prevsib)) ]]> + (else (error "L10N ERROR: gentext-nav-prev-sibling ")))) + +(define (gentext-nav-next-sibling nextsib) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-next-sibling nextsib)) ]]> + (else (error "L10N ERROR: gentext-nav-next-sibling")))) + +(define (gentext-nav-next next) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-next next)) ]]> + (else (error "L10N ERROR: gentext-nav-next")))) + +(define (gentext-nav-up up) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-up up)) ]]> + (else (error "L10N ERROR: gentext-nav-up")))) + +(define (gentext-nav-home home) + (case ($lang$) + <![%l10n-XX[ (("XX") (gentext-XX-nav-home home)) ]]> + (else (error "L10N ERROR: gentext-nav-home")))) diff --git a/common/dbl1af.dsl b/common/dbl1af.dsl new file mode 100644 index 0000000..47b62e0 --- /dev/null +++ b/common/dbl1af.dsl @@ -0,0 +1,440 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % af.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//AF" + "dbl1af.ent"> +%af.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-af"> +<style-specification-body> + +;; $Id: dbl1af.dsl,v 1.1 2001/07/04 14:46:00 uid48421 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Modified for Afrikaans + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (af-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (af-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-af-start-quote% + "%t" + %gentext-af-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-af-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (af-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (af-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-af-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (af-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&ISBN;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-af-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (af-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-af-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-af-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-af-intra-label-sep) + (list)) + +(define (af-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-af-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (sep (assoc name (af-intra-label-sep)))) + (if sep + (car (cdr sep)) + ""))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-af-label-title-sep) + (list)) + +(define (af-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-af-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (sep (assoc name (af-label-title-sep)))) + (if sep + (car (cdr sep)) + ""))) + +(define (af-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (af-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (af-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (af-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-af$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (af-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-af-start-quote% (dingbat "ldquo")) + +(define %gentext-af-end-quote% (dingbat "rdquo")) + +(define %gentext-af-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-af-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-af-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-af-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-af-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-af-page% "") + +(define %gentext-af-and% "∧") + +(define %gentext-af-listcomma% "&listcomma;") + +(define %gentext-af-lastlistcomma% "&lastlistcomma;") + +(define %gentext-af-bibl-pages% "&Pgs;") + +(define %gentext-af-endnotes% "&Notes;") + +(define %gentext-af-table-endnotes% "&TableNotes;:") + +(define %gentext-af-index-see% "&See;") + +(define %gentext-af-index-seealso% "&SeeAlso;") + + +(define (gentext-af-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-af-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-af-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-af-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-af-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-af-nav-home home) + (make sequence (literal "&nav-home;"))) + +</style-specification-body> +</style-specification> +</style-sheet> + diff --git a/common/dbl1af.ent b/common/dbl1af.ent new file mode 100644 index 0000000..893f197 --- /dev/null +++ b/common/dbl1af.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Samevatting"> +<!ENTITY abstract "samevatting"> +<!ENTITY Answer "Antwoord:"> +<!ENTITY answer "antwoord:"> +<!ENTITY Appendix "Aanhangsel"> +<!ENTITY appendix "aanhangsel"> +<!ENTITY Article "Artikel"> +<!ENTITY article "artikel"> +<!ENTITY Bibliography "Bibliografie"> +<!ENTITY bibliography "bibliografie"> +<!ENTITY Book "Boek"> +<!ENTITY book "boek"> +<!ENTITY Caution "Pas op"> +<!ENTITY caution "pas op"> +<!ENTITY CAUTION "PAS OP"> +<!ENTITY Chapter "Hoofdstuk"> +<!ENTITY chapter "hoofdstuk"> +<!ENTITY Colophon "Kolifon"> +<!ENTITY colophon "kolifon"> +<!ENTITY Copyright "Kopie reg"> +<!ENTITY copyright "kopie reg"> +<!ENTITY Dedication "Opgedra aan"> +<!ENTITY dedication "opgedra aan"> +<!ENTITY Edition "Uitgawe"> +<!ENTITY edition "uitgawe"> +<!ENTITY Equation "Vergelyking"> +<!ENTITY equation "vergelyking"> +<!ENTITY Example "Voorbeeld"> +<!ENTITY example "voorbeeld"> +<!ENTITY Figure "Figuur"> +<!ENTITY figure "figuur"> +<!ENTITY Glossary "Woordlys"> +<!ENTITY glossary "woordlys"> +<!ENTITY GlossSee "WoordelysSien"> +<!ENTITY glosssee "woordelyssien"> +<!ENTITY GlossSeeAlso "WoordelysSienOok"> +<!ENTITY glossseealso "woordelyssienook"> +<!ENTITY IMPORTANT "BELANGRIK"> +<!ENTITY Important "Belangrik"> +<!ENTITY important "belangrik"> +<!ENTITY Index "Indeks"> +<!ENTITY index "indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "isbn"> +<!ENTITY LegalNotice "RegsKennisgewing"> +<!ENTITY legalnotice "regskennisgewing"> +<!ENTITY MsgAud "Teikengroep"> +<!ENTITY msgaud "teikengroep"> +<!ENTITY MsgLevel "Vlak"> +<!ENTITY msglevel "vlak"> +<!ENTITY MsgOrig "Herkoms"> +<!ENTITY msgorig "herkoms"> +<!ENTITY note "opmerking"> +<!ENTITY NOTE "OPMERKING"> +<!ENTITY Note "Opmerking"> +<!ENTITY Part "Deel"> +<!ENTITY part "deel"> +<!ENTITY Preface "Voorwoord"> +<!ENTITY preface "voorwoord"> +<!ENTITY Procedure "Prosedure"> +<!ENTITY procedure "prosedure"> +<!ENTITY ProductionSet "ProduksieStel"> +<!ENTITY Published "Uitgegee"> +<!ENTITY published "uitgegee"> +<!ENTITY Question "Vraag:"> +<!ENTITY question "vraag:"> +<!ENTITY RefEntry "Verwysingslemma"> +<!ENTITY refentry "verwysingslemma"> +<!ENTITY Reference "Verwysing"> +<!ENTITY reference "verwysing"> +<!ENTITY RefName "Verwysingsnaam"> +<!ENTITY refname "verwysingsnaam"> +<!ENTITY RefSection "Verwysingsparagraaf"> +<!ENTITY refsection "verwysingsparagraaf"> +<!ENTITY RefSynopsisDiv "Verwysingsamevatting"> +<!ENTITY refsynopsisdiv "verwysingsamevatting"> +<!ENTITY RevHistory "Hersiening geskiedenis"> +<!ENTITY revhistory "hersiening geskiedenis"> +<!ENTITY Revision "Hersiening"> +<!ENTITY revision "hersiening"> +<!ENTITY sect1 "Paragraaf"> +<!ENTITY sect2 "Paragraaf"> +<!ENTITY sect3 "Paragraaf"> +<!ENTITY sect4 "Paragraaf"> +<!ENTITY sect5 "Paragraaf"> +<!ENTITY Section "Paragraaf"> +<!ENTITY section "paragraaf"> +<!ENTITY see "sien"> +<!ENTITY See "Sien"> +<!ENTITY Seealso "Sien ook"> +<!ENTITY seealso "sien ook"> +<!ENTITY SeeAlso "Sien Ook"> +<!ENTITY set "versameling"> +<!ENTITY Set "Versameling"> +<!ENTITY SetIndex "VersamelingIndeks"> +<!ENTITY setindex "versamelingindeks"> +<!ENTITY Sidebar "Kantbalk"> +<!ENTITY sidebar "kantbalk"> +<!ENTITY step "stap"> +<!ENTITY Step "Stap"> +<!ENTITY table "tabel"> +<!ENTITY Table "Tabel"> +<!ENTITY TIP "LEIDRAAD"> +<!ENTITY Tip "Leidraad"> +<!ENTITY tip "leidraad"> +<!ENTITY WARNING "WAARSKUWING"> +<!ENTITY Warning "Waarskuwing"> +<!ENTITY warning "waarskuwing"> +<!ENTITY and "en"> +<!ENTITY by "deur"> +<!ENTITY Edited "Geredigeer"> +<!ENTITY edited "geredigeer"> +<!ENTITY Editedby "Geredigeer deur"> +<!ENTITY editedby "geredigeer deur"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "element bestaan nie"> +<!ENTITY notes "Notas"> +<!ENTITY Notes "notas"> +<!ENTITY Pgs "bl."> +<!ENTITY pgs "bl."> +<!ENTITY Revisedby "Hersien deur"> +<!ENTITY revisedby "hersien deur"> +<!ENTITY TableNotes "TabelOpmerking"> +<!ENTITY tablenotes "tabelopmerking"> +<!ENTITY TableofContents "Inhoudsopgawe"> +<!ENTITY tableofcontents "inhoudsopgawe"> +<!ENTITY unexpectedelementname "onverwagte element naam"> +<!ENTITY unsupported "nie geondersteun"> +<!ENTITY xrefto "verwysing na"> +<!ENTITY listofequations "lys van vergelykings"> +<!ENTITY ListofEquations "Lys van vergelykings"> +<!ENTITY ListofExamples "Lys van voorbeelde"> +<!ENTITY listofexamples "lys van voorbeelde"> +<!ENTITY ListofFigures "Lys van figure"> +<!ENTITY listoffigures "lys van figure"> +<!ENTITY listoftables "lys van tabelle"> +<!ENTITY ListofTables "Lys van tabelle"> +<!ENTITY ListofUnknown "Lys van onbekende tipes"> +<!ENTITY listofunknown "lys van onbekende tipes"> +<!ENTITY nav-home "Begin"> +<!ENTITY nav-next "Volgende"> +<!ENTITY nav-next-sibling "Verder vooruit"> +<!ENTITY nav-prev "Terug"> +<!ENTITY nav-prev-sibling "Verder terug"> +<!ENTITY nav-up "Boontoe"> +<!ENTITY Draft "Proef"> +<!ENTITY above "bo"> +<!ENTITY below "onder"> +<!ENTITY sectioncalled "die seksie genaamd"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1bg.dsl b/common/dbl1bg.dsl new file mode 100644 index 0000000..3b1417d --- /dev/null +++ b/common/dbl1bg.dsl @@ -0,0 +1,431 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % cyr1 PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"> +%cyr1; +<!ENTITY % bg.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//BG" + "dbl1bg.ent"> +%bg.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-bg"> +<style-specification-body> + +;; $Id: dbl1bg.dsl,v 1.1 2004/10/09 21:36:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The Bulgarian version of this file used the Romanian as a template. + +(define (bg-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (bg-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; %t")) + (list (normalize "article") (string-append %gentext-bg-start-quote% + "%t" + %gentext-bg-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-bg-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (bg-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (bg-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-bg-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (bg-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-bg-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (bg-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-bg-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-bg-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-bg-intra-label-sep) + (list)) + +(define (bg-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-bg-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-bg-intra-label-sep))) + (sep (assoc name (bg-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-bg-label-title-sep) + (list)) + +(define (bg-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-bg-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-bg-label-title-sep))) + (sep (assoc name (bg-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (bg-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (bg-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (bg-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (bg-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-bg$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (bg-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-bg-start-quote% (dingbat "ldquo")) + +(define %gentext-bg-end-quote% (dingbat "rdquo")) + +(define %gentext-bg-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-bg-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-bg-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-bg-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-bg-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-bg-page% "") + +(define %gentext-bg-and% "∧") + +(define %gentext-bg-listcomma% "&listcomma;") + +(define %gentext-bg-lastlistcomma% "&lastlistcomma;") + +(define %gentext-bg-bibl-pages% "&Pgs;") + +(define %gentext-bg-endnotes% "&Notes;") + +(define %gentext-bg-table-endnotes% "&TableNotes;:") + +(define %gentext-bg-index-see% "&See;") + +(define %gentext-bg-index-seealso% "&SeeAlso;") + + +(define (gentext-bg-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-bg-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-bg-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-bg-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-bg-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-bg-nav-home home) + (make sequence (literal "&nav-home;"))) + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1bg.ent b/common/dbl1bg.ent new file mode 100644 index 0000000..be544f2 --- /dev/null +++ b/common/dbl1bg.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-0410;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0438;\U-044F;"> +<!ENTITY abstract "\U-0410;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0438;\U-044F;"> +<!ENTITY Answer "\U-041E;:"> +<!ENTITY answer "\U-041E;:"> +<!ENTITY Appendix "\U-041F;\U-0440;\U-0438;\U-043B;\U-043E;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY appendix "\U-043F;\U-0440;\U-0438;\U-043B;\U-043E;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Article "\U-0421;\U-0442;\U-0430;\U-0442;\U-0438;\U-044F;"> +<!ENTITY article "\U-0421;\U-0442;\U-0430;\U-0442;\U-0438;\U-044F;"> +<!ENTITY Bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Book "\U-041A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY book "\U-041A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY CAUTION "\U-0412;\U-041D;\U-0418;\U-041C;\U-0410;\U-041D;\U-0418;\U-0415;"> +<!ENTITY Caution "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY caution "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Chapter "\U-0413;\U-043B;\U-0430;\U-0432;\U-0430;"> +<!ENTITY chapter "\U-0433;\U-043B;\U-0430;\U-0432;\U-0430;"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "\U-041F;\U-043E;\U-0441;\U-0432;\U-0435;\U-0449;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY dedication "\U-041F;\U-043E;\U-0441;\U-0432;\U-0435;\U-0449;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Edition "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY edition "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY Example "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY example "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY Figure "\U-0424;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY figure "\U-0424;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Glossary "\U-0422;\U-0435;\U-0440;\U-043C;\U-0438;\U-043D;\U-043E;\U-043B;\U-043E;\U-0433;\U-0438;\U-0447;\U-0435;\U-043D; \U-0440;\U-0435;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY glossary "\U-0422;\U-0435;\U-0440;\U-043C;\U-0438;\U-043D;\U-043E;\U-043B;\U-043E;\U-0433;\U-0438;\U-0447;\U-0435;\U-043D; \U-0440;\U-0435;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY GlossSee "\U-0432;\U-0436;."> +<!ENTITY glosssee "\U-0432;\U-0436;."> +<!ENTITY GlossSeeAlso "\U-0432;\U-0436;. \U-0441;\U-044A;\U-0449;\U-043E;"> +<!ENTITY glossseealso "\U-0432;\U-0436;. \U-0441;\U-044A;\U-0449;\U-043E;"> +<!ENTITY IMPORTANT "\U-0412;\U-0410;\U-0416;\U-041D;\U-041E;"> +<!ENTITY important "\U-0412;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY Important "\U-0412;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY Index "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441;"> +<!ENTITY index "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-0410;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-043A;\U-0438; \U-043F;\U-0440;\U-0430;\U-0432;\U-0430;"> +<!ENTITY legalnotice "\U-0410;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-043A;\U-0438; \U-043F;\U-0440;\U-0430;\U-0432;\U-0430;"> +<!ENTITY MsgAud "Audience"> +<!ENTITY msgaud "Audience"> +<!ENTITY MsgLevel "\U-041D;\U-0438;\U-0432;\U-043E;"> +<!ENTITY msglevel "\U-041D;\U-0438;\U-0432;\U-043E;"> +<!ENTITY MsgOrig "\U-0418;\U-0437;\U-0442;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY msgorig "\U-0418;\U-0437;\U-0442;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY NOTE "\U-0417;\U-0410;\U-0411;\U-0415;\U-041B;\U-0415;\U-0416;\U-041A;\U-0410;"> +<!ENTITY Note "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0430;"> +<!ENTITY note "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0430;"> +<!ENTITY Part "\U-0427;\U-0430;\U-0441;\U-0442;"> +<!ENTITY part "\U-0427;\U-0430;\U-0441;\U-0442;"> +<!ENTITY Preface "\U-041F;\U-0440;\U-0435;\U-0434;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;"> +<!ENTITY preface "\U-041F;\U-0440;\U-0435;\U-0434;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;"> +<!ENTITY Procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "\U-0414;\U-0430;\U-0442;\U-0430; \U-043D;\U-0430; \U-0438;\U-0437;\U-0434;\U-0430;\U-0432;\U-0430;\U-043D;\U-0435;"> +<!ENTITY pubdate "\U-0414;\U-0430;\U-0442;\U-0430; \U-043D;\U-0430; \U-0438;\U-0437;\U-0434;\U-0430;\U-0432;\U-0430;\U-043D;\U-0435;"> +<!ENTITY Published "\U-0418;\U-0437;\U-0434;\U-0430;\U-0434;\U-0435;\U-043D;"> +<!ENTITY published "\U-0418;\U-0437;\U-0434;\U-0430;\U-0434;\U-0435;\U-043D;"> +<!ENTITY Qandadiv "\U-0412;\U-044A;\U-043F;\U-0440;\U-043E;\U-0441;\U-0438; \U-0438; \U-043E;\U-0442;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;\U-0438;"> +<!ENTITY qandadiv "\U-0412;\U-044A;\U-043F;\U-0440;\U-043E;\U-0441;\U-0438; \U-0438; \U-043E;\U-0442;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;\U-0438;"> +<!ENTITY Question "\U-0412;:"> +<!ENTITY question "\U-0412;:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-0421;\U-043F;\U-0440;\U-0430;\U-0432;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY reference "\U-0421;\U-043F;\U-0440;\U-0430;\U-0432;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY RefName "\U-041D;\U-0430;\U-0437;\U-0432;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY refname "\U-041D;\U-0430;\U-0437;\U-0432;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-0421;\U-0438;\U-043D;\U-0442;\U-0430;\U-043A;\U-0441;\U-0438;\U-0441;"> +<!ENTITY refsynopsisdiv "\U-0421;\U-0438;\U-043D;\U-0442;\U-0430;\U-043A;\U-0441;\U-0438;\U-0441;"> +<!ENTITY RevHistory "\U-041F;\U-0440;\U-043E;\U-043C;\U-0435;\U-043D;\U-0438;"> +<!ENTITY revhistory "\U-041F;\U-0440;\U-043E;\U-043C;\U-0435;\U-043D;\U-0438;"> +<!ENTITY revision "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Revision "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY sect1 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect2 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect3 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect4 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect5 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY section "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY Section "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY see "\U-0432;\U-0436;."> +<!ENTITY See "\U-0412;\U-0436;."> +<!ENTITY seealso "\U-0432;\U-0436;. \U-0441;\U-044A;\U-0449;\U-043E;"> +<!ENTITY Seealso "\U-0412;\U-0436;. \U-0441;\U-044A;\U-0449;\U-043E;"> +<!ENTITY SeeAlso "\U-0412;\U-0436;. \U-0441;\U-044A;\U-0449;\U-043E;"> +<!ENTITY set "\U-0423;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;"> +<!ENTITY Set "\U-0423;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;"> +<!ENTITY setindex "\U-0423;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;"> +<!ENTITY SetIndex "\U-0423;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;"> +<!ENTITY Sidebar "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;\U-0438;\U-0442;\U-0435;\U-043B;"> +<!ENTITY sidebar "\U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;\U-0438;\U-0442;\U-0435;\U-043B;"> +<!ENTITY step "\U-0421;\U-0442;\U-044A;\U-043F;\U-043A;\U-0430;"> +<!ENTITY Step "\U-0421;\U-0442;\U-044A;\U-043F;\U-043A;\U-0430;"> +<!ENTITY Table "\U-0422;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0430;"> +<!ENTITY table "\U-0422;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0430;"> +<!ENTITY tip "\U-041F;\U-043E;\U-0437;\U-0434;\U-0441;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY TIP "\U-041F;\U-041E;\U-0414;\U-0421;\U-041A;\U-0410;\U-0417;\U-041A;\U-0410;"> +<!ENTITY Tip "\U-041F;\U-043E;\U-0437;\U-0434;\U-0441;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY Warning "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY warning "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY WARNING "\U-0412;\U-041D;\U-0418;\U-041C;\U-0410;\U-041D;\U-0418;\U-0415;"> +<!ENTITY and ""> +<!ENTITY by ""> +<!ENTITY called "called"> +<!ENTITY Edited "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0442;\U-0438;\U-0440;\U-0430;\U-043D;\U-043E; \U-043E;\U-0442;"> +<!ENTITY edited "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0442;\U-0438;\U-0440;\U-0430;\U-043D;\U-043E; \U-043E;\U-0442;"> +<!ENTITY Editedby "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0442;\U-0438;\U-0440;\U-0430;\U-043D;\U-043E; \U-043E;\U-0442;"> +<!ENTITY editedby "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0442;\U-0438;\U-0440;\U-0430;\U-043D;\U-043E; \U-043E;\U-0442;"> +<!ENTITY in "\U-0432;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "non-existant element"> +<!ENTITY notes "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0438;"> +<!ENTITY Notes "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0438;"> +<!ENTITY Pgs "\U-0441;\U-0442;\U-0440;."> +<!ENTITY pgs "\U-0441;\U-0442;\U-0440;."> +<!ENTITY Revisedby "\U-041E;\U-0434;\U-043E;\U-0431;\U-0440;\U-0435;\U-043D;\U-043E; \U-043E;\U-0442;: "> +<!ENTITY revisedby "\U-041E;\U-0434;\U-043E;\U-0431;\U-0440;\U-0435;\U-043D;\U-043E; \U-043E;\U-0442;: "> +<!ENTITY TableNotes "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0438;"> +<!ENTITY tablenotes "\U-0417;\U-0430;\U-0431;\U-0435;\U-043B;\U-0435;\U-0436;\U-043A;\U-0438;"> +<!ENTITY TableofContents "\U-0421;\U-044A;\U-0434;\U-044A;\U-0440;\U-0436;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY tableofcontents "\U-0421;\U-044A;\U-0434;\U-044A;\U-0440;\U-0436;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "unexpected element name"> +<!ENTITY unsupported "unsupported"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofEquations "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofExamples "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY listofexamples "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofFigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0444;\U-0438;\U-0433;\U-0443;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY listoffigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0444;\U-0438;\U-0433;\U-0443;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofProcedures "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-043F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY listofprocedures "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-043F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0438;\U-0442;\U-0435;"> +<!ENTITY listoftables "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofTables "\U-0421;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A; \U-043D;\U-0430; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0438;\U-0442;\U-0435;"> +<!ENTITY ListofUnknown "\U-041D;\U-0435;\U-043E;\U-043F;\U-0440;\U-0435;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D; \U-0441;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A;"> +<!ENTITY listofunknown "\U-041D;\U-0435;\U-043E;\U-043F;\U-0440;\U-0435;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D; \U-0441;\U-043F;\U-0438;\U-0441;\U-044A;\U-043A;"> +<!ENTITY nav-home "\U-041D;\U-0430;\U-0447;\U-0430;\U-043B;\U-043E;"> +<!ENTITY nav-next "\U-0421;\U-043B;\U-0435;\U-0434;\U-0432;\U-0430;\U-0449;\U-0430; \U-0441;\U-0442;\U-0440;\U-0430;\U-043D;\U-0438;\U-0446;\U-0430;"> +<!ENTITY nav-next-sibling "\U-0421;\U-043B;\U-0435;\U-0434;\U-0432;\U-0430;\U-0449; \U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY nav-prev "\U-041F;\U-0440;\U-0435;\U-0434;\U-0438;\U-0448;\U-043D;\U-0430; \U-0441;\U-0442;\U-0440;\U-0430;\U-043D;\U-0438;\U-0446;\U-0430;"> +<!ENTITY nav-prev-sibling "\U-041F;\U-0440;\U-0435;\U-0434;\U-0438;\U-0448;\U-0435;\U-043D; \U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY nav-up "\U-041D;\U-0430;\U-0447;\U-0430;\U-043B;\U-043E; \U-043D;\U-0430; \U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;\U-0430;"> +<!ENTITY nav-toc "\U-0421;\U-044A;\U-0434;\U-044A;\U-0440;\U-0436;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Draft "\U-0427;\U-0435;\U-0440;\U-043D;\U-043E;\U-0432;\U-0430;"> +<!ENTITY above "\U-043F;\U-043E;-\U-0433;\U-043E;\U-0440;\U-0435;"> +<!ENTITY below "\U-043F;\U-043E;-\U-0434;\U-043E;\U-043B;\U-0443;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY lowercase.alpha "\U-0430;\U-0431;\U-0432;\U-0433;\U-0434;\U-0435;\U-0436;\U-0437;\U-0438;\U-0439;\U-043A;\U-043B;\U-043C;\U-043D;\U-043E;\U-043F;\U-0440;\U-0441;\U-0442;\U-0443;\U-0444;\U-0445;\U-0446;\U-0447;\U-0448;\U-0449;\U-044A;\U-044B;\U-044C;\U-044D;\U-044E;\U-044F;"> +<!ENTITY uppercase.alpha "\U-0410;\U-0411;\U-0412;\U-0413;\U-0414;\U-0415;\U-0416;\U-0417;\U-0418;\U-0419;\U-041A;\U-041B;\U-041C;\U-041D;\U-041E;\U-041F;\U-0420;\U-0421;\U-0422;\U-0423;\U-0424;\U-0425;\U-0426;\U-0427;\U-0428;\U-0429;\U-042A;\U-042B;\U-042C;\U-042D;\U-042E;\U-042F;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1bs.dsl b/common/dbl1bs.dsl new file mode 100644 index 0000000..fe63f66 --- /dev/null +++ b/common/dbl1bs.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % bs.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//BS" + "dbl1bs.ent"> +%bs.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-bs"> +<style-specification-body> + +;; $Id: dbl1bs.dsl,v 1.2 2004/10/09 21:16:26 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (bs-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (bs-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; sa nazivom %t")) + (list (normalize "article") (string-append %gentext-bs-start-quote% + "%t" + %gentext-bs-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; sa nazivom %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; sa nazivom %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-bs-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (bs-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (bs-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-bs-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (bs-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&see;") + (list (normalize "seealsoie") "&seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-bs-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (bs-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-bs-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-bs-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-bs-intra-label-sep) + (list)) + +(define (bs-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-bs-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-bs-intra-label-sep))) + (sep (assoc name (bs-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-bs-label-title-sep) + (list)) + +(define (bs-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-bs-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-bs-label-title-sep))) + (sep (assoc name (bs-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (bs-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (bs-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (bs-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (bs-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-bs$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (bs-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-bs-start-quote% (dingbat "ldquo")) + +(define %gentext-bs-end-quote% (dingbat "rdquo")) + +(define %gentext-bs-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-bs-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-bs-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-bs-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-bs-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-bs-page% "") + +(define %gentext-bs-and% "∧") + +(define %gentext-bs-listcomma% "&listcomma;") + +(define %gentext-bs-lastlistcomma% "&lastlistcomma;") + +(define %gentext-bs-bibl-pages% "&Pgs;") + +(define %gentext-bs-endnotes% "&Notes;") + +(define %gentext-bs-table-endnotes% "&TableNotes;:") + +(define %gentext-bs-index-see% "&see;") + +(define %gentext-bs-index-seealso% "&seealso;") + + +(define (gentext-bs-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-bs-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-bs-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-bs-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-bs-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-bs-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1bs.ent b/common/dbl1bs.ent new file mode 100644 index 0000000..c485ff6 --- /dev/null +++ b/common/dbl1bs.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Sa\U-017E;etak"> +<!ENTITY abstract "Sa\U-017E;etak"> +<!ENTITY Answer "O:"> +<!ENTITY answer "O:"> +<!ENTITY Appendix "Dodatak"> +<!ENTITY appendix "Dodatak"> +<!ENTITY Article "\U-010C;lanak"> +<!ENTITY article "\U-010C;lanak"> +<!ENTITY Bibliography "Literatura"> +<!ENTITY bibliography "Literatura"> +<!ENTITY Book "Knjiga"> +<!ENTITY book "Knjiga"> +<!ENTITY CAUTION "PA\U-017D;NJA"> +<!ENTITY Caution "Pa\U-017E;nja"> +<!ENTITY caution "Pa\U-017E;nja"> +<!ENTITY Chapter "Poglavlje"> +<!ENTITY chapter "Poglavlje"> +<!ENTITY Colophon "Kolofon"> +<!ENTITY colophon "Kolofon"> +<!ENTITY Copyright "Autorska prava"> +<!ENTITY copyright "Autorska prava"> +<!ENTITY Dedication "Posveta"> +<!ENTITY dedication "Posveta"> +<!ENTITY Edition "Izdanje"> +<!ENTITY edition "Izdanje"> +<!ENTITY Equation "Jedna\U-010D;ina"> +<!ENTITY equation "Jedna\U-010D;ina"> +<!ENTITY Example "Primjer"> +<!ENTITY example "Primjer"> +<!ENTITY Figure "Slika"> +<!ENTITY figure "Slika"> +<!ENTITY Glossary "Glosar"> +<!ENTITY glossary "Glosar"> +<!ENTITY GlossSee "Vidi"> +<!ENTITY glosssee "Vidi"> +<!ENTITY GlossSeeAlso "Vidi tako\U-0111;e"> +<!ENTITY glossseealso "Vidi tako\U-0111;e"> +<!ENTITY IMPORTANT "VA\U-017D;NO"> +<!ENTITY important "Va\U-017E;no"> +<!ENTITY Important "Va\U-017E;no"> +<!ENTITY Index "Indeks"> +<!ENTITY index "Indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Pravne odredbe"> +<!ENTITY legalnotice "Pravne odredbe"> +<!ENTITY MsgAud "Primatelji"> +<!ENTITY msgaud "Primatelji"> +<!ENTITY MsgLevel "Nivo"> +<!ENTITY msglevel "Nivo"> +<!ENTITY MsgOrig "Izvor"> +<!ENTITY msgorig "Izvor"> +<!ENTITY NOTE "BILJE\U-0160;KA"> +<!ENTITY Note "Bilje\U-0161;ka"> +<!ENTITY note "Bilje\U-0161;ka"> +<!ENTITY Part "Dio"> +<!ENTITY part "Dio"> +<!ENTITY Preface "Predgovor"> +<!ENTITY preface "Predgovor"> +<!ENTITY Procedure "Postupak"> +<!ENTITY procedure "Postupak"> +<!ENTITY ProductionSet "Produkcija"> +<!ENTITY PubDate "Objavljeno"> +<!ENTITY pubdate "Objavljeno"> +<!ENTITY Published "Objavljeno"> +<!ENTITY published "Objavljeno"> +<!ENTITY Qandadiv "P & O"> +<!ENTITY qandadiv "P & O"> +<!ENTITY Question "P:"> +<!ENTITY question "P:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referenca"> +<!ENTITY reference "Referenca"> +<!ENTITY RefName "Ime"> +<!ENTITY refname "Ime"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Pregled"> +<!ENTITY refsynopsisdiv "Pregled"> +<!ENTITY RevHistory "Historija verzija"> +<!ENTITY revhistory "Historija verzija"> +<!ENTITY revision "Verzija"> +<!ENTITY Revision "Verzija"> +<!ENTITY sect1 "Odjeljak"> +<!ENTITY sect2 "Odjeljak"> +<!ENTITY sect3 "Odjeljak"> +<!ENTITY sect4 "Odjeljak"> +<!ENTITY sect5 "Odjeljak"> +<!ENTITY section "Odjeljak"> +<!ENTITY Section "Odjeljak"> +<!ENTITY see "vidi"> +<!ENTITY See "Vidi"> +<!ENTITY seealso "vidi tako\U-0111;e"> +<!ENTITY Seealso "Vidi tako\U-0111;e"> +<!ENTITY SeeAlso "Vidi tako\U-0111;e"> +<!ENTITY set "Set"> +<!ENTITY Set "Set"> +<!ENTITY setindex "Indeks"> +<!ENTITY SetIndex "Indeks"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY step "korak"> +<!ENTITY Step "Korak"> +<!ENTITY Table "Tabela"> +<!ENTITY table "Tabela"> +<!ENTITY tip "Savjet"> +<!ENTITY TIP "SAVJET"> +<!ENTITY Tip "Savjet"> +<!ENTITY Warning "Upozorenje"> +<!ENTITY warning "Upozorenje"> +<!ENTITY WARNING "UPOZORENJE"> +<!ENTITY and "i"> +<!ENTITY by "od"> +<!ENTITY called "called"> +<!ENTITY Edited "Izdao"> +<!ENTITY edited "Izdao"> +<!ENTITY Editedby "Izdao"> +<!ENTITY editedby "Izdao"> +<!ENTITY in "u"> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "nepostoje\U-0107;i element"> +<!ENTITY notes "Bilje\U-0161;ke"> +<!ENTITY Notes "Bilje\U-0161;ke"> +<!ENTITY Pgs "Str."> +<!ENTITY pgs "Str."> +<!ENTITY Revisedby "Izmijenjeno od: "> +<!ENTITY revisedby "Izmijenjeno od: "> +<!ENTITY TableNotes "Napomene"> +<!ENTITY tablenotes "Napomene"> +<!ENTITY TableofContents "Sadr\U-017E;aj"> +<!ENTITY tableofcontents "Sadr\U-017E;aj"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Neo\U-010D;kivano ime elementa"> +<!ENTITY unsupported "nepodr\U-017E;ano"> +<!ENTITY xrefto "xref prema"> +<!ENTITY listofequations "Spisak jedna\U-010D;ina"> +<!ENTITY ListofEquations "Spisak jedna\U-010D;ina"> +<!ENTITY ListofExamples "Spisak primjera"> +<!ENTITY listofexamples "Spisak primjera"> +<!ENTITY ListofFigures "Spisak slika"> +<!ENTITY listoffigures "Spisak slika"> +<!ENTITY ListofProcedures "Spisak postupaka"> +<!ENTITY listofprocedures "Spisak postupaka"> +<!ENTITY listoftables "Spisak tabela"> +<!ENTITY ListofTables "Spisak tabela"> +<!ENTITY ListofUnknown "Spisak ???"> +<!ENTITY listofunknown "Spisak ???"> +<!ENTITY nav-home "Po\U-010D;etak"> +<!ENTITY nav-next "Naprijed"> +<!ENTITY nav-next-sibling "Brzo naprijed"> +<!ENTITY nav-prev "Nazad"> +<!ENTITY nav-prev-sibling "Brzo nazad"> +<!ENTITY nav-up "Gore"> +<!ENTITY nav-toc "Sadr\U-017E;aj"> +<!ENTITY Draft "Nacrt"> +<!ENTITY above "iznad"> +<!ENTITY below "ispod"> +<!ENTITY sectioncalled "odjeljak sa nazivom"> +<!ENTITY lowercase.alpha "abc\U-010D;\U-0107;d\U-0111;efghijklmnoprs\U-0161;tuvz\U-017E;"> +<!ENTITY uppercase.alpha "ABC\U-010C;\U-0106;D\U-0110;EFGHIJKLMNOPRS\U-0160;TUVZ\U-017D;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "3"> diff --git a/common/dbl1ca.dsl b/common/dbl1ca.dsl new file mode 100644 index 0000000..93980dd --- /dev/null +++ b/common/dbl1ca.dsl @@ -0,0 +1,443 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % ca.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//CA" + "dbl1ca.ent"> +%ca.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ca"> +<style-specification-body> + +;; $Id: dbl1ca.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Perceval - Marc Huguet Puig, mhp@nil.fut.es +;; marc*, marc.gonzalez-carnicer@european-go.org + +(define (ca-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ca-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "l'&appendix; de nom %t")) + (list (normalize "article") (string-append %gentext-ca-start-quote% + "%t" + %gentext-ca-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "el &chapter; de nom %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "la §ion; de nom %t")) + (list (normalize "sidebar") "la &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-ca-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ca-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ca-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " al ")) + ((equal? (gi before) (normalize "chapter")) + (literal " al; ")) + ((equal? (gi before) (normalize "sect1")) + (literal " a la; ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-ca-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ca-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ca-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ca-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ca-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ca-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ca-intra-label-sep) + (list)) + +(define (ca-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ca-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ca-intra-label-sep))) + (sep (assoc name (ca-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ca-label-title-sep) + (list)) + +(define (ca-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ca-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ca-label-title-sep))) + (sep (assoc name (ca-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ca-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ca-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ca-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ca-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ca$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ca-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ca-start-quote% (dingbat "ldquo")) + +(define %gentext-ca-end-quote% (dingbat "rdquo")) + +(define %gentext-ca-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ca-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ca-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ca-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ca-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ca-page% "") + +(define %gentext-ca-and% "∧") + +(define %gentext-ca-listcomma% "&listcomma;") + +(define %gentext-ca-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ca-bibl-pages% "&Pgs;") + +(define %gentext-ca-endnotes% "&Notes;") + +(define %gentext-ca-table-endnotes% "&TableNotes;:") + +(define %gentext-ca-index-see% "&See;") + +(define %gentext-ca-index-seealso% "&SeeAlso;") + + +(define (gentext-ca-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ca-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ca-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ca-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ca-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ca-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ca.ent b/common/dbl1ca.ent new file mode 100644 index 0000000..cbe3e89 --- /dev/null +++ b/common/dbl1ca.ent @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Resum"> +<!ENTITY abstract "Resum"> +<!ENTITY Answer "Resposta"> +<!ENTITY answer "Resposta"> +<!ENTITY Appendix "Ap\U-00E8;ndix"> +<!ENTITY appendix "Ap\U-00E8;ndix"> +<!ENTITY Article "Article"> +<!ENTITY article "Article"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Llibre"> +<!ENTITY book "Llibre"> +<!ENTITY Caution "Atenci\U-00F3;"> +<!ENTITY caution "Atenci\U-00F3;"> +<!ENTITY CAUTION "ATENCI\U-00D3;"> +<!ENTITY Chapter "Cap\U-00ED;tol"> +<!ENTITY chapter "Cap\U-00ED;tol"> +<!ENTITY Colophon "Colof\U-00F3;"> +<!ENTITY colophon "Colof\U-00F3;"> +<!ENTITY Copyright "Dret de reproducci\U-00F3;"> +<!ENTITY copyright "Dret de reproducci\U-00F3;"> +<!ENTITY Dedication "Dedicat\U-00F2;ria"> +<!ENTITY dedication "Dedicat\U-00F2;ria"> +<!ENTITY Edition "Edici\U-00F3;"> +<!ENTITY edition "Edici\U-00F3;"> +<!ENTITY Equation "Equaci\U-00F3;"> +<!ENTITY equation "Equaci\U-00F3;"> +<!ENTITY Example "Exemple"> +<!ENTITY example "Exemple"> +<!ENTITY Figure "Figura"> +<!ENTITY figure "Figura"> +<!ENTITY Glossary "Glossari"> +<!ENTITY glossary "Glossari"> +<!ENTITY GlossSee "Veure"> +<!ENTITY glosssee "Veure"> +<!ENTITY GlossSeeAlso "Veure tamb\U-00E9;"> +<!ENTITY glossseealso "Veure tamb\U-00E9;"> +<!ENTITY IMPORTANT "IMPORTANT"> +<!ENTITY Important "Important"> +<!ENTITY important "Important"> +<!ENTITY Index "\U-00CD;ndex alfab\U-00E8;tic"> +<!ENTITY index "\U-00CD;ndex alfab\U-00E8;tic"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Av\U-00ED;s legal"> +<!ENTITY legalnotice "Av\U-00ED;s legal"> +<!ENTITY MsgAud "Audi\U-00E8;ncia"> +<!ENTITY msgaud "Audi\U-00E8;ncia"> +<!ENTITY MsgLevel "Nivell"> +<!ENTITY msglevel "Nivell"> +<!ENTITY MsgOrig "Origen"> +<!ENTITY msgorig "Origen"> +<!ENTITY NOTE "NOTA"> +<!ENTITY Note "Nota"> +<!ENTITY note "Nota"> +<!ENTITY Part "Part"> +<!ENTITY part "Part"> +<!ENTITY Preface "Prefaci"> +<!ENTITY preface "Prefaci"> +<!ENTITY Procedure "Procediment"> +<!ENTITY procedure "Procediment"> +<!ENTITY ProductionSet "Producci\U-00F3;"> +<!ENTITY PubDate "Data de publicaci\U-00F3;"> +<!ENTITY pubdate "Data de publicaci\U-00F3;"> +<!ENTITY Published "Publicat"> +<!ENTITY published "Publicat"> +<!ENTITY Question "Pregunta"> +<!ENTITY question "Pregunta"> +<!ENTITY RefEntry "Entrada de refer\U-00E8;ncia"> +<!ENTITY refentry "Entrada de refer\U-00E8;ncia"> +<!ENTITY Reference "Refer\U-00E8;ncia"> +<!ENTITY reference "Refer\U-00E8;ncia"> +<!ENTITY RefName "Nom"> +<!ENTITY refname "Nom"> +<!ENTITY RefSection "Secci\U-00F3; de refer\U-00E8;ncia"> +<!ENTITY refsection "Secci\U-00F3; de refer\U-00E8;ncia"> +<!ENTITY RefSynopsisDiv "Sinopsi"> +<!ENTITY refsynopsisdiv "Sinopsi"> +<!ENTITY RevHistory "Historial de revisions"> +<!ENTITY revhistory "Historial de revisions"> +<!ENTITY Revision "Revisi\U-00F3;"> +<!ENTITY revision "Revisi\U-00F3;"> +<!ENTITY sect1 "Secci\U-00F3;"> +<!ENTITY sect2 "Secci\U-00F3;"> +<!ENTITY sect3 "Secci\U-00F3;"> +<!ENTITY sect4 "Secci\U-00F3;"> +<!ENTITY sect5 "Secci\U-00F3;"> +<!ENTITY Section "Secci\U-00F3;"> +<!ENTITY section "Secci\U-00F3;"> +<!ENTITY See "Veure"> +<!ENTITY see "Veure"> +<!ENTITY SeeAlso "Veure Tamb\U-00E9;"> +<!ENTITY Seealso "Veure tamb\U-00E9;"> +<!ENTITY seealso "Veure tamb\U-00E9;"> +<!ENTITY Set "Conjunt"> +<!ENTITY set "Conjunt"> +<!ENTITY SetIndex "\U-00CD;ndex del conjunt"> +<!ENTITY setindex "\U-00CD;ndex del conjunt"> +<!ENTITY Sidebar "Barra lateral"> +<!ENTITY sidebar "Barra lateral"> +<!ENTITY step "Pas"> +<!ENTITY Step "Pas"> +<!ENTITY table "Taula"> +<!ENTITY Table "Taula"> +<!ENTITY TIP "SUGGERIMENT"> +<!ENTITY Tip "Suggeriment"> +<!ENTITY tip "Suggeriment"> +<!ENTITY WARNING "AV\U-00CD;S"> +<!ENTITY Warning "Av\U-00ED;s"> +<!ENTITY warning "Av\U-00ED;s"> +<!ENTITY and "i"> +<!ENTITY by "per"> +<!ENTITY Edited "Editat"> +<!ENTITY edited "Editat"> +<!ENTITY Editedby "Editat per"> +<!ENTITY editedby "Editat per"> +<!ENTITY in "a"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "element inexistent"> +<!ENTITY notes "notes"> +<!ENTITY Notes "Notes"> +<!ENTITY Pgs "P\U-00E0;gs."> +<!ENTITY pgs "P\U-00E0;gs."> +<!ENTITY Revisedby "Revisat per: "> +<!ENTITY revisedby "Revisat per: "> +<!ENTITY TableNotes "Notes de taula"> +<!ENTITY tablenotes "Notes de taula"> +<!ENTITY TableofContents "Sumari"> +<!ENTITY tableofcontents "Sumari"> +<!ENTITY unexpectedelementname "nom d'element inesperat"> +<!ENTITY unsupported "no reconeguda"> +<!ENTITY xrefto "refer\U-00E8;ncia a"> +<!ENTITY listofequations "\U-00CD;ndex d'equacions"> +<!ENTITY ListofEquations "\U-00CD;ndex d'equacions"> +<!ENTITY ListofExamples "\U-00CD;ndex d'exemples"> +<!ENTITY listofexamples "\U-00CD;ndex d'exemples"> +<!ENTITY ListofFigures "\U-00CD;ndex de figures"> +<!ENTITY listoffigures "\U-00CD;ndex de figures"> +<!ENTITY listoftables "\U-00CD;ndex de taules"> +<!ENTITY ListofTables "\U-00CD;ndex de taules"> +<!ENTITY ListofUnknown "\U-00CD;ndex de desconegut ?"> +<!ENTITY listofunknown "\U-00CD;ndex de desconegut ?"> +<!ENTITY nav-home "Inici"> +<!ENTITY nav-next "Seg\U-00FC;ent"> +<!ENTITY nav-next-sibling "Avan\U-00E7;ar"> +<!ENTITY nav-prev "Anterior"> +<!ENTITY nav-prev-sibling "Retrocedir"> +<!ENTITY nav-up "Pujar"> +<!ENTITY Draft "Esborrany"> +<!ENTITY above "dalt"> +<!ENTITY below "baix"> +<!ENTITY sectioncalled "secci\U-00F3; anomenada"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00E0;\U-00E8;\U-00E9;\U-00ED;\U-00F2;\U-00F3;\U-00FA;\U-00F1;\U-00E7;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00C0;\U-00C8;\U-00C9;\U-00CD;\U-00D2;\U-00D3;\U-00DA;\U-00D1;\U-00C7;"> diff --git a/common/dbl1cs.dsl b/common/dbl1cs.dsl new file mode 100644 index 0000000..5d2a7c6 --- /dev/null +++ b/common/dbl1cs.dsl @@ -0,0 +1,443 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % cs.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//CS" + "dbl1cs.ent"> +%cs.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-cs"> +<style-specification-body> + +;; $Id: dbl1cs.dsl,v 1.3 2001/09/06 14:49:24 kosek Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Ralf Schleitzer, ralf.schleitzer@ixos.de + +(define (cs-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (cs-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "%n" + "%n \U-2013; \U-201E;%t\U-201C;")) + (list (normalize "article") (string-append %gentext-cs-start-quote% + "%t" + %gentext-cs-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "%n" + "%n \U-2013; \U-201E;%t\U-201C;")) + (list (normalize "equation") "%n") + (list (normalize "example") "%n") + (list (normalize "figure") "%n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "%n \U-2013; \U-201E;%t\U-201C;") + (list (normalize "preface") "%t") + (list (normalize "procedure") "%n \U-2013; \U-201E;%t\U-201C;") + (list (normalize "reference") "%t") + (list (normalize "section") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sect1") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sect2") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sect3") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sect4") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sect5") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "simplesect") (if %section-autolabel% + "%n" + "\U-201E;%t\U-201C;")) + (list (normalize "sidebar") "%t") + (list (normalize "step") "%n") + (list (normalize "table") "%n"))) + +(define (gentext-cs-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (cs-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (cs-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-cs-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (cs-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-cs-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (cs-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-cs-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-cs-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-cs-intra-label-sep) + (list)) + +(define (cs-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-cs-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-cs-intra-label-sep))) + (sep (assoc name (cs-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-cs-label-title-sep) + (list)) + +(define (cs-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-cs-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-cs-label-title-sep))) + (sep (assoc name (cs-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (cs-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (cs-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (cs-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (cs-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-cs$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (cs-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + + +(define %gentext-cs-start-quote% "\U-201E;") + +(define %gentext-cs-end-quote% "\U-201C;") + +(define %gentext-cs-start-nested-quote% "\U-201A;") + +(define %gentext-cs-end-nested-quote% "\U-2018;") + +(define %gentext-cs-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-cs-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-cs-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-cs-page% "") + +(define %gentext-cs-and% "∧") + +(define %gentext-cs-listcomma% "&listcomma;") + +(define %gentext-cs-lastlistcomma% "&lastlistcomma;") + +(define %gentext-cs-bibl-pages% "&Pgs;") + +(define %gentext-cs-endnotes% "&Notes;") + +(define %gentext-cs-table-endnotes% "&TableNotes;:") + +(define %gentext-cs-index-see% "&See;") + +(define %gentext-cs-index-seealso% "&SeeAlso;") + + +(define (gentext-cs-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-cs-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-cs-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-cs-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-cs-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-cs-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1cs.ent b/common/dbl1cs.ent new file mode 100644 index 0000000..39d3493 --- /dev/null +++ b/common/dbl1cs.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstrakt"> +<!ENTITY abstract "Abstrakt"> +<!ENTITY Answer "Odpov\U-011B;\U-010F;:"> +<!ENTITY answer "Odpov\U-011B;\U-010F;:"> +<!ENTITY Appendix "P\U-0159;\U-00ED;loha"> +<!ENTITY appendix "P\U-0159;\U-00ED;loha"> +<!ENTITY Article "\U-010C;l\U-00E1;nek"> +<!ENTITY article "\U-010C;l\U-00E1;nek"> +<!ENTITY Bibliography "Bibliografie"> +<!ENTITY bibliography "Bibliografie"> +<!ENTITY Book "Kniha"> +<!ENTITY book "Kniha"> +<!ENTITY CAUTION "V\U-00FD;straha"> +<!ENTITY Caution "V\U-00FD;straha"> +<!ENTITY caution "V\U-00FD;straha"> +<!ENTITY Chapter "Kapitola"> +<!ENTITY chapter "Kapitola"> +<!ENTITY Colophon "Tir\U-00E1;\U-017E;"> +<!ENTITY colophon "Tir\U-00E1;\U-017E;"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "V\U-011B;nov\U-00E1;n\U-00ED;"> +<!ENTITY dedication "V\U-011B;nov\U-00E1;n\U-00ED;"> +<!ENTITY Edition "Vyd\U-00E1;n\U-00ED;"> +<!ENTITY edition "Vyd\U-00E1;n\U-00ED;"> +<!ENTITY Equation "Rovnice"> +<!ENTITY equation "Rovnice"> +<!ENTITY Example "P\U-0159;\U-00ED;klad"> +<!ENTITY example "P\U-0159;\U-00ED;klad"> +<!ENTITY Figure "Obr\U-00E1;zek"> +<!ENTITY figure "Obr\U-00E1;zek"> +<!ENTITY Glossary "Slovn\U-00ED;k"> +<!ENTITY glossary "Slovn\U-00ED;k"> +<!ENTITY GlossSee "Viz"> +<!ENTITY glosssee "Viz"> +<!ENTITY GlossSeeAlso "Viz t\U-00E9;\U-017E;"> +<!ENTITY glossseealso "Viz t\U-00E9;\U-017E;"> +<!ENTITY IMPORTANT "D\U-016F;le\U-017E;it\U-00E9;"> +<!ENTITY Important "D\U-016F;le\U-017E;it\U-00E9;"> +<!ENTITY important "D\U-016F;le\U-017E;it\U-00E9;"> +<!ENTITY Index "Rejst\U-0159;\U-00ED;k"> +<!ENTITY index "Rejst\U-0159;\U-00ED;k"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Pr\U-00E1;vn\U-00ED; dolo\U-017E;ka"> +<!ENTITY legalnotice "Pr\U-00E1;vn\U-00ED; dolo\U-017E;ka"> +<!ENTITY MsgAud "Publikum"> +<!ENTITY msgaud "Publikum"> +<!ENTITY MsgLevel "\U-00DA;rove\U-0148;"> +<!ENTITY msglevel "\U-00DA;rove\U-0148;"> +<!ENTITY MsgOrig "P\U-016F;vod"> +<!ENTITY msgorig "P\U-016F;vod"> +<!ENTITY NOTE "Pozn\U-00E1;mka"> +<!ENTITY Note "Pozn\U-00E1;mka"> +<!ENTITY note "Pozn\U-00E1;mka"> +<!ENTITY Part "\U-010C;\U-00E1;st"> +<!ENTITY part "\U-010C;\U-00E1;st"> +<!ENTITY Preface "P\U-0159;edmluva"> +<!ENTITY preface "P\U-0159;edmluva"> +<!ENTITY Procedure "Postup"> +<!ENTITY procedure "Postup"> +<!ENTITY ProductionSet "Produkce"> +<!ENTITY Published "Vyd\U-00E1;no"> +<!ENTITY published "Vyd\U-00E1;no"> +<!ENTITY Question "Ot\U-00E1;zka:"> +<!ENTITY question "Ot\U-00E1;zka:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Odkaz"> +<!ENTITY reference "Odkaz"> +<!ENTITY RefName "Jm\U-00E9;no"> +<!ENTITY refname "Jm\U-00E9;no"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "P\U-0159;ehled"> +<!ENTITY refsynopsisdiv "P\U-0159;ehled"> +<!ENTITY RevHistory "P\U-0159;ehled reviz\U-00ED;"> +<!ENTITY revhistory "P\U-0159;ehled reviz\U-00ED;"> +<!ENTITY Revision "Revize"> +<!ENTITY revision "Revize"> +<!ENTITY sect1 "Odd\U-00ED;l"> +<!ENTITY sect2 "Odd\U-00ED;l"> +<!ENTITY sect3 "Odd\U-00ED;l"> +<!ENTITY sect4 "Odd\U-00ED;l"> +<!ENTITY sect5 "Odd\U-00ED;l"> +<!ENTITY Section "Odd\U-00ED;l"> +<!ENTITY section "Odd\U-00ED;l"> +<!ENTITY See "Viz"> +<!ENTITY see "Viz"> +<!ENTITY SeeAlso "Viz t\U-00E9;\U-017E;"> +<!ENTITY Seealso "Viz t\U-00E9;\U-017E;"> +<!ENTITY seealso "Viz t\U-00E9;\U-017E;"> +<!ENTITY Set "Sada"> +<!ENTITY set "Sada"> +<!ENTITY SetIndex "Rejst\U-0159;\U-00ED;k sady"> +<!ENTITY setindex "Rejst\U-0159;\U-00ED;k sady"> +<!ENTITY Sidebar "Margin\U-00E1;lie"> +<!ENTITY sidebar "Margin\U-00E1;lie"> +<!ENTITY Step "Krok"> +<!ENTITY step "krok"> +<!ENTITY Table "Tabulka"> +<!ENTITY table "Tabulka"> +<!ENTITY TIP "Tip"> +<!ENTITY Tip "Tip"> +<!ENTITY tip "Tip"> +<!ENTITY WARNING "Varov\U-00E1;n\U-00ED;"> +<!ENTITY Warning "Varov\U-00E1;n\U-00ED;"> +<!ENTITY warning "Varov\U-00E1;n\U-00ED;"> +<!ENTITY and "a"> +<!ENTITY by ""> +<!ENTITY Edited "Vyd\U-00E1;no"> +<!ENTITY edited "Vyd\U-00E1;no"> +<!ENTITY Editedby "Sestavil"> +<!ENTITY editedby "Sestavil"> +<!ENTITY in "v"> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "neexistuj\U-00ED;c\U-00ED; prvek"> +<!ENTITY notes "Pozn\U-00E1;mky"> +<!ENTITY Notes "Pozn\U-00E1;mky"> +<!ENTITY Pgs "Str."> +<!ENTITY pgs "Str."> +<!ENTITY Revisedby "Revidoval: "> +<!ENTITY revisedby "Revidoval: "> +<!ENTITY TableNotes "Pozn\U-00E1;mky"> +<!ENTITY tablenotes "Pozn\U-00E1;mky"> +<!ENTITY TableofContents "Obsah"> +<!ENTITY tableofcontents "Obsah"> +<!ENTITY unexpectedelementname "Neo\U-010D;ek\U-00E1;van\U-00E9; jm\U-00E9;no prvku"> +<!ENTITY unsupported "nepodporovan\U-00FD;"> +<!ENTITY xrefto "xref k"> +<!ENTITY listofequations "Seznam rovnic"> +<!ENTITY ListofEquations "Seznam rovnic"> +<!ENTITY ListofExamples "Seznam p\U-0159;\U-00ED;klad\U-016F;"> +<!ENTITY listofexamples "Seznam p\U-0159;\U-00ED;klad\U-016F;"> +<!ENTITY ListofFigures "Seznam obr\U-00E1;zk\U-016F;"> +<!ENTITY listoffigures "Seznam obr\U-00E1;zk\U-016F;"> +<!ENTITY listoftables "Seznam tabulek"> +<!ENTITY ListofTables "Seznam tabulek"> +<!ENTITY ListofUnknown "Seznam nezn\U-00E1;m\U-00E9;ho"> +<!ENTITY listofunknown "Seznam nezn\U-00E1;m\U-00E9;ho"> +<!ENTITY nav-home "Dom\U-016F;"> +<!ENTITY nav-next "Dal\U-0161;\U-00ED;"> +<!ENTITY nav-next-sibling "Rychle dop\U-0159;edu"> +<!ENTITY nav-prev "P\U-0159;edch\U-00E1;zej\U-00ED;c\U-00ED;"> +<!ENTITY nav-prev-sibling "Rychle zp\U-011B;t"> +<!ENTITY nav-up "Nahoru"> +<!ENTITY sectioncalled "odd\U-00ED;l nazvan\U-00FD;"> +<!ENTITY Draft "N\U-00E1;vrh"> +<!ENTITY above "nad"> +<!ENTITY below "pod"> +<!ENTITY lowercase.alpha "a\U-00E1;bc\U-010D;d\U-010F;e\U-00E9;\U-011B;fghi\U-00ED;jklmno\U-00F3;pqr\U-0159;s\U-0161;t\U-0165;u\U-00FA;\U-016F;vwxy\U-00FD;z\U-017E;"> +<!ENTITY uppercase.alpha "A\U-00C1;BC\U-010C;D\U-010E;E\U-00C9;\U-011A;FGHI\U-00CD;JKLMNO\U-00D3;PQR\U-0158;S\U-0160;T\U-0164;U\U-00DA;\U-016E;VWXY\U-00DD;Z\U-017D;"> diff --git a/common/dbl1da.dsl b/common/dbl1da.dsl new file mode 100644 index 0000000..79d4823 --- /dev/null +++ b/common/dbl1da.dsl @@ -0,0 +1,432 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % da.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//DA" + "dbl1da.ent"> +%da.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-da"> +<style-specification-body> + +;; $Id: dbl1da.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Finn Bock, fbo@dde.dk + +(define (da-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (da-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; med navn %t")) + (list (normalize "article") (string-append %gentext-da-start-quote% + "%t" + %gentext-da-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "kapitlet om %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "sektionen med navn %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "sektionen med navn %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "undersektionen med navn %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "undersektionen med navn %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "undersektionen med navn %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "undersektionen med navn %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "undersektionen med navn %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-da-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (da-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (da-auto-xref-indirect-connector before) + (literal " i ")) + +;; Should the TOC come first or last? +;; +(define %generate-da-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (da-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-da-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (da-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-da-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-da-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-da-intra-label-sep) + (list)) + +(define (da-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-da-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-da-intra-label-sep))) + (sep (assoc name (da-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-da-label-title-sep) + (list)) + +(define (da-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-da-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-da-label-title-sep))) + (sep (assoc name (da-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (da-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (da-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (da-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (da-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-da$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (da-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-da-start-quote% (dingbat "ldquo")) + +(define %gentext-da-end-quote% (dingbat "rdquo")) + +(define %gentext-da-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-da-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-da-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-da-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-da-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-da-page% "") + +(define %gentext-da-and% "∧") + +(define %gentext-da-listcomma% "&listcomma;") + +(define %gentext-da-lastlistcomma% "&lastlistcomma;") + +(define %gentext-da-bibl-pages% "&Pgs;") + +(define %gentext-da-endnotes% "&Notes;") + +(define %gentext-da-table-endnotes% "&TableNotes;:") + +(define %gentext-da-index-see% "&See;") + +(define %gentext-da-index-seealso% "&SeeAlso;") + + +(define (gentext-da-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-da-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-da-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-da-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-da-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-da-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1da.ent b/common/dbl1da.ent new file mode 100644 index 0000000..0ac6132 --- /dev/null +++ b/common/dbl1da.ent @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Resum\U-00E9;"> +<!ENTITY abstract "resum\U-00E9;"> +<!ENTITY Answer "Svar"> +<!ENTITY answer "svar"> +<!ENTITY Appendix "Appendiks"> +<!ENTITY appendix "appendiks"> +<!ENTITY Article "Artikel"> +<!ENTITY article "artikel"> +<!ENTITY Bibliography "Litteraturliste"> +<!ENTITY bibliography "litteraturliste"> +<!ENTITY Book "Bog"> +<!ENTITY book "bog"> +<!ENTITY CAUTION "PAS P\U-00C5;"> +<!ENTITY Caution "Pas p\U-00E5;"> +<!ENTITY caution "pas p\U-00E5;"> +<!ENTITY Chapter "Kapitel"> +<!ENTITY chapter "kapitel"> +<!ENTITY Colophon "Kolofon"> +<!ENTITY colophon "kolofon"> +<!ENTITY Copyright "Ophavsret"> +<!ENTITY copyright "ophavsret"> +<!ENTITY Dedication "Tilegnet"> +<!ENTITY dedication "tilegnet"> +<!ENTITY Edition "Udgave"> +<!ENTITY edition "udgave"> +<!ENTITY Equation "Ligning"> +<!ENTITY equation "ligning"> +<!ENTITY Example "Eksempel"> +<!ENTITY example "eksempel"> +<!ENTITY Figure "Figur"> +<!ENTITY figure "figur"> +<!ENTITY Glossary "Ordliste"> +<!ENTITY glossary "ordliste"> +<!ENTITY GlossSee "Se"> +<!ENTITY glosssee "se"> +<!ENTITY GlossSeeAlso "Se ogs\U-00E5;"> +<!ENTITY glossseealso "se ogs\U-00E5;"> +<!ENTITY IMPORTANT "VIGTIGT"> +<!ENTITY Important "Vigtigt"> +<!ENTITY important "vigtigt"> +<!ENTITY Index "Stikordsregister"> +<!ENTITY index "stikordsregister"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Retslig note"> +<!ENTITY legalnotice "retslig note"> +<!ENTITY MsgAud "M\U-00E5;lgruppe"> +<!ENTITY msgaud "m\U-00E5;lgruppe"> +<!ENTITY MsgLevel "Niveau"> +<!ENTITY msglevel "niveau"> +<!ENTITY MsgOrig "Grundlag"> +<!ENTITY msgorig "grundlag"> +<!ENTITY NOTE "BEM\U-00C6;RK"> +<!ENTITY Note "Bem\U-00E6;rk"> +<!ENTITY note "bem\U-00E6;rk"> +<!ENTITY Part "Del"> +<!ENTITY part "del"> +<!ENTITY Preface "Forord"> +<!ENTITY preface "forord"> +<!ENTITY Procedure "Procedure"> +<!ENTITY procedure "procedure"> +<!ENTITY ProductionSet "Produktion"> +<!ENTITY Published "Udgivet"> +<!ENTITY published "udgivet"> +<!ENTITY Question "Sp\U-00F8;rgsm\U-00E5;l"> +<!ENTITY question "sp\U-00F8;rgsm\U-00E5;l"> +<!ENTITY RefEntry "Punkt"> +<!ENTITY refentry "punkt"> +<!ENTITY Reference "Henvisning"> +<!ENTITY reference "henvisning"> +<!ENTITY RefName "Navn"> +<!ENTITY refname "navn"> +<!ENTITY RefSection "Afsnit"> +<!ENTITY refsection "afsnit"> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "synopsis"> +<!ENTITY RevHistory "Revisionshistorie"> +<!ENTITY revhistory "revisionshistorie"> +<!ENTITY revision "revision"> +<!ENTITY Revision "Revision"> +<!ENTITY sect1 "Afsnit"> +<!ENTITY sect2 "Afsnit"> +<!ENTITY sect3 "Afsnit"> +<!ENTITY sect4 "Afsnit"> +<!ENTITY sect5 "Afsnit"> +<!ENTITY section "afsnit"> +<!ENTITY Section "Afsnit"> +<!ENTITY See "Se"> +<!ENTITY see "se"> +<!ENTITY SeeAlso "Se ogs\U-00E5;"> +<!ENTITY seealso "se ogs\U-00E5;"> +<!ENTITY Seealso "Se ogs\U-00E5;"> +<!ENTITY set "s\U-00E6;t"> +<!ENTITY Set "S\U-00E6;t"> +<!ENTITY setindex "s\U-00E6;t indeks"> +<!ENTITY SetIndex "S\U-00E6;t indeks"> +<!ENTITY Sidebar "Sidebj\U-00E6;lke"> +<!ENTITY sidebar "sidebj\U-00E6;lke"> +<!ENTITY step "trin"> +<!ENTITY Step "Trin"> +<!ENTITY Table "Tabel"> +<!ENTITY table "tabel"> +<!ENTITY tip "vink"> +<!ENTITY TIP "VINK"> +<!ENTITY Tip "Vink"> +<!ENTITY Warning "Advarsel"> +<!ENTITY warning "advarsel"> +<!ENTITY WARNING "ADVARSEL"> +<!ENTITY and "og"> +<!ENTITY by "af"> +<!ENTITY Edited "Redigeret"> +<!ENTITY edited "redigeret"> +<!ENTITY Editedby "Redigeret af"> +<!ENTITY editedby "redigeret af"> +<!ENTITY in "i"> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma ", "> +<!ENTITY nonexistantelement "ikke-eksisterende element"> +<!ENTITY notes "slutbem\U-00E6;rkning:"> +<!ENTITY Notes "Slutbem\U-00E6;rkning:"> +<!ENTITY Pgs "Siderne"> +<!ENTITY pgs "siderne"> +<!ENTITY Revisedby "Revideret af: "> +<!ENTITY revisedby "revideret af: "> +<!ENTITY TableNotes "Noter:"> +<!ENTITY tablenotes "noter:"> +<!ENTITY TableofContents "Indholdsfortegnelse"> +<!ENTITY tableofcontents "indholdsfortegnelse"> +<!ENTITY unexpectedelementname "uventet elementnavn"> +<!ENTITY unsupported "ikke underst\U-00F8;ttet"> +<!ENTITY xrefto "krydshenvisning til"> +<!ENTITY listofequations "ligningsliste"> +<!ENTITY ListofEquations "Ligningsliste"> +<!ENTITY ListofExamples "Eksempelliste"> +<!ENTITY listofexamples "eksempelliste"> +<!ENTITY ListofFigures "Figurliste"> +<!ENTITY listoffigures "figurliste"> +<!ENTITY listoftables "tabelliste"> +<!ENTITY ListofTables "Tabelliste"> +<!ENTITY ListofUnknown "Liste over ukendte"> +<!ENTITY listofunknown "liste over ukendte"> +<!ENTITY nav-home "hjem"> +<!ENTITY nav-next "n\U-00E6;ste"> +<!ENTITY nav-next-sibling "hurtigt fremad"> +<!ENTITY nav-prev "forrige"> +<!ENTITY nav-prev-sibling "hurtigt tilbage"> +<!ENTITY nav-up "op"> +<!ENTITY Draft "Kladde"> +<!ENTITY above "over"> +<!ENTITY below "under"> +<!ENTITY sectioncalled "afsnittet der hedder"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00E6;\U-00F8;\U-00E5;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00C6;\U-00D8;\U-00C5;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1de.dsl b/common/dbl1de.dsl new file mode 100644 index 0000000..6b323be --- /dev/null +++ b/common/dbl1de.dsl @@ -0,0 +1,445 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % de.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//DE" + "dbl1de.ent"> +%de.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-de"> +<style-specification-body> + +;; $Id: dbl1de.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Rainer Feuerstein, fire@informatik.uni-wuerzburg.de, +;; Christian Leutloff, leutloff@sundancer.oche.de +;; Ulrich Windl, Ulrich.Windl@rz.uni-regensburg.de +;; Christian Kirsch, ck@held.mind.de +;; Joerg Wittenberger, Joerg.Wittenberger@pobox.com + +(define (de-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (de-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&Appendix; namens %t")) + (list (normalize "article") (string-append %gentext-de-start-quote% + "%t" + %gentext-de-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&Chapter; namens %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "&Section; namens %t")) + (list (normalize "sidebar") "&Sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-de-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (de-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (de-auto-xref-indirect-connector before) + ;; In German one usually says "... in dem Buch ..." (probably because + ;; it's a larger piece of work and more commonly known) + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ dem ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-de-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; +(define (de-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-de-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (de-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-de-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-de-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-de-intra-label-sep) + (list)) + +(define (de-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-de-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-de-intra-label-sep))) + (sep (assoc name (de-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-de-label-title-sep) + (list)) + +(define (de-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-de-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-de-label-title-sep))) + (sep (assoc name (de-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (de-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (de-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (de-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (de-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-de$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (de-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-de-start-quote% "\U-201E;") + +(define %gentext-de-end-quote% "\U-201C;") + +(define %gentext-de-start-nested-quote% "\U-201A;") + +(define %gentext-de-end-nested-quote% "\U-2018;") + +(define %gentext-de-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-de-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-de-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-de-page% "") + +(define %gentext-de-and% "∧") + +(define %gentext-de-listcomma% "&listcomma;") + +(define %gentext-de-lastlistcomma% "&lastlistcomma;") + +(define %gentext-de-bibl-pages% "&Pgs;") + +(define %gentext-de-endnotes% "&Notes;") + +(define %gentext-de-table-endnotes% "&TableNotes;:") + +(define %gentext-de-index-see% "&See;") + +(define %gentext-de-index-seealso% "&SeeAlso;") + + +(define (gentext-de-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-de-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-de-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-de-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-de-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-de-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1de.ent b/common/dbl1de.ent new file mode 100644 index 0000000..0b6e053 --- /dev/null +++ b/common/dbl1de.ent @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Zusammenfassung"> +<!ENTITY abstract "Zusammenfassung"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Anhang"> +<!ENTITY appendix "Anhang"> +<!ENTITY Article "Artikel"> +<!ENTITY article "Artikel"> +<!ENTITY Bibliography "Literaturverzeichnis"> +<!ENTITY bibliography "Literaturverzeichnis"> +<!ENTITY Book "Buch"> +<!ENTITY book "Buch"> +<!ENTITY Caution "Achtung"> +<!ENTITY caution "Achtung"> +<!ENTITY CAUTION "ACHTUNG"> +<!ENTITY Chapter "Kapitel"> +<!ENTITY chapter "Kapitel"> +<!ENTITY Colophon "Kolophon"> +<!ENTITY colophon "Kolophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Widmung"> +<!ENTITY dedication "Widmung"> +<!ENTITY Edition "Ausgabe"> +<!ENTITY edition "Ausgabe"> +<!ENTITY Equation "Gleichung"> +<!ENTITY equation "Gleichung"> +<!ENTITY Example "Beispiel"> +<!ENTITY example "Beispiel"> +<!ENTITY Figure "Abbildung"> +<!ENTITY figure "Abbildung"> +<!ENTITY Glossary "Glossar"> +<!ENTITY glossary "Glossar"> +<!ENTITY GlossSee "Siehe"> +<!ENTITY glosssee "Siehe"> +<!ENTITY GlossSeeAlso "Siehe auch"> +<!ENTITY glossseealso "Siehe auch"> +<!ENTITY IMPORTANT "WICHTIG"> +<!ENTITY Important "Wichtig"> +<!ENTITY important "Wichtig"> +<!ENTITY Index "Stichwortverzeichnis"> +<!ENTITY index "Stichwortverzeichnis"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Rechtlicher Hinweis"> +<!ENTITY legalnotice "Rechtlicher Hinweis"> +<!ENTITY MsgAud "Zielgruppe"> +<!ENTITY msgaud "Zielgruppe"> +<!ENTITY MsgLevel "Dringlichkeit"> +<!ENTITY msglevel "Dringlichkeit"> +<!ENTITY MsgOrig "Ursprung"> +<!ENTITY msgorig "Ursprung"> +<!ENTITY note "Anmerkung"> +<!ENTITY NOTE "ANMERKUNG"> +<!ENTITY Note "Anmerkung"> +<!ENTITY part "Teil"> +<!ENTITY Part "Teil"> +<!ENTITY Preface "Vorwort"> +<!ENTITY preface "Vorwort"> +<!ENTITY Procedure "Prozedur"> +<!ENTITY procedure "Prozedur"> +<!ENTITY ProductionSet "Produktion"> +<!ENTITY PubDate "Ver\U-00F6;ffentlicht"> +<!ENTITY pubdate "Ver\U-00F6;ffentlicht"> +<!ENTITY Published "Ver\U-00F6;ffentlicht"> +<!ENTITY published "Ver\U-00F6;ffentlicht"> +<!ENTITY Qandadiv "F & A"> +<!ENTITY qandadiv "F & A"> +<!ENTITY Question "F:"> +<!ENTITY question "F:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Verweis"> +<!ENTITY reference "Verweis"> +<!ENTITY refname "Name"> +<!ENTITY RefName "Name"> +<!ENTITY RefSection "Abschnitt"> +<!ENTITY refsection "Abschnitt"> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Versionsgeschichte"> +<!ENTITY revhistory "Versionsgeschichte"> +<!ENTITY Revision "Version"> +<!ENTITY revision "Version"> +<!ENTITY Section "Abschnitt"> +<!ENTITY section "Abschnitt"> +<!ENTITY sect1 "Abschnitt"> +<!ENTITY sect2 "Abschnitt"> +<!ENTITY sect3 "Abschnitt"> +<!ENTITY sect4 "Abschnitt"> +<!ENTITY sect5 "Abschnitt"> +<!ENTITY see "Siehe"> +<!ENTITY See "Siehe"> +<!ENTITY SeeAlso "Siehe auch"> +<!ENTITY seealso "Siehe auch"> +<!ENTITY Seealso "Siehe auch"> +<!ENTITY Set "Satz"> +<!ENTITY set "Satz"> +<!ENTITY setindex "Stichwortverzeichnis"> +<!ENTITY SetIndex "Stichwortverzeichnis"> +<!ENTITY sidebar "randnotiz"> +<!ENTITY Sidebar "Randnotiz"> +<!ENTITY Step "Schritt"> +<!ENTITY step "Schritt"> +<!ENTITY table "Tabelle"> +<!ENTITY Table "Tabelle"> +<!ENTITY TIP "TIPP"> +<!ENTITY Tip "Tipp"> +<!ENTITY tip "Tipp"> +<!ENTITY Warning "Warnung"> +<!ENTITY warning "Warnung"> +<!ENTITY WARNING "WARNUNG"> +<!ENTITY and "und"> +<!ENTITY by "von"> +<!ENTITY Edited "Herausgegeben"> +<!ENTITY edited "Herausgegeben"> +<!ENTITY Editedby "Herausgegeben von"> +<!ENTITY editedby "Herausgegeben von"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "nicht existierendes Element"> +<!ENTITY notes "Fu\U-00DF;noten"> +<!ENTITY Notes "Fu\U-00DF;noten"> +<!ENTITY Pgs "Seiten"> +<!ENTITY pgs "Seiten"> +<!ENTITY Revisedby "Ge\U-00E4;ndert durch: "> +<!ENTITY revisedby "Ge\U-00E4;ndert durch: "> +<!ENTITY TableNotes "Bemerkungen"> +<!ENTITY tablenotes "Bemerkungen"> +<!ENTITY TableofContents "Inhaltsverzeichnis"> +<!ENTITY tableofcontents "Inhaltsverzeichnis"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Unerwarteter Elementname"> +<!ENTITY unsupported "wird nicht unterst\U-00FC;tzt"> +<!ENTITY xrefto "xref auf"> +<!ENTITY listofequations "Gleichungen"> +<!ENTITY ListofEquations "Gleichungen"> +<!ENTITY ListofExamples "Beispiele"> +<!ENTITY listofexamples "Beispiele"> +<!ENTITY ListofFigures "Abbildungsverzeichnis"> +<!ENTITY listoffigures "Abbildungsverzeichnis"> +<!ENTITY listoftables "Tabellenverzeichnis"> +<!ENTITY ListofTables "Tabellenverzeichnis"> +<!ENTITY ListofUnknown "???-Verzeichnis"> +<!ENTITY listofunknown "???-Verzeichnis"> +<!ENTITY nav-home "Zum Anfang"> +<!ENTITY nav-next "Weiter"> +<!ENTITY nav-next-sibling "Schnell weiter"> +<!ENTITY nav-prev "Zur\U-00FC;ck"> +<!ENTITY nav-prev-sibling "Schnell zur\U-00FC;ck"> +<!ENTITY nav-up "Nach oben"> +<!ENTITY nav-toc "InhV"> +<!ENTITY sectioncalled "der Abschnitt namens"> +<!ENTITY Draft "Entwurf"> +<!ENTITY above "oben"> +<!ENTITY below "unten"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00E4;\U-00F6;\U-00FC;\U-00DF;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00C4;\U-00D6;\U-00DC;\U-00DF;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "3"> diff --git a/common/dbl1el.dsl b/common/dbl1el.dsl new file mode 100644 index 0000000..1570238 --- /dev/null +++ b/common/dbl1el.dsl @@ -0,0 +1,445 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % el.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EL" + "dbl1el.ent"> +%el.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-el"> +<style-specification-body> + +;; $Id: dbl1el.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (el-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (el-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "ôï &appendix; ìå üíïìá %t")) + (list (normalize "article") (string-append %gentext-el-start-quote% + "%t" + %gentext-el-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "ôï &chapter; ìå üíïìá %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "ôï §ion; ìå üíïìá %t")) + (list (normalize "sidebar") "ôï &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + + +(define (gentext-el-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (el-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (el-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-el-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; +(define (el-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-el-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (el-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-el-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-el-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-el-intra-label-sep) + (list)) + +(define (el-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-el-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-el-intra-label-sep))) + (sep (assoc name (el-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-el-label-title-sep) + (list)) + +(define (el-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-el-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-el-label-title-sep))) + (sep (assoc name (el-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (el-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (el-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (el-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (el-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-el$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (el-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-el-start-quote% (dingbat "ldquo")) + +(define %gentext-el-end-quote% (dingbat "rdquo")) + +(define %gentext-el-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-el-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-el-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-el-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-el-revised-by% "&Editedby;") + ;; "Revised by" Jane Doe + +(define %gentext-el-page% "") + +(define %gentext-el-and% "∧") + +(define %gentext-el-listcomma% "&listcomma;") + +(define %gentext-el-lastlistcomma% "&lastlistcomma;") + +(define %gentext-el-bibl-pages% "&Pgs;") + +(define %gentext-el-endnotes% "&Notes;") + +(define %gentext-el-table-endnotes% "&TableNotes;:") + +(define %gentext-el-index-see% "&See;") + +(define %gentext-el-index-seealso% "&SeeAlso;") + + +(define (gentext-el-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-el-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-el-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-el-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-el-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-el-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1el.ent b/common/dbl1el.ent new file mode 100644 index 0000000..c15e62f --- /dev/null +++ b/common/dbl1el.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-00D0;\U-00E5;\U-00F1;\U-00DF;\U-00EB;\U-00E7;\U-00F8;\U-00E7;"> +<!ENTITY Answer "\U-00C1;:"> +<!ENTITY Appendix "\U-00D0;\U-00E1;\U-00F1;\U-00DC;\U-00F1;\U-00F4;\U-00E7;\U-00EC;\U-00E1;"> +<!ENTITY Article "\U-00B6;\U-00F1;\U-00E8;\U-00F1;\U-00EF;"> +<!ENTITY Bibliography "\U-00C2;\U-00E9;\U-00E2;\U-00EB;\U-00E9;\U-00EF;\U-00E3;\U-00F1;\U-00E1;\U-00F6;\U-00DF;\U-00E1;"> +<!ENTITY Book "\U-00C2;\U-00E9;\U-00E2;\U-00EB;\U-00DF;\U-00EF;"> +<!ENTITY CAUTION "\U-00D0;\U-00D1;\U-00CF;\U-00D3;\U-00CF;\U-00D7;\U-00C7;"> +<!ENTITY Caution "\U-00D0;\U-00F1;\U-00EF;\U-00F3;\U-00EF;\U-00F7;\U-00DE;"> +<!ENTITY Chapter "\U-00CA;\U-00E5;\U-00F6;\U-00DC;\U-00EB;\U-00E1;\U-00E9;\U-00EF;"> +<!ENTITY Colophon "\U-00CA;\U-00EF;\U-00F1;\U-00F9;\U-00ED;\U-00DF;\U-00E4;\U-00E1;"> +<!ENTITY Copyright "\U-00D0;\U-00ED;\U-00E5;\U-00F5;\U-00EC;\U-00E1;\U-00F4;\U-00E9;\U-00EA;\U-00DC; \U-00C4;\U-00E9;\U-00EA;\U-00E1;\U-00E9;\U-00FE;\U-00EC;\U-00E1;\U-00F4;\U-00E1;"> +<!ENTITY Dedication "\U-00C1;\U-00F6;\U-00E9;\U-00DD;\U-00F1;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY Edition "\U-00B8;\U-00EA;\U-00E4;\U-00EF;\U-00F3;\U-00E7;"> +<!ENTITY Equation "\U-00C5;\U-00EE;\U-00DF;\U-00F3;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY Example "\U-00D0;\U-00E1;\U-00F1;\U-00DC;\U-00E4;\U-00E5;\U-00E9;\U-00E3;\U-00EC;\U-00E1;"> +<!ENTITY Figure "\U-00D3;\U-00F7;\U-00DE;\U-00EC;\U-00E1;"> +<!ENTITY GlossSee "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5;"> +<!ENTITY GlossSeeAlso "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5; \U-00C5;\U-00F0;\U-00DF;\U-00F3;\U-00E7;\U-00F2;"> +<!ENTITY Glossary "\U-00C3;\U-00EB;\U-00F9;\U-00F3;\U-00F3;\U-00DC;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY IMPORTANT "\U-00D3;\U-00C7;\U-00CC;\U-00C1;\U-00CD;\U-00D4;\U-00C9;\U-00CA;\U-00CF;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY Important "\U-00D3;\U-00E7;\U-00EC;\U-00E1;\U-00ED;\U-00F4;\U-00E9;\U-00EA;\U-00FC;"> +<!ENTITY Index "\U-00C5;\U-00F5;\U-00F1;\U-00E5;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY LegalNotice "\U-00CD;\U-00EF;\U-00EC;\U-00E9;\U-00EA;\U-00DE; \U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00DF;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY MsgAud "\U-00C1;\U-00EA;\U-00F1;\U-00EF;\U-00E1;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY MsgLevel "\U-00C5;\U-00F0;\U-00DF;\U-00F0;\U-00E5;\U-00E4;\U-00EF;"> +<!ENTITY MsgOrig "\U-00D0;\U-00E7;\U-00E3;\U-00DE;"> +<!ENTITY NOTE "\U-00D3;\U-00C7;\U-00CC;\U-00C5;\U-00C9;\U-00D9;\U-00D3;\U-00C7;"> +<!ENTITY Note "\U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00DF;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY Part "\U-00CC;\U-00DD;\U-00F1;\U-00EF;\U-00F2;"> +<!ENTITY Preface "\U-00C5;\U-00E9;\U-00F3;\U-00E1;\U-00E3;\U-00F9;\U-00E3;\U-00DE;"> +<!ENTITY Procedure "\U-00C4;\U-00E9;\U-00E1;\U-00E4;\U-00E9;\U-00EA;\U-00E1;\U-00F3;\U-00DF;\U-00E1;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "\U-00C4;\U-00E7;\U-00EC;\U-00EF;\U-00F3;\U-00E9;\U-00E5;\U-00F5;\U-00EC;\U-00DD;\U-00ED;\U-00EF;"> +<!ENTITY Question "\U-00C5;:"> +<!ENTITY RefEntry ""> +<!ENTITY RefName "\U-00BC;\U-00ED;\U-00EF;\U-00EC;\U-00E1;"> +<!ENTITY RefSection ""> +<!ENTITY RefSynopsisDiv "\U-00D3;\U-00FD;\U-00ED;\U-00EF;\U-00F8;\U-00E7;"> +<!ENTITY Reference "\U-00C1;\U-00ED;\U-00E1;\U-00F6;\U-00EF;\U-00F1;\U-00DC;"> +<!ENTITY RevHistory "\U-00C9;\U-00F3;\U-00F4;\U-00EF;\U-00F1;\U-00E9;\U-00EA;\U-00FC; \U-00C1;\U-00ED;\U-00E1;\U-00E8;\U-00E5;\U-00F9;\U-00F1;\U-00DE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY Revision "\U-00C1;\U-00ED;\U-00E1;\U-00E8;\U-00E5;\U-00FE;\U-00F1;\U-00E7;\U-00F3;\U-00E7;"> +<!ENTITY Section "\U-00D4;\U-00EC;\U-00DE;\U-00EC;\U-00E1;"> +<!ENTITY See "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5;"> +<!ENTITY SeeAlso "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5; \U-00C5;\U-00F0;\U-00DF;\U-00F3;\U-00E7;\U-00F2;"> +<!ENTITY Seealso "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5; \U-00E5;\U-00F0;\U-00DF;\U-00F3;\U-00E7;\U-00F2;"> +<!ENTITY Set "\U-00D3;\U-00FD;\U-00ED;\U-00EF;\U-00EB;\U-00EF;"> +<!ENTITY SetIndex "\U-00C5;\U-00F5;\U-00F1;\U-00E5;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF; \U-00D3;\U-00F5;\U-00ED;\U-00FC;\U-00EB;\U-00F9;\U-00ED;"> +<!ENTITY Sidebar ""> +<!ENTITY Step "\U-00D6;\U-00DC;\U-00F3;\U-00E7;"> +<!ENTITY TIP "\U-00D5;\U-00D0;\U-00CF;\U-00C4;\U-00C5;\U-00C9;\U-00CE;\U-00C7;"> +<!ENTITY Table "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2;"> +<!ENTITY Tip "\U-00D5;\U-00F0;\U-00FC;\U-00E4;\U-00E5;\U-00E9;\U-00EE;\U-00E7;"> +<!ENTITY WARNING "\U-00D0;\U-00D1;\U-00CF;\U-00C5;\U-00C9;\U-00C4;\U-00CF;\U-00D0;\U-00CF;\U-00C9;\U-00C7;\U-00D3;\U-00C7;"> +<!ENTITY Warning "\U-00D0;\U-00F1;\U-00EF;\U-00E5;\U-00E9;\U-00E4;\U-00EF;\U-00F0;\U-00EF;\U-00DF;\U-00E7;\U-00F3;\U-00E7;"> +<!ENTITY abstract "\U-00D0;\U-00E5;\U-00F1;\U-00DF;\U-00EB;\U-00E7;\U-00F8;\U-00E7;"> +<!ENTITY answer "\U-00C1;:"> +<!ENTITY appendix "\U-00F0;\U-00E1;\U-00F1;\U-00DC;\U-00F1;\U-00F4;\U-00E7;\U-00EC;\U-00E1;"> +<!ENTITY article "\U-00B6;\U-00F1;\U-00E8;\U-00F1;\U-00EF;"> +<!ENTITY bibliography "\U-00C2;\U-00E9;\U-00E2;\U-00EB;\U-00E9;\U-00EF;\U-00E3;\U-00F1;\U-00E1;\U-00F6;\U-00DF;\U-00E1;"> +<!ENTITY book "\U-00C2;\U-00E9;\U-00E2;\U-00EB;\U-00DF;\U-00EF;"> +<!ENTITY caution "\U-00D0;\U-00F1;\U-00EF;\U-00F3;\U-00EF;\U-00F7;\U-00DE;"> +<!ENTITY chapter "\U-00EA;\U-00E5;\U-00F6;\U-00DC;\U-00EB;\U-00E1;\U-00E9;\U-00EF;"> +<!ENTITY colophon "\U-00CA;\U-00EF;\U-00F1;\U-00F9;\U-00ED;\U-00DF;\U-00E4;\U-00E1;"> +<!ENTITY copyright "\U-00D0;\U-00ED;\U-00E5;\U-00F5;\U-00EC;\U-00E1;\U-00F4;\U-00E9;\U-00EA;\U-00DC; \U-00C4;\U-00E9;\U-00EA;\U-00E1;\U-00E9;\U-00FE;\U-00EC;\U-00E1;\U-00F4;\U-00E1;"> +<!ENTITY dedication "\U-00C1;\U-00F6;\U-00E9;\U-00DD;\U-00F1;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY edition "\U-00B8;\U-00EA;\U-00E4;\U-00EF;\U-00F3;\U-00E7;"> +<!ENTITY equation "\U-00C5;\U-00EE;\U-00DF;\U-00F3;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY example "\U-00D0;\U-00E1;\U-00F1;\U-00DC;\U-00E4;\U-00E5;\U-00E9;\U-00E3;\U-00EC;\U-00E1;"> +<!ENTITY figure "\U-00D3;\U-00F7;\U-00DE;\U-00EC;\U-00E1;"> +<!ENTITY glossary "\U-00C3;\U-00EB;\U-00F9;\U-00F3;\U-00F3;\U-00DC;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY glosssee "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5;"> +<!ENTITY glossseealso "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5; \U-00C5;\U-00F0;\U-00DF;\U-00F3;\U-00E7;\U-00F2;"> +<!ENTITY important "\U-00D3;\U-00E7;\U-00EC;\U-00E1;\U-00ED;\U-00F4;\U-00E9;\U-00EA;\U-00FC;"> +<!ENTITY index "\U-00C5;\U-00F5;\U-00F1;\U-00E5;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY isbn "ISBN"> +<!ENTITY legalnotice "\U-00CD;\U-00EF;\U-00EC;\U-00E9;\U-00EA;\U-00DE; \U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00DF;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY msgaud "\U-00C1;\U-00EA;\U-00F1;\U-00EF;\U-00E1;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF;"> +<!ENTITY msglevel "\U-00C5;\U-00F0;\U-00DF;\U-00F0;\U-00E5;\U-00E4;\U-00EF;"> +<!ENTITY msgorig "\U-00D0;\U-00E7;\U-00E3;\U-00DE;"> +<!ENTITY note "\U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00DF;\U-00F9;\U-00F3;\U-00E7;"> +<!ENTITY part "\U-00CC;\U-00DD;\U-00F1;\U-00EF;\U-00F2;"> +<!ENTITY preface "\U-00C5;\U-00E9;\U-00F3;\U-00E1;\U-00E3;\U-00F9;\U-00E3;\U-00DE;"> +<!ENTITY procedure "\U-00C4;\U-00E9;\U-00E1;\U-00E4;\U-00E9;\U-00EA;\U-00E1;\U-00F3;\U-00DF;\U-00E1;"> +<!ENTITY published "\U-00C4;\U-00E7;\U-00EC;\U-00EF;\U-00F3;\U-00E9;\U-00E5;\U-00F5;\U-00EC;\U-00DD;\U-00ED;\U-00EF;"> +<!ENTITY question "\U-00C5;:"> +<!ENTITY refentry ""> +<!ENTITY reference "\U-00C1;\U-00ED;\U-00E1;\U-00F6;\U-00EF;\U-00F1;\U-00DC;"> +<!ENTITY refname "\U-00BC;\U-00ED;\U-00EF;\U-00EC;\U-00E1;"> +<!ENTITY refsection ""> +<!ENTITY refsynopsisdiv "\U-00D3;\U-00FD;\U-00ED;\U-00EF;\U-00F8;\U-00E7;"> +<!ENTITY revhistory "\U-00C9;\U-00F3;\U-00F4;\U-00EF;\U-00F1;\U-00E9;\U-00EA;\U-00FC; \U-00C1;\U-00ED;\U-00E1;\U-00E8;\U-00E5;\U-00F9;\U-00F1;\U-00DE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY revision "\U-00C1;\U-00ED;\U-00E1;\U-00E8;\U-00E5;\U-00FE;\U-00F1;\U-00E7;\U-00F3;\U-00E7;"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY section "\U-00F4;\U-00EC;\U-00DE;\U-00EC;\U-00E1;"> +<!ENTITY see "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5;"> +<!ENTITY seealso "\U-00C4;\U-00E5;\U-00DF;\U-00F4;\U-00E5; \U-00C5;\U-00F0;\U-00DF;\U-00F3;\U-00E7;\U-00F2;"> +<!ENTITY set "\U-00D3;\U-00FD;\U-00ED;\U-00EF;\U-00EB;\U-00EF;"> +<!ENTITY setindex "\U-00C5;\U-00F5;\U-00F1;\U-00E5;\U-00F4;\U-00DE;\U-00F1;\U-00E9;\U-00EF; \U-00D3;\U-00F5;\U-00ED;\U-00FC;\U-00EB;\U-00F9;\U-00ED;"> +<!ENTITY sidebar "\U-00E5;\U-00F0;\U-00E5;\U-00EE;\U-00E7;\U-00E3;\U-00E7;\U-00EC;\U-00E1;\U-00F4;\U-00E9;\U-00EA;\U-00FC; \U-00F0;\U-00EB;\U-00E5;\U-00F5;\U-00F1;\U-00E9;\U-00EA;\U-00FC; \U-00E1;\U-00F1;\U-00E8;\U-00F1;\U-00DF;\U-00E4;\U-00E9;\U-00EF;"> +<!ENTITY step "\U-00F6;\U-00DC;\U-00F3;\U-00E7;"> +<!ENTITY table "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2;"> +<!ENTITY tip "\U-00D5;\U-00F0;\U-00FC;\U-00E4;\U-00E5;\U-00E9;\U-00EE;\U-00E7;"> +<!ENTITY warning "\U-00D0;\U-00F1;\U-00EF;\U-00E5;\U-00E9;\U-00E4;\U-00EF;\U-00F0;\U-00EF;\U-00DF;\U-00E7;\U-00F3;\U-00E7;"> +<!ENTITY and "\U-00EA;\U-00E1;\U-00E9;"> +<!ENTITY by "\U-00E1;\U-00F0;\U-00FC;"> +<!ENTITY Edited "\U-00C5;\U-00F0;\U-00E9;\U-00EC;\U-00DD;\U-00EB;\U-00E5;\U-00E9;\U-00E1;"> +<!ENTITY edited "\U-00C5;\U-00F0;\U-00E9;\U-00EC;\U-00DD;\U-00EB;\U-00E5;\U-00E9;\U-00E1;"> +<!ENTITY Editedby "\U-00C5;\U-00F0;\U-00E9;\U-00EC;\U-00DD;\U-00EB;\U-00E5;\U-00E9;\U-00E1; \U-00E1;\U-00F0;\U-00FC;"> +<!ENTITY editedby "\U-00C5;\U-00F0;\U-00E9;\U-00EC;\U-00DD;\U-00EB;\U-00E5;\U-00E9;\U-00E1; \U-00E1;\U-00F0;\U-00FC;"> +<!ENTITY in "\U-00F3;\U-00E5;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-00EC;\U-00E7;-\U-00F5;\U-00F0;\U-00E1;\U-00F1;\U-00EA;\U-00F4;\U-00FC; \U-00F3;\U-00F4;\U-00EF;\U-00E9;\U-00F7;\U-00E5;\U-00DF;\U-00EF;"> +<!ENTITY notes "\U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00E9;\U-00FE;\U-00F3;\U-00E5;\U-00E9;\U-00F2;"> +<!ENTITY Notes "\U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00E9;\U-00FE;\U-00F3;\U-00E5;\U-00E9;\U-00F2;"> +<!ENTITY Pgs "\U-00D3;\U-00EB;\U-00E4;\U-00F2;."> +<!ENTITY pgs "\U-00D3;\U-00EB;\U-00E4;\U-00F2;."> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2; \U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00E9;\U-00FE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY tablenotes "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2; \U-00D3;\U-00E7;\U-00EC;\U-00E5;\U-00E9;\U-00FE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY TableofContents "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2; \U-00D0;\U-00E5;\U-00F1;\U-00E9;\U-00E5;\U-00F7;\U-00EF;\U-00EC;\U-00DD;\U-00ED;\U-00F9;\U-00ED;"> +<!ENTITY tableofcontents "\U-00D0;\U-00DF;\U-00ED;\U-00E1;\U-00EA;\U-00E1;\U-00F2; \U-00D0;\U-00E5;\U-00F1;\U-00E9;\U-00E5;\U-00F7;\U-00EF;\U-00EC;\U-00DD;\U-00ED;\U-00F9;\U-00ED;"> +<!ENTITY unexpectedelementname "\U-00CC;\U-00E7; \U-00E1;\U-00ED;\U-00E1;\U-00EC;\U-00E5;\U-00ED;\U-00FC;\U-00EC;\U-00E5;\U-00ED;\U-00EF; \U-00FC;\U-00ED;\U-00EF;\U-00EC;\U-00E1; \U-00F3;\U-00F4;\U-00EF;\U-00E9;\U-00F7;\U-00E5;\U-00DF;\U-00EF;\U-00F5;"> +<!ENTITY unsupported "\U-00EC;\U-00E7; \U-00F5;\U-00F0;\U-00EF;\U-00F3;\U-00F4;\U-00E7;\U-00F1;\U-00E9;\U-00E6;\U-00FC;\U-00EC;\U-00E5;\U-00ED;\U-00EF;"> +<!ENTITY xrefto "\U-00E1;\U-00ED;\U-00F4;\U-00E9;\U-00F0;\U-00E1;\U-00F1;\U-00E1;\U-00F0;\U-00EF;\U-00EC;\U-00F0;\U-00DE; \U-00F3;\U-00E5;"> +<!ENTITY listofequations "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00C5;\U-00EE;\U-00E9;\U-00F3;\U-00FE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY ListofEquations "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00C5;\U-00EE;\U-00E9;\U-00F3;\U-00FE;\U-00F3;\U-00E5;\U-00F9;\U-00ED;"> +<!ENTITY ListofExamples "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D0;\U-00E1;\U-00F1;\U-00E1;\U-00E4;\U-00E5;\U-00E9;\U-00E3;\U-00EC;\U-00DC;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY listofexamples "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D0;\U-00E1;\U-00F1;\U-00E1;\U-00E4;\U-00E5;\U-00E9;\U-00E3;\U-00EC;\U-00DC;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY ListofFigures "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D3;\U-00F7;\U-00E7;\U-00EC;\U-00DC;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY listoffigures "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D3;\U-00F7;\U-00E7;\U-00EC;\U-00DC;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY listoftables "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D0;\U-00E9;\U-00ED;\U-00DC;\U-00EA;\U-00F9;\U-00ED;"> +<!ENTITY ListofTables "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00D0;\U-00E9;\U-00ED;\U-00DC;\U-00EA;\U-00F9;\U-00ED;"> +<!ENTITY ListofUnknown "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00C1;\U-00E3;\U-00ED;\U-00FE;\U-00F3;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY listofunknown "\U-00CA;\U-00E1;\U-00F4;\U-00DC;\U-00EB;\U-00EF;\U-00E3;\U-00EF;\U-00F2; \U-00C1;\U-00E3;\U-00ED;\U-00FE;\U-00F3;\U-00F4;\U-00F9;\U-00ED;"> +<!ENTITY nav-home "\U-00C1;\U-00F1;\U-00F7;\U-00DE;"> +<!ENTITY nav-next "\U-00C5;\U-00F0;\U-00FC;\U-00EC;\U-00E5;\U-00ED;\U-00EF;"> +<!ENTITY nav-next-sibling "\U-00D0;\U-00F1;\U-00EF;\U-00F2; \U-00F4;\U-00EF; \U-00F4;\U-00DD;\U-00EB;\U-00EF;\U-00F2;"> +<!ENTITY nav-prev "\U-00D0;\U-00F1;\U-00EF;\U-00E7;\U-00E3;"> +<!ENTITY nav-prev-sibling "\U-00D0;\U-00F1;\U-00EF;\U-00F2; \U-00F4;\U-00E7;\U-00ED; \U-00E1;\U-00F1;\U-00F7;\U-00DE;"> +<!ENTITY nav-up "\U-00D0;\U-00DC;\U-00ED;\U-00F9;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1en.dsl b/common/dbl1en.dsl new file mode 100644 index 0000000..573d28b --- /dev/null +++ b/common/dbl1en.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % en.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EN" + "dbl1en.ent"> +%en.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-en"> +<style-specification-body> + +;; $Id: dbl1en.dsl,v 1.3 2002/12/20 02:22:06 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (en-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (en-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-en-start-quote% + "%t" + %gentext-en-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-en-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (en-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (en-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-en-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (en-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&see;") + (list (normalize "seealsoie") "&seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-en-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (en-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-en-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-en-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-en-intra-label-sep) + (list)) + +(define (en-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-en-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-en-intra-label-sep))) + (sep (assoc name (en-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-en-label-title-sep) + (list)) + +(define (en-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-en-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-en-label-title-sep))) + (sep (assoc name (en-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (en-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (en-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (en-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (en-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-en$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (en-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-en-start-quote% (dingbat "ldquo")) + +(define %gentext-en-end-quote% (dingbat "rdquo")) + +(define %gentext-en-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-en-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-en-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-en-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-en-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-en-page% "") + +(define %gentext-en-and% "∧") + +(define %gentext-en-listcomma% "&listcomma;") + +(define %gentext-en-lastlistcomma% "&lastlistcomma;") + +(define %gentext-en-bibl-pages% "&Pgs;") + +(define %gentext-en-endnotes% "&Notes;") + +(define %gentext-en-table-endnotes% "&TableNotes;:") + +(define %gentext-en-index-see% "&see;") + +(define %gentext-en-index-seealso% "&seealso;") + + +(define (gentext-en-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-en-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-en-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-en-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-en-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-en-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1en.ent b/common/dbl1en.ent new file mode 100644 index 0000000..c0ef979 --- /dev/null +++ b/common/dbl1en.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstract"> +<!ENTITY abstract "Abstract"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Appendix"> +<!ENTITY appendix "Appendix"> +<!ENTITY Article "Article"> +<!ENTITY article "Article"> +<!ENTITY Bibliography "Bibliography"> +<!ENTITY bibliography "Bibliography"> +<!ENTITY Book "Book"> +<!ENTITY book "Book"> +<!ENTITY CAUTION "CAUTION"> +<!ENTITY Caution "Caution"> +<!ENTITY caution "Caution"> +<!ENTITY Chapter "Chapter"> +<!ENTITY chapter "Chapter"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedication"> +<!ENTITY dedication "Dedication"> +<!ENTITY Edition "Edition"> +<!ENTITY edition "Edition"> +<!ENTITY Equation "Equation"> +<!ENTITY equation "Equation"> +<!ENTITY Example "Example"> +<!ENTITY example "Example"> +<!ENTITY Figure "Figure"> +<!ENTITY figure "Figure"> +<!ENTITY Glossary "Glossary"> +<!ENTITY glossary "Glossary"> +<!ENTITY GlossSee "See"> +<!ENTITY glosssee "See"> +<!ENTITY GlossSeeAlso "See Also"> +<!ENTITY glossseealso "See Also"> +<!ENTITY IMPORTANT "IMPORTANT"> +<!ENTITY important "Important"> +<!ENTITY Important "Important"> +<!ENTITY Index "Index"> +<!ENTITY index "Index"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Legal Notice"> +<!ENTITY legalnotice "Legal Notice"> +<!ENTITY MsgAud "Audience"> +<!ENTITY msgaud "Audience"> +<!ENTITY MsgLevel "Level"> +<!ENTITY msglevel "Level"> +<!ENTITY MsgOrig "Origin"> +<!ENTITY msgorig "Origin"> +<!ENTITY NOTE "NOTE"> +<!ENTITY Note "Note"> +<!ENTITY note "Note"> +<!ENTITY Part "Part"> +<!ENTITY part "Part"> +<!ENTITY Preface "Preface"> +<!ENTITY preface "Preface"> +<!ENTITY Procedure "Procedure"> +<!ENTITY procedure "Procedure"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "Publication Date"> +<!ENTITY pubdate "Publication date"> +<!ENTITY Published "Published"> +<!ENTITY published "Published"> +<!ENTITY Qandadiv "Q & A"> +<!ENTITY qandadiv "Q & A"> +<!ENTITY Question "Q:"> +<!ENTITY question "Q:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Reference"> +<!ENTITY reference "Reference"> +<!ENTITY RefName "Name"> +<!ENTITY refname "Name"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Revision History"> +<!ENTITY revhistory "Revision History"> +<!ENTITY revision "Revision"> +<!ENTITY Revision "Revision"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY section "Section"> +<!ENTITY Section "Section"> +<!ENTITY see "see"> +<!ENTITY See "See"> +<!ENTITY seealso "see also"> +<!ENTITY Seealso "See also"> +<!ENTITY SeeAlso "See Also"> +<!ENTITY set "Set"> +<!ENTITY Set "Set"> +<!ENTITY setindex "Set Index"> +<!ENTITY SetIndex "Set Index"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY step "step"> +<!ENTITY Step "Step"> +<!ENTITY Table "Table"> +<!ENTITY table "Table"> +<!ENTITY tip "Tip"> +<!ENTITY TIP "TIP"> +<!ENTITY Tip "Tip"> +<!ENTITY Warning "Warning"> +<!ENTITY warning "Warning"> +<!ENTITY WARNING "WARNING"> +<!ENTITY and "and"> +<!ENTITY by "by"> +<!ENTITY called "called"> +<!ENTITY Edited "Edited"> +<!ENTITY edited "Edited"> +<!ENTITY Editedby "Edited by"> +<!ENTITY editedby "Edited by"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "non-existant element"> +<!ENTITY notes "Notes"> +<!ENTITY Notes "Notes"> +<!ENTITY Pgs "Pgs."> +<!ENTITY pgs "Pgs."> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "Notes"> +<!ENTITY tablenotes "Notes"> +<!ENTITY TableofContents "Table of Contents"> +<!ENTITY tableofcontents "Table of Contents"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Unexpected element name"> +<!ENTITY unsupported "unsupported"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "List of Equations"> +<!ENTITY ListofEquations "List of Equations"> +<!ENTITY ListofExamples "List of Examples"> +<!ENTITY listofexamples "List of Examples"> +<!ENTITY ListofFigures "List of Figures"> +<!ENTITY listoffigures "List of Figures"> +<!ENTITY ListofProcedures "List of Procedures"> +<!ENTITY listofprocedures "List of Procedures"> +<!ENTITY listoftables "List of Tables"> +<!ENTITY ListofTables "List of Tables"> +<!ENTITY ListofUnknown "List of Unknown"> +<!ENTITY listofunknown "List of Unknown"> +<!ENTITY nav-home "Home"> +<!ENTITY nav-next "Next"> +<!ENTITY nav-next-sibling "Fast Forward"> +<!ENTITY nav-prev "Prev"> +<!ENTITY nav-prev-sibling "Fast Backward"> +<!ENTITY nav-up "Up"> +<!ENTITY nav-toc "ToC"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1es.dsl b/common/dbl1es.dsl new file mode 100644 index 0000000..7d69918 --- /dev/null +++ b/common/dbl1es.dsl @@ -0,0 +1,434 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % es.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ES" + "dbl1es.ent"> +%es.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-es"> +<style-specification-body> + +;; $Id: dbl1es.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (es-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (es-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "el &appendix; de nombre %t")) + (list (normalize "article") (string-append %gentext-es-start-quote% + "%t" + %gentext-es-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "el &chapter; de nombre %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "la §ion; de nombre %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-es-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (es-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (es-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-es-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (es-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-es-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (es-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-es-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-es-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-es-intra-label-sep) + (list)) + +(define (es-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-es-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-es-intra-label-sep))) + (sep (assoc name (es-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-es-label-title-sep) + (list)) + +(define (es-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-es-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-es-label-title-sep))) + (sep (assoc name (es-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (es-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (es-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (es-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (es-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-es$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (es-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-es-start-quote% (dingbat "ldquo")) + +(define %gentext-es-end-quote% (dingbat "rdquo")) + +(define %gentext-es-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-es-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-es-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-es-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-es-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-es-page% "") + +(define %gentext-es-and% "∧") + +(define %gentext-es-listcomma% "&listcomma;") + +(define %gentext-es-lastlistcomma% "&lastlistcomma;") + +(define %gentext-es-bibl-pages% "&Pgs;") + +(define %gentext-es-endnotes% "&Notes;") + +(define %gentext-es-table-endnotes% "&TableNotes;:") + +(define %gentext-es-index-see% "&See;") + +(define %gentext-es-index-seealso% "&SeeAlso;") + + +(define (gentext-es-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-es-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-es-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-es-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-es-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-es-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1es.ent b/common/dbl1es.ent new file mode 100644 index 0000000..3e1b7e0 --- /dev/null +++ b/common/dbl1es.ent @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Resumen"> +<!ENTITY abstract "resumen"> +<!ENTITY Answer "R:"> +<!ENTITY answer "r:"> +<!ENTITY Appendix "Ap\U-00E9;ndice"> +<!ENTITY appendix "ap\U-00E9;ndice"> +<!ENTITY Article "Art\U-00ED;culo"> +<!ENTITY article "art\U-00ED;culo"> +<!ENTITY Bibliography "Bibliograf\U-00ED;a"> +<!ENTITY bibliography "bibliograf\U-00ED;a"> +<!ENTITY Book "Libro"> +<!ENTITY book "libro"> +<!ENTITY CAUTION "ATENCI\U-00D3;N"> +<!ENTITY Caution "Atenci\U-00F3;n"> +<!ENTITY caution "atenci\U-00F3;n"> +<!ENTITY Chapter "Cap\U-00ED;tulo"> +<!ENTITY chapter "cap\U-00ED;tulo"> +<!ENTITY Colophon "Colof\U-00F3;n"> +<!ENTITY colophon "colof\U-00F3;n"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "copyright"> +<!ENTITY Dedication "Dedicatoria"> +<!ENTITY dedication "dedicatoria"> +<!ENTITY Edition "Edici\U-00F3;n"> +<!ENTITY edition "edici\U-00F3;n"> +<!ENTITY Equation "Ecuaci\U-00F3;n"> +<!ENTITY equation "ecuaci\U-00F3;n"> +<!ENTITY Example "Ejemplo"> +<!ENTITY example "ejemplo"> +<!ENTITY Figure "Figura"> +<!ENTITY figure "figura"> +<!ENTITY Glossary "Glosario"> +<!ENTITY glossary "glosario"> +<!ENTITY GlossSee "Ver"> +<!ENTITY glosssee "ver"> +<!ENTITY GlossSeeAlso "Ver tambi\U-00E9;n"> +<!ENTITY glossseealso "ver tambi\U-00E9;n"> +<!ENTITY IMPORTANT "IMPORTANTE"> +<!ENTITY Important "Importante"> +<!ENTITY important "importante"> +<!ENTITY Index "\U-00CD;ndice"> +<!ENTITY index "\U-00ED;ndice"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "isbn"> +<!ENTITY LegalNotice "Aviso Legal"> +<!ENTITY legalnotice "aviso legal"> +<!ENTITY MsgAud "Audiencia"> +<!ENTITY msgaud "audiencia"> +<!ENTITY MsgLevel "Nivel"> +<!ENTITY msglevel "nivel"> +<!ENTITY MsgOrig "Origen"> +<!ENTITY msgorig "origen"> +<!ENTITY NOTE "NOTA"> +<!ENTITY Note "Nota"> +<!ENTITY note "nota"> +<!ENTITY Part "Parte"> +<!ENTITY part "parte"> +<!ENTITY Preface "Prefacio"> +<!ENTITY preface "prefacio"> +<!ENTITY Procedure "Procedimiento"> +<!ENTITY procedure "procedimiento"> +<!ENTITY ProductionSet "Producci\U-00F3;n"> +<!ENTITY PubDate "Fecha de publicaci\U-00F3;n"> +<!ENTITY pubdate "fecha de publicaci\U-00F3;n"> +<!ENTITY Published "Publicado"> +<!ENTITY published "publicado"> +<!ENTITY Question "P:"> +<!ENTITY question "p:"> +<!ENTITY RefEntry "Entrada de referencia"> +<!ENTITY refentry "entrada de referencia"> +<!ENTITY Reference "Referencia"> +<!ENTITY reference "referencia"> +<!ENTITY RefName "Nombre de referencia"> +<!ENTITY refname "nombre de referencia"> +<!ENTITY RefSection "Secci\U-00F3;n de referencia"> +<!ENTITY refsection "secci\U-00F3;n de referencia"> +<!ENTITY RefSynopsisDiv "Sinopsis"> +<!ENTITY refsynopsisdiv "sinopsis"> +<!ENTITY RevHistory "Historial de revisiones"> +<!ENTITY revhistory "Historial de revisiones"> +<!ENTITY Revision "Revisi\U-00F3;n"> +<!ENTITY revision "revisi\U-00F3;n"> +<!ENTITY sect1 "Secci\U-00F3;n"> +<!ENTITY sect2 "Secci\U-00F3;n"> +<!ENTITY sect3 "Secci\U-00F3;n"> +<!ENTITY sect4 "Secci\U-00F3;n"> +<!ENTITY sect5 "Secci\U-00F3;n"> +<!ENTITY Section "Secci\U-00F3;n"> +<!ENTITY section "secci\U-00F3;n"> +<!ENTITY See "Ver"> +<!ENTITY see "ver"> +<!ENTITY SeeAlso "Ver Tambi\U-00E9;n"> +<!ENTITY Seealso "Ver tambi\U-00E9;n"> +<!ENTITY seealso "ver tambi\U-00E9;n"> +<!ENTITY Set "Conjunto"> +<!ENTITY set "conjunto"> +<!ENTITY SetIndex "\U-00CD;ndice del Conjunto"> +<!ENTITY setindex "\U-00ED;ndice del conjunto"> +<!ENTITY Sidebar "Barra lateral"> +<!ENTITY sidebar "barra lateral"> +<!ENTITY Step "Paso"> +<!ENTITY step "paso"> +<!ENTITY Table "Tabla"> +<!ENTITY table "tabla"> +<!ENTITY TIP "SUGERENCIA"> +<!ENTITY Tip "Sugerencia"> +<!ENTITY tip "sugerencia"> +<!ENTITY WARNING "AVISO"> +<!ENTITY Warning "Aviso"> +<!ENTITY warning "aviso"> +<!ENTITY and "y"> +<!ENTITY by "por"> +<!ENTITY Edited "Editado"> +<!ENTITY edited "editado"> +<!ENTITY Editedby "Editado por"> +<!ENTITY editedby "editado por"> +<!ENTITY in "en"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elemento inexistente"> +<!ENTITY notes "notas"> +<!ENTITY Notes "Notas"> +<!ENTITY Pgs "P\U-00E1;gs."> +<!ENTITY pgs "p\U-00E1;gs."> +<!ENTITY Revisedby "Revisado por: "> +<!ENTITY revisedby "revisado por: "> +<!ENTITY TableNotes "Notas de tabla"> +<!ENTITY tablenotes "notas de tabla"> +<!ENTITY TableofContents "Tabla de contenidos"> +<!ENTITY tableofcontents "tabla de contenidos"> +<!ENTITY unexpectedelementname "nombre de elemento inesperado"> +<!ENTITY unsupported "no soportado"> +<!ENTITY xrefto "referencia a"> +<!ENTITY listofequations "lista de ecuaciones"> +<!ENTITY ListofEquations "Lista de ecuaciones"> +<!ENTITY ListofExamples "Lista de ejemplos"> +<!ENTITY listofexamples "lista de ejemplos"> +<!ENTITY ListofFigures "Lista de figuras"> +<!ENTITY listoffigures "lista de figuras"> +<!ENTITY listoftables "lista de tablas"> +<!ENTITY ListofTables "Lista de tablas"> +<!ENTITY ListofUnknown "Lista de desconocido"> +<!ENTITY listofunknown "lista de desconocido"> +<!ENTITY nav-home "Inicio"> +<!ENTITY nav-next "Siguiente"> +<!ENTITY nav-next-sibling "Avanzar"> +<!ENTITY nav-prev "Anterior"> +<!ENTITY nav-prev-sibling "Retroceder"> +<!ENTITY nav-up "Subir"> +<!ENTITY Draft "Borrador"> +<!ENTITY above "arriba"> +<!ENTITY below "abajo"> +<!ENTITY sectioncalled "secci\U-00F3;n llamada"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00E1;\U-00E9;\U-00ED;\U-00F3;\U-00FA;\U-00F1;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00C1;\U-00C9;\U-00CD;\U-00D3;\U-00DA;\U-00D1;"> diff --git a/common/dbl1et.dsl b/common/dbl1et.dsl new file mode 100644 index 0000000..5a75101 --- /dev/null +++ b/common/dbl1et.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % et.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ET" + "dbl1et.ent"> +%et.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-et"> +<style-specification-body> + +;; $Id: dbl1et.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (et-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (et-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; %t")) + (list (normalize "article") (string-append %gentext-et-start-quote% + "%t" + %gentext-et-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-et-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (et-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (et-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-et-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (et-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-et-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (et-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-et-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-et-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-et-intra-label-sep) + (list)) + +(define (et-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-et-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (et-intra-label-sep))) + (sep (assoc name (en-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-et-label-title-sep) + (list)) + +(define (et-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-et-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-et-label-title-sep))) + (sep (assoc name (et-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (et-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (et-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (et-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (et-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-et$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (et-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-et-start-quote% (dingbat "ldquo")) + +(define %gentext-et-end-quote% (dingbat "rdquo")) + +(define %gentext-et-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-et-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-et-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-et-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-et-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-et-page% "") + +(define %gentext-et-and% "∧") + +(define %gentext-et-listcomma% "&listcomma;") + +(define %gentext-et-lastlistcomma% "&lastlistcomma;") + +(define %gentext-et-bibl-pages% "&Pgs;") + +(define %gentext-et-endnotes% "&Notes;") + +(define %gentext-et-table-endnotes% "&TableNotes;:") + +(define %gentext-et-index-see% "&See;") + +(define %gentext-et-index-seealso% "&SeeAlso;") + + +(define (gentext-et-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-et-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-et-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-et-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-et-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-et-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1et.ent b/common/dbl1et.ent new file mode 100644 index 0000000..b325fce --- /dev/null +++ b/common/dbl1et.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-00DC;levaade"> +<!ENTITY abstract "\U-00DC;levaade"> +<!ENTITY Answer "V:"> +<!ENTITY answer "V:"> +<!ENTITY Appendix "Lisa"> +<!ENTITY appendix "lisa"> +<!ENTITY Article "Artikkel"> +<!ENTITY article "Artikkel"> +<!ENTITY Bibliography "Bibliograafia"> +<!ENTITY bibliography "Bibliograafia"> +<!ENTITY Book "Raamat"> +<!ENTITY book "Raamat"> +<!ENTITY CAUTION "ETTEVAATUST"> +<!ENTITY Caution "Ettevaatust"> +<!ENTITY caution "Ettevaatust"> +<!ENTITY Chapter "Peat\U-00FC;kk"> +<!ENTITY chapter "peat\U-00FC;kk"> +<!ENTITY Colophon "L\U-00F5;pum\U-00E4;rgis"> +<!ENTITY colophon "L\U-00F5;pum\U-00E4;rgis"> +<!ENTITY Copyright "Autori\U-00F5;igus"> +<!ENTITY copyright "Autori\U-00F5;igus"> +<!ENTITY Dedication "P\U-00FC;hendus"> +<!ENTITY dedication "P\U-00FC;hendus"> +<!ENTITY Edition "V\U-00E4;ljaanne"> +<!ENTITY edition "V\U-00E4;ljaanne"> +<!ENTITY Equation "Valem"> +<!ENTITY equation "Valem"> +<!ENTITY Example "N\U-00E4;ide"> +<!ENTITY example "N\U-00E4;ide"> +<!ENTITY Figure "Joonis"> +<!ENTITY figure "Joonis"> +<!ENTITY Glossary "S\U-00F5;nastik"> +<!ENTITY glossary "S\U-00F5;nastik"> +<!ENTITY GlossSee "Vt."> +<!ENTITY glosssee "Vt."> +<!ENTITY GlossSeeAlso "Vt. ka"> +<!ENTITY glossseealso "Vt. ka"> +<!ENTITY IMPORTANT "OLULINE"> +<!ENTITY Important "Oluline"> +<!ENTITY important "Oluline"> +<!ENTITY Index "Aineregister"> +<!ENTITY index "Aineregister"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Autori\U-00F5;iguse m\U-00E4;rge"> +<!ENTITY legalnotice "Autori\U-00F5;iguse m\U-00E4;rge"> +<!ENTITY MsgAud "Auditoorium"> +<!ENTITY msgaud "Auditoorium"> +<!ENTITY MsgLevel "Tase"> +<!ENTITY msglevel "Tase"> +<!ENTITY MsgOrig "Algallikas"> +<!ENTITY msgorig "Algallikas"> +<!ENTITY NOTE "M\U-00C4;RKUS"> +<!ENTITY Note "M\U-00E4;rkus"> +<!ENTITY note "M\U-00E4;rkus"> +<!ENTITY Part "Osa"> +<!ENTITY part "Osa"> +<!ENTITY Preface "Eess\U-00F5;na"> +<!ENTITY preface "Eess\U-00F5;na"> +<!ENTITY Procedure "Protseduur"> +<!ENTITY procedure "Protseduur"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Avaldatud"> +<!ENTITY published "Avaldatud"> +<!ENTITY Question "K:"> +<!ENTITY question "K:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Viide"> +<!ENTITY reference "Viide"> +<!ENTITY RefName "Nimi"> +<!ENTITY refname "Nimi"> +<!ENTITY RefSection "L\U-00F5;ik"> +<!ENTITY refsection "L\U-00F5;ik"> +<!ENTITY RefSynopsisDiv "S\U-00FC;nopsis"> +<!ENTITY refsynopsisdiv "S\U-00FC;nopsis"> +<!ENTITY RevHistory "Vigade paranduste ajalugu"> +<!ENTITY revhistory "Vigade paranduste ajalugu"> +<!ENTITY Revision "Vigade parandus"> +<!ENTITY revision "Vigade parandus"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY section "l\U-00F5;ik"> +<!ENTITY Section "Sektsioon"> +<!ENTITY See "Vt."> +<!ENTITY see "Vt."> +<!ENTITY SeeAlso "Vt. ka"> +<!ENTITY Seealso "Vt. ka"> +<!ENTITY seealso "Vt. ka"> +<!ENTITY Set "Sea"> +<!ENTITY set "Sea"> +<!ENTITY SetIndex "Sea indeks"> +<!ENTITY setindex "Sea indeks"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "k\U-00FC;lgriba"> +<!ENTITY Step "Samm"> +<!ENTITY step "samm"> +<!ENTITY Table "Tabel"> +<!ENTITY table "Tabel"> +<!ENTITY TIP "VIHJE"> +<!ENTITY Tip "Vihje"> +<!ENTITY tip "Vihje"> +<!ENTITY WARNING "HOIATUS"> +<!ENTITY Warning "Hoiatus"> +<!ENTITY warning "Hoiatus"> +<!ENTITY and "ja"> +<!ENTITY by ""> +<!ENTITY Edited "Redaktsioon"> +<!ENTITY edited "Redaktsioon"> +<!ENTITY Editedby "Redaktsiooni autor(id)"> +<!ENTITY editedby "Redaktsiooni autor(id)"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "mitte eksisteeriv element"> +<!ENTITY Notes "M\U-00E4;rkused"> +<!ENTITY notes "M\U-00E4;rkused"> +<!ENTITY Pgs "Lk."> +<!ENTITY pgs "Lk."> +<!ENTITY Revisedby "\U-00DC;le vaadanud: "> +<!ENTITY revisedby "\U-00DC;le vaadanud: "> +<!ENTITY TableNotes "M\U-00E4;rkused"> +<!ENTITY tablenotes "M\U-00E4;rkused"> +<!ENTITY TableofContents "Sisukord"> +<!ENTITY tableofcontents "Sisukord"> +<!ENTITY unexpectedelementname "Ootamatu elemendi nimi"> +<!ENTITY unsupported "toetuseta"> +<!ENTITY xrefto "viide"> +<!ENTITY listofequations "Valemite nimekiri"> +<!ENTITY ListofEquations "Valemite nimekiri"> +<!ENTITY ListofExamples "N\U-00E4;idete nimekiri"> +<!ENTITY listofexamples "N\U-00E4;idete nimekiri"> +<!ENTITY ListofFigures "Jooniste nimekiri"> +<!ENTITY listoffigures "Jooniste nimekiri"> +<!ENTITY listoftables "Tabelite nimekiri"> +<!ENTITY ListofTables "Tabelite nimekiri"> +<!ENTITY ListofUnknown "Tundmatute nimekiri"> +<!ENTITY listofunknown "Tundmatute nimekiri"> +<!ENTITY nav-home "Koju"> +<!ENTITY nav-next "J\U-00E4;rgmine"> +<!ENTITY nav-next-sibling "Kiiresti edasi"> +<!ENTITY nav-prev "Eelmine"> +<!ENTITY nav-prev-sibling "Kiiresti tagasi"> +<!ENTITY nav-up "\U-00DC;les"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1eu.dsl b/common/dbl1eu.dsl new file mode 100644 index 0000000..4d38398 --- /dev/null +++ b/common/dbl1eu.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % eu.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EU" + "dbl1eu.ent"> +%eu.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-eu"> +<style-specification-body> + +;; $Id: dbl1eu.dsl,v 1.1 2001/11/14 20:57:53 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (eu-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (eu-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-eu-start-quote% + "%t" + %gentext-eu-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-eu-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (eu-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (eu-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-eu-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (eu-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-eu-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (eu-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-eu-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-eu-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-eu-intra-label-sep) + (list)) + +(define (eu-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-eu-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-eu-intra-label-sep))) + (sep (assoc name (eu-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-eu-label-title-sep) + (list)) + +(define (eu-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-eu-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-eu-label-title-sep))) + (sep (assoc name (eu-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (eu-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (eu-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (eu-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (eu-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-eu$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (eu-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-eu-start-quote% (dingbat "ldquo")) + +(define %gentext-eu-end-quote% (dingbat "rdquo")) + +(define %gentext-eu-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-eu-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-eu-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-eu-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-eu-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-eu-page% "") + +(define %gentext-eu-and% "∧") + +(define %gentext-eu-listcomma% "&listcomma;") + +(define %gentext-eu-lastlistcomma% "&lastlistcomma;") + +(define %gentext-eu-bibl-pages% "&Pgs;") + +(define %gentext-eu-endnotes% "&Notes;") + +(define %gentext-eu-table-endnotes% "&TableNotes;:") + +(define %gentext-eu-index-see% "&See;") + +(define %gentext-eu-index-seealso% "&SeeAlso;") + + +(define (gentext-eu-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-eu-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-eu-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-eu-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-eu-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-eu-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1eu.ent b/common/dbl1eu.ent new file mode 100644 index 0000000..522b938 --- /dev/null +++ b/common/dbl1eu.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Laburpena"> +<!ENTITY abstract "Laburpena"> +<!ENTITY Answer "E:"> +<!ENTITY answer "E:"> +<!ENTITY Appendix "Eranskina"> +<!ENTITY appendix "eranskina"> +<!ENTITY Article "Artikulua"> +<!ENTITY article "Artikulua"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Liburua"> +<!ENTITY book "Liburua"> +<!ENTITY CAUTION "KONTUZ"> +<!ENTITY Caution "Kontuz"> +<!ENTITY caution "Kontuz"> +<!ENTITY Chapter "Atala"> +<!ENTITY chapter "atala"> +<!ENTITY Colophon "Azken ohar"> +<!ENTITY colophon "Azken ohar"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Eskaintza"> +<!ENTITY dedication "Eskaintza"> +<!ENTITY Edition "Edizioa"> +<!ENTITY edition "Edizioa"> +<!ENTITY Equation "Ekuazioa"> +<!ENTITY equation "Ekuazioa"> +<!ENTITY Example "Adibidea"> +<!ENTITY example "Adibidea"> +<!ENTITY Figure "Irudia"> +<!ENTITY figure "Irudia"> +<!ENTITY Glossary "Glosarioa"> +<!ENTITY glossary "Glosarioa"> +<!ENTITY GlossSee "Ikus"> +<!ENTITY glosssee "Ikus"> +<!ENTITY GlossSeeAlso "Ikus baita ere"> +<!ENTITY glossseealso "Ikus baita ere"> +<!ENTITY IMPORTANT "GARRANTZITSUA"> +<!ENTITY important "Garrantzitsua"> +<!ENTITY Important "Garrantzitsua"> +<!ENTITY Index "Indizea"> +<!ENTITY index "Indizea"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Legezko abisua"> +<!ENTITY legalnotice "Legezko abisua"> +<!ENTITY MsgAud "Audientzia"> +<!ENTITY msgaud "Audientzia"> +<!ENTITY MsgLevel "Maila"> +<!ENTITY msglevel "Maila"> +<!ENTITY MsgOrig "Jatorria"> +<!ENTITY msgorig "Jatorria"> +<!ENTITY NOTE "OHARRA"> +<!ENTITY Note "Oharra"> +<!ENTITY note "Oharra"> +<!ENTITY Part "Zatia"> +<!ENTITY part "Zatia"> +<!ENTITY Preface "Hitzaurrea"> +<!ENTITY preface "Hitzaurrea"> +<!ENTITY Procedure "Prozedura"> +<!ENTITY procedure "Prozedura"> +<!ENTITY ProductionSet "Ekoizpena"> +<!ENTITY Published "Argitaratua"> +<!ENTITY published "Argitaratua"> +<!ENTITY Question "Galdera"> +<!ENTITY question "galdera"> +<!ENTITY RefEntry "Sarrera"> +<!ENTITY refentry "Sarrera"> +<!ENTITY Reference "Erreferentzia"> +<!ENTITY reference "Erreferentzia"> +<!ENTITY RefName "Izena"> +<!ENTITY refname "Izena"> +<!ENTITY RefSection "Sekzioa"> +<!ENTITY refsection "sekzioa"> +<!ENTITY RefSynopsisDiv "Laburpena"> +<!ENTITY refsynopsisdiv "Laburpena"> +<!ENTITY RevHistory "Berrikuspenaren historia"> +<!ENTITY revhistory "Berrikuspenaren historia"> +<!ENTITY revision "Berrikuspena"> +<!ENTITY Revision "Berrikuspena"> +<!ENTITY sect1 "Atala"> +<!ENTITY sect2 "Atala"> +<!ENTITY sect3 "Atala"> +<!ENTITY sect4 "Atala"> +<!ENTITY sect5 "Atala"> +<!ENTITY section "Atala"> +<!ENTITY Section "Atala"> +<!ENTITY See "Ikus"> +<!ENTITY see "Ikus"> +<!ENTITY SeeAlso "Ikus baita ere"> +<!ENTITY seealso "Ikus baita ere"> +<!ENTITY Seealso "Ikus baita ere"> +<!ENTITY set "Konfiguratu"> +<!ENTITY Set "Konfiguratu"> +<!ENTITY setindex "Konfiguratu indizea"> +<!ENTITY SetIndex "Konfiguratu indizea"> +<!ENTITY Sidebar "Alboko barra"> +<!ENTITY sidebar "alboko barra"> +<!ENTITY step "urratsa"> +<!ENTITY Step "Urratsa"> +<!ENTITY Table "Taula"> +<!ENTITY table "Taula"> +<!ENTITY tip "Iradokizuna"> +<!ENTITY TIP "IRADOKIZUNA"> +<!ENTITY Tip "Iradokizuna"> +<!ENTITY Warning "Abisua"> +<!ENTITY warning "Abisua"> +<!ENTITY WARNING "ABISUA"> +<!ENTITY and "eta"> +<!ENTITY by "Honek"> +<!ENTITY Edited "editatua"> +<!ENTITY edited "editatua"> +<!ENTITY Editedby "Honek editatua"> +<!ENTITY editedby "Honek editatua"> +<!ENTITY in "non"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "lehendik ez dagoen elementua"> +<!ENTITY notes "Oharrak"> +<!ENTITY Notes "Oharrak"> +<!ENTITY Pgs "Orr."> +<!ENTITY pgs "Orr."> +<!ENTITY Revisedby "Berrikuspena: "> +<!ENTITY revisedby "Berrikuspena: "> +<!ENTITY TableNotes "Oharrak"> +<!ENTITY tablenotes "Oharrak"> +<!ENTITY TableofContents "Edukien aurkibidea"> +<!ENTITY tableofcontents "Edukien aurkibidea"> +<!ENTITY unexpectedelementname "Ustekabeko elemetu-izena"> +<!ENTITY unsupported "onartzen ez den"> +<!ENTITY xrefto "xref honi"> +<!ENTITY listofequations "Ekuazioen zerrenda"> +<!ENTITY ListofEquations "Ekuazioen zerrenda"> +<!ENTITY ListofExamples "Adibideen zerrenda"> +<!ENTITY listofexamples "Adibideen zerrenda"> +<!ENTITY ListofFigures "Irudien zerrenda"> +<!ENTITY listoffigures "Irudien zerrenda"> +<!ENTITY listoftables "Taulen zerrenda"> +<!ENTITY ListofTables "Taulen zerrenda"> +<!ENTITY ListofUnknown "Ezezagunen zerrenda"> +<!ENTITY listofunknown "Ezazagunen zerrenda"> +<!ENTITY nav-home "Etxea"> +<!ENTITY nav-next "Hurrengoa"> +<!ENTITY nav-next-sibling "Aurreratze azkarra"> +<!ENTITY nav-prev "Aurrekoa"> +<!ENTITY nav-prev-sibling "Atzeratze azkarra"> +<!ENTITY nav-up "Gora"> +<!ENTITY sectioncalled "honela deritzon atala"> +<!ENTITY Draft "Zirriborroa"> +<!ENTITY above "goian"> +<!ENTITY below "behean"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1fi.dsl b/common/dbl1fi.dsl new file mode 100644 index 0000000..e69031c --- /dev/null +++ b/common/dbl1fi.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % fi.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FI" + "dbl1fi.ent"> +%fi.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-fi"> +<style-specification-body> + +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (fi-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (fi-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "%t")) + (list (normalize "article") (string-append %gentext-fi-start-quote% + "%t" + %gentext-fi-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "%t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "%t")) + (list (normalize "sidebar") "%t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-fi-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (fi-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (fi-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-fi-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (fi-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-fi-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (fi-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-fi-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-fi-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-fi-intra-label-sep) + (list)) + +(define (fi-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-fi-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-fi-intra-label-sep))) + (sep (assoc name (fi-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-fi-label-title-sep) + (list)) + +(define (fi-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-fi-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-fi-label-title-sep))) + (sep (assoc name (fi-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (fi-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (fi-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (fi-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (fi-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-fi$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (fi-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-fi-start-quote% (dingbat "ldquo")) + +(define %gentext-fi-end-quote% (dingbat "rdquo")) + +(define %gentext-fi-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-fi-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-fi-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-fi-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-fi-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-fi-page% "") + +(define %gentext-fi-and% "∧") + +(define %gentext-fi-listcomma% "&listcomma;") + +(define %gentext-fi-lastlistcomma% "&lastlistcomma;") + +(define %gentext-fi-bibl-pages% "&Pgs;") + +(define %gentext-fi-endnotes% "&Notes;") + +(define %gentext-fi-table-endnotes% "&TableNotes;:") + +(define %gentext-fi-index-see% "&See;") + +(define %gentext-fi-index-seealso% "&SeeAlso;") + + +(define (gentext-fi-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-fi-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-fi-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-fi-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-fi-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-fi-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1fi.ent b/common/dbl1fi.ent new file mode 100644 index 0000000..ab4fc67 --- /dev/null +++ b/common/dbl1fi.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Lyhennelm\U-00E4;"> +<!ENTITY abstract "Lyhennelm\U-00E4;"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Liite"> +<!ENTITY appendix "liite"> +<!ENTITY Article "Artikkeli"> +<!ENTITY article "Artikkeli"> +<!ENTITY Bibliography "L\U-00E4;hteet"> +<!ENTITY bibliography "L\U-00E4;hteet"> +<!ENTITY Book "Kirja"> +<!ENTITY book "Kirja"> +<!ENTITY CAUTION "VARO"> +<!ENTITY Caution "Varo"> +<!ENTITY caution "Varo"> +<!ENTITY Chapter "Luku"> +<!ENTITY chapter "luku"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Omistus"> +<!ENTITY dedication "Omistus"> +<!ENTITY Edition "Edition"> +<!ENTITY edition "Edition"> +<!ENTITY Equation "Kaava"> +<!ENTITY equation "Kaava"> +<!ENTITY Example "Esimerkki"> +<!ENTITY example "Esimerkki"> +<!ENTITY Figure "Kuva"> +<!ENTITY figure "Kuva"> +<!ENTITY Glossary "Sanasto"> +<!ENTITY glossary "Sanasto"> +<!ENTITY GlossSee "Katso"> +<!ENTITY glosssee "Katso"> +<!ENTITY GlossSeeAlso "Katso my\U-00F6;s"> +<!ENTITY glossseealso "Katso my\U-00F6;s"> +<!ENTITY IMPORTANT "T\U-00C4;RKE\U-00C4;\U-00C4;"> +<!ENTITY Important "T\U-00E4;rke\U-00E4;\U-00E4;"> +<!ENTITY important "T\U-00E4;rke\U-00E4;\U-00E4;"> +<!ENTITY Index "Indeksi"> +<!ENTITY index "Indeksi"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud "Yleis\U-00F6;"> +<!ENTITY msgaud "Yleis\U-00F6;"> +<!ENTITY MsgLevel "Taso"> +<!ENTITY msglevel "Taso"> +<!ENTITY MsgOrig "Alkuper\U-00E4;"> +<!ENTITY msgorig "Alkuper\U-00E4;"> +<!ENTITY NOTE "HUOMAA"> +<!ENTITY Note "Huomaa"> +<!ENTITY note "Huomaa"> +<!ENTITY Part "Osa"> +<!ENTITY part "Osa"> +<!ENTITY Preface "Esipuhe"> +<!ENTITY preface "Esipuhe"> +<!ENTITY Procedure "Aliohjelma"> +<!ENTITY procedure "Aliohjelma"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Julkaistu"> +<!ENTITY published "Julkaistu"> +<!ENTITY Question "Q:"> +<!ENTITY question "Q:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "L\U-00E4;hdeluettelo"> +<!ENTITY reference "L\U-00E4;hdeluettelo"> +<!ENTITY RefName "Nimi"> +<!ENTITY refname "Nimi"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Versiohistoria"> +<!ENTITY revhistory "Versiohistoria"> +<!ENTITY Revision "Versio"> +<!ENTITY revision "Versio"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Kohta"> +<!ENTITY section "kohta"> +<!ENTITY See "Katso"> +<!ENTITY see "Katso"> +<!ENTITY SeeAlso "Katso my\U-00F6;s"> +<!ENTITY Seealso "Katso my\U-00F6;s"> +<!ENTITY seealso "Katso my\U-00F6;s"> +<!ENTITY Set "Kokoelma"> +<!ENTITY set "Kokoelma"> +<!ENTITY SetIndex "Kokoelman indeksi"> +<!ENTITY setindex "Kokoelman indeksi"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sivupalkki"> +<!ENTITY Step "Step"> +<!ENTITY step "step"> +<!ENTITY Table "Taulu"> +<!ENTITY table "Taulu"> +<!ENTITY TIP "VIHJE"> +<!ENTITY Tip "Vihje"> +<!ENTITY tip "Vihje"> +<!ENTITY WARNING "VAROITUS"> +<!ENTITY Warning "Varoitus"> +<!ENTITY warning "Varoitus"> +<!ENTITY and "ja"> +<!ENTITY by ""> +<!ENTITY Edited "Toim."> +<!ENTITY edited "Toim."> +<!ENTITY Editedby "Toimittanut"> +<!ENTITY editedby "Toimittanut"> +<!ENTITY in "teoksessa"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elementti\U-00E4; ei ole olemassa"> +<!ENTITY notes ""> +<!ENTITY Notes ""> +<!ENTITY Pgs "Sivut"> +<!ENTITY pgs "Sivut"> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes ""> +<!ENTITY tablenotes ""> +<!ENTITY TableofContents "Sis\U-00E4;llys"> +<!ENTITY tableofcontents "Sis\U-00E4;llys"> +<!ENTITY unexpectedelementname "Odottamaton elementin nimi"> +<!ENTITY unsupported "ei tueta"> +<!ENTITY xrefto "xref johonkin"> +<!ENTITY listofequations "Luettelo esimerkeist\U-00E4;"> +<!ENTITY ListofEquations "Luettelo esimerkeist\U-00E4;"> +<!ENTITY ListofExamples "Luettelo esimerkeist\U-00E4;"> +<!ENTITY listofexamples "Luettelo esimerkeist\U-00E4;"> +<!ENTITY ListofFigures "Luettelo kuvista"> +<!ENTITY listoffigures "Luettelo kuvista"> +<!ENTITY listoftables "Luettelo tauluista"> +<!ENTITY ListofTables "Luettelo tauluista"> +<!ENTITY ListofUnknown "Luettelo tuntemattomista"> +<!ENTITY listofunknown "Luettelo tuntemattomista"> +<!ENTITY nav-home "Alkuun"> +<!ENTITY nav-next "Seuraava"> +<!ENTITY nav-next-sibling "Nopeasti eteenp\U-00E4;in"> +<!ENTITY nav-prev "Edellinen"> +<!ENTITY nav-prev-sibling "Nopeasti taaksep\U-00E4;in"> +<!ENTITY nav-up "Yl\U-00F6;s"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1fr.dsl b/common/dbl1fr.dsl new file mode 100644 index 0000000..381c099 --- /dev/null +++ b/common/dbl1fr.dsl @@ -0,0 +1,436 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % fr.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FR" + "dbl1fr.ent"> +%fr.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-fr"> +<style-specification-body> + +;; $Id: dbl1fr.dsl,v 1.3 2002/02/20 16:32:35 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Rainer Feuerstein, fire@informatik.uni-wuerzburg.de +;; Christian Leutloff, leutloff@sundancer.oche.de +;; Eric Bischoff, e.bischoff@noos.fr +;; Frederik Fouvry, fouvry@CoLi.Uni-SB.DE + +(define (fr-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (fr-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "l'annexe intitulée %t")) + (list (normalize "article") (string-append %gentext-fr-start-quote% + "%t" + %gentext-fr-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "le chapitre intitulé %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "la section intitulée %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-fr-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (fr-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (fr-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-fr-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (fr-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-fr-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (fr-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-fr-element-name : &unexpectedelementname; : " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-fr-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-fr-intra-label-sep) + (list)) + +(define (fr-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-fr-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-fr-intra-label-sep))) + (sep (assoc name (fr-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-fr-label-title-sep) + (list)) + +(define (fr-label-title-sep) + (list + (list (normalize "abstract") "\U-00A0;: ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") "\U-00A0;: ") + (list (normalize "glossseealso") "\U-00A0;: ") + (list (normalize "important") "\U-00A0;: ") + (list (normalize "note") "\U-00A0;: ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") "\U-00A0;: ") + (list (normalize "warning") "") + )) + +(define (gentext-fr-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-fr-label-title-sep))) + (sep (assoc name (fr-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (fr-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (fr-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (fr-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (fr-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-fr$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (fr-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;\U-00A0;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + ; nbsp; +(define %gentext-fr-start-quote% (string-append (dingbat "laquo") "\U-00A0;")) + +(define %gentext-fr-end-quote% (string-append "\U-00A0;" (dingbat "raquo"))) + +(define %gentext-fr-start-nested-quote% (string-append (dingbat "lsaquo") "\U-00A0;")) + +(define %gentext-fr-end-nested-quote% (string-append (dingbat "rsaquo") "\U-00A0;")) + +(define %gentext-fr-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-fr-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-fr-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-fr-page% "") + +(define %gentext-fr-and% "∧") + +(define %gentext-fr-listcomma% "&listcomma;") + +(define %gentext-fr-lastlistcomma% "&lastlistcomma;") + +(define %gentext-fr-bibl-pages% "&Pgs;") + +(define %gentext-fr-endnotes% "&Notes;") + +(define %gentext-fr-table-endnotes% "&TableNotes;\U-00A0;:") + +(define %gentext-fr-index-see% "&See;") + +(define %gentext-fr-index-seealso% "&SeeAlso;") + +(define (gentext-fr-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-fr-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-fr-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-fr-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-fr-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-fr-nav-home home) + (make sequence (literal "&nav-home;"))) + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1fr.ent b/common/dbl1fr.ent new file mode 100644 index 0000000..c22f22e --- /dev/null +++ b/common/dbl1fr.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "R\U-00E9;sum\U-00E9;"> +<!ENTITY abstract "R\U-00E9;sum\U-00E9;"> +<!ENTITY Answer "R\U-00A0;:"> +<!ENTITY answer "R\U-00A0;:"> +<!ENTITY Appendix "Annexe"> +<!ENTITY appendix "annexe"> +<!ENTITY Article "Article"> +<!ENTITY article "Article"> +<!ENTITY Bibliography "Bibliographie"> +<!ENTITY bibliography "Bibliographie"> +<!ENTITY Book "Livre"> +<!ENTITY book "Livre"> +<!ENTITY Caution "Attention"> +<!ENTITY caution "Attention"> +<!ENTITY CAUTION "ATTENTION"> +<!ENTITY Chapter "Chapitre"> +<!ENTITY chapter "chapitre"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "D\U-00E9;dicace"> +<!ENTITY dedication "D\U-00E9;dicace"> +<!ENTITY Edition "\U-00C9;dition"> +<!ENTITY edition "\U-00C9;dition"> +<!ENTITY Equation "\U-00C9;quation"> +<!ENTITY equation "\U-00C9;quation"> +<!ENTITY Example "Exemple"> +<!ENTITY example "Exemple"> +<!ENTITY Figure "Figure"> +<!ENTITY figure "Figure"> +<!ENTITY Glossary "Glossaire"> +<!ENTITY glossary "Glossaire"> +<!ENTITY GlossSee "Voir"> +<!ENTITY glosssee "Voir"> +<!ENTITY GlossSeeAlso "Voir aussi"> +<!ENTITY glossseealso "Voir aussi"> +<!ENTITY IMPORTANT "IMPORTANT"> +<!ENTITY important "Important"> +<!ENTITY Important "Important"> +<!ENTITY Index "Index"> +<!ENTITY index "Index"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Note l\U-00E9;gale"> +<!ENTITY legalnotice "Note l\U-00E9;gale"> +<!ENTITY MsgAud "Public vis\U-00E9;"> +<!ENTITY msgaud "Public vis\U-00E9;"> +<!ENTITY MsgLevel "Niveau"> +<!ENTITY msglevel "Niveau"> +<!ENTITY MsgOrig "Origine"> +<!ENTITY msgorig "Origine"> +<!ENTITY NOTE "NOTE"> +<!ENTITY Note "Note"> +<!ENTITY note "Note"> +<!ENTITY Part "Partie"> +<!ENTITY part "Partie"> +<!ENTITY Preface "Pr\U-00E9;face"> +<!ENTITY preface "Pr\U-00E9;face"> +<!ENTITY Procedure "Proc\U-00E9;dure"> +<!ENTITY procedure "Proc\U-00E9;dure"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "Date de publication"> +<!ENTITY pubdate "Date de publication"> +<!ENTITY Published "Publi\U-00E9;"> +<!ENTITY published "Publi\U-00E9;"> +<!ENTITY Qandadiv "Q & R"> +<!ENTITY qandadiv "Q & R"> +<!ENTITY Question "Q\U-00A0;:"> +<!ENTITY question "Q\U-00A0;:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "R\U-00E9;f\U-00E9;rence"> +<!ENTITY reference "R\U-00E9;f\U-00E9;rence"> +<!ENTITY RefName "Nom"> +<!ENTITY refname "Nom"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Historique des versions"> +<!ENTITY revhistory "Historique des versions"> +<!ENTITY Revision "Version"> +<!ENTITY revision "Version"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY section "section"> +<!ENTITY Section "Section"> +<!ENTITY see "voir"> +<!ENTITY See "Voir"> +<!ENTITY seealso "voir aussi"> +<!ENTITY Seealso "Voir aussi"> +<!ENTITY SeeAlso "Voir Aussi"> +<!ENTITY set "Ensemble"> +<!ENTITY Set "Ensemble"> +<!ENTITY setindex "Index"> +<!ENTITY SetIndex "Index"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar ""> +<!ENTITY step "\U-00E9;tape"> +<!ENTITY Step "\U-00C9;tape"> +<!ENTITY Table "Tableau"> +<!ENTITY table "Tableau"> +<!ENTITY tip "ASTUCE"> +<!ENTITY TIP "ASTUCE"> +<!ENTITY Tip "Astuce"> +<!ENTITY Warning "Avertissement"> +<!ENTITY WARNING "AVERTISSEMENT"> +<!ENTITY warning "AVERTISSEMENT"> +<!ENTITY and "et"> +<!ENTITY by "par"> +<!ENTITY called "intitul\U-00E9;"> +<!ENTITY Edited "Publi\U-00E9;"> +<!ENTITY edited "Publi\U-00E9;"> +<!ENTITY Editedby "Publi\U-00E9; par"> +<!ENTITY editedby "Publi\U-00E9; par"> +<!ENTITY in "dans"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "Cet \U-00E9;l\U-00E9;ment n'existe pas"> +<!ENTITY notes "Notes"> +<!ENTITY Notes "Notes"> +<!ENTITY Pgs "Pages"> +<!ENTITY pgs "Pages"> +<!ENTITY Revisedby "Revu par\U-00A0;: "> +<!ENTITY revisedby "Revu par\U-00A0;: "> +<!ENTITY TableNotes "Remarques"> +<!ENTITY tablenotes "Remarques"> +<!ENTITY TableofContents "Table des mati\U-00E8;res"> +<!ENTITY tableofcontents "Table des mati\U-00E8;res"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Nom d'\U-00E9;l\U-00E9;ment non attendu"> +<!ENTITY unsupported "Non reconnu par le syst\U-00E8;me"> +<!ENTITY xrefto "R\U-00E9;f\U-00E9;rence vers"> +<!ENTITY listofequations "Liste des \U-00E9;quations"> +<!ENTITY ListofEquations "Liste des \U-00E9;quations"> +<!ENTITY ListofExamples "Liste des exemples"> +<!ENTITY listofexamples "Liste des exemples"> +<!ENTITY ListofFigures "Liste des illustrations"> +<!ENTITY listoffigures "Liste des illustrations"> +<!ENTITY ListofProcedures "Liste des proc\U-00E9;dures"> +<!ENTITY listofprocedures "Liste des proc\U-00E9;dures"> +<!ENTITY listoftables "Liste des tableaux"> +<!ENTITY ListofTables "Liste des tableaux"> +<!ENTITY ListofUnknown "Liste des inconnues"> +<!ENTITY listofunknown "Liste des inconnues"> +<!ENTITY nav-home "Sommaire"> +<!ENTITY nav-next "Suivant"> +<!ENTITY nav-next-sibling "Avance rapide"> +<!ENTITY nav-prev "Pr\U-00E9;c\U-00E9;dent"> +<!ENTITY nav-prev-sibling "Arri\U-00E8;re rapide"> +<!ENTITY nav-up "Niveau sup\U-00E9;rieur"> +<!ENTITY nav-toc "TdM"> +<!ENTITY Draft "Brouillon"> +<!ENTITY above "au dessus"> +<!ENTITY below "au dessous"> +<!ENTITY sectioncalled "la section intitul\U-00E9;e"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00E2;\U-00EA;\U-00EE;\U-00F4;\U-00FB;\U-00EB;\U-00EF;\U-00FC;\U-00E0;\U-00E8;\U-00F9;\U-00E9;\U-00E7;\U-00E6;\U-0153;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00C2;\U-00CA;\U-00CE;\U-00D4;\U-00DB;\U-00CB;\U-00CF;\U-00DC;\U-00C0;\U-00C8;\U-00D9;\U-00C9;\U-00C7;\U-00C6;\U-0152;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1hu.dsl b/common/dbl1hu.dsl new file mode 100644 index 0000000..180bdb3 --- /dev/null +++ b/common/dbl1hu.dsl @@ -0,0 +1,447 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % hu.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//HU" + "dbl1hu.ent"> +%hu.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-hu"> +<style-specification-body> + +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Hojtsy Gabor, hgoba@freemail.c3.hu +;; + +(define (hu-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (hu-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "%n &Appendix;" + "%t")) + (list (normalize "article") (string-append %gentext-hu-start-quote% + "%t" + %gentext-hu-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "%n &chapter;" + "%t")) + (list (normalize "equation") "%n &Equation;") + (list (normalize "example") "%n &Example;") + (list (normalize "figure") "%n &Figure;") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "%n &Part;") + (list (normalize "preface") "%t") + (list (normalize "procedure") "%n, %t &Procedure; ") + (list (normalize "reference") "%n, %t &Reference; ") + (list (normalize "section") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sect1") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sect2") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sect3") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sect4") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sect5") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "simplesect") (if %section-autolabel% + "%n &Section;" + "%t")) + (list (normalize "sidebar") "%t") + (list (normalize "step") "%n &step;") + (list (normalize "table") "%n &Table;"))) + +(define (gentext-hu-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (hu-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (hu-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-hu-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (hu-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-hu-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (hu-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-hu-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-hu-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-hu-intra-label-sep) + (list)) + +(define (hu-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-hu-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-hu-intra-label-sep))) + (sep (assoc name (hu-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-hu-label-title-sep) + (list)) + +(define (hu-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-hu-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-hu-label-title-sep))) + (sep (assoc name (hu-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (hu-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (hu-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (hu-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (hu-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-hu$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (hu-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-hu-start-quote% (dingbat "ldquo")) + +(define %gentext-hu-end-quote% (dingbat "rdquo")) + +(define %gentext-hu-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-hu-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-hu-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-hu-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-hu-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-hu-page% "") + +(define %gentext-hu-and% "∧") + +(define %gentext-hu-listcomma% "&listcomma;") + +(define %gentext-hu-lastlistcomma% "&lastlistcomma;") + +(define %gentext-hu-bibl-pages% "&Pgs;") + +(define %gentext-hu-endnotes% "&Notes;") + +(define %gentext-hu-table-endnotes% "&TableNotes;:") + +(define %gentext-hu-index-see% "&See;") + +(define %gentext-hu-index-seealso% "&SeeAlso;") + + +(define (gentext-hu-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-hu-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-hu-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-hu-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-hu-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-hu-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1hu.ent b/common/dbl1hu.ent new file mode 100644 index 0000000..3eb1e59 --- /dev/null +++ b/common/dbl1hu.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Kivonat"> +<!ENTITY abstract "kivonat"> +<!ENTITY Answer "V:"> +<!ENTITY answer "v:"> +<!ENTITY Appendix "F\U-00FC;ggel\U-00E9;k"> +<!ENTITY appendix "f\U-00FC;ggel\U-00E9;k"> +<!ENTITY Article "Cikk"> +<!ENTITY article "cikk"> +<!ENTITY Bibliography "Irodalomjegyz\U-00E9;k"> +<!ENTITY bibliography "irodalomjegyz\U-00E9;k"> +<!ENTITY Book "K\U-00F6;nyv"> +<!ENTITY book "k\U-00F6;nyv"> +<!ENTITY CAUTION "FIGYELEM"> +<!ENTITY Caution "Figyelem"> +<!ENTITY caution "figyelem"> +<!ENTITY Chapter "Fejezet"> +<!ENTITY chapter "fejezet"> +<!ENTITY Colophon "V\U-00E9;gsz\U-00F3;"> +<!ENTITY colophon "v\U-00E9;gsz\U-00F3;"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "copyright"> +<!ENTITY Dedication "Aj\U-00E1;nl\U-00E1;s"> +<!ENTITY dedication "aj\U-00E1;nl\U-00E1;s"> +<!ENTITY Edition "Kiad\U-00E1;s"> +<!ENTITY edition "kiad\U-00E1;s"> +<!ENTITY Equation "Egyenlet"> +<!ENTITY equation "egyenlet"> +<!ENTITY Example "P\U-00E9;lda"> +<!ENTITY example "p\U-00E9;lda"> +<!ENTITY Figure "\U-00C1;bra"> +<!ENTITY figure "\U-00E1;bra"> +<!ENTITY Glossary "Sz\U-00F3;jegyz\U-00E9;k"> +<!ENTITY glossary "sz\U-00F3;jegyz\U-00E9;k"> +<!ENTITY GlossSee "L\U-00E1;sd"> +<!ENTITY glosssee "l\U-00E1;sd"> +<!ENTITY GlossSeeAlso "L\U-00E1;sd m\U-00E9;g"> +<!ENTITY glossseealso "l\U-00E1;sd m\U-00E9;g"> +<!ENTITY IMPORTANT "FONTOS"> +<!ENTITY Important "Fontos"> +<!ENTITY important "fontos"> +<!ENTITY Index "T\U-00E1;rgymutat\U-00F3;"> +<!ENTITY index "t\U-00E1;rgymutat\U-00F3;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "isbn"> +<!ENTITY LegalNotice "Jogi k\U-00F6;zlem\U-00E9;ny"> +<!ENTITY legalnotice "jogi k\U-00F6;zlem\U-00E9;ny"> +<!ENTITY MsgAud "C\U-00E9;lk\U-00F6;z\U-00F6;ns\U-00E9;g"> +<!ENTITY msgaud "c\U-00E9;lk\U-00F6;z\U-00F6;ns\U-00E9;g"> +<!ENTITY MsgLevel "Szint"> +<!ENTITY msglevel "szint"> +<!ENTITY MsgOrig "Eredet"> +<!ENTITY msgorig "eredet"> +<!ENTITY NOTE "MEGJEGYZ\U-00C9;S"> +<!ENTITY Note "Megjegyz\U-00E9;s"> +<!ENTITY note "megjegyz\U-00E9;s"> +<!ENTITY Part "R\U-00E9;sz"> +<!ENTITY part "r\U-00E9;sz"> +<!ENTITY Preface "El\U-0151;sz\U-00F3;"> +<!ENTITY preface "el\U-0151;sz\U-00F3;"> +<!ENTITY Procedure "Elj\U-00E1;r\U-00E1;s"> +<!ENTITY procedure "elj\U-00E1;r\U-00E1;s"> +<!ENTITY ProductionSet "Elemcsoport"> +<!ENTITY Published "Megjelent"> +<!ENTITY published "megjelent"> +<!ENTITY Question "K:"> +<!ENTITY question "k:"> +<!ENTITY RefEntry "Bejegyz\U-00E9;s"> +<!ENTITY refentry "bejegyz\U-00E9;s"> +<!ENTITY Reference "Referencia"> +<!ENTITY reference "referencia"> +<!ENTITY RefName "N\U-00E9;v"> +<!ENTITY refname "n\U-00E9;v"> +<!ENTITY RefSection "Szakasz"> +<!ENTITY refsection "szakasz"> +<!ENTITY RefSynopsisDiv "\U-00C1;ttekint\U-00E9;s"> +<!ENTITY refsynopsisdiv "\U-00E1;ttekint\U-00E9;s"> +<!ENTITY RevHistory "Verzi\U-00F3;t\U-00F6;rt\U-00E9;net"> +<!ENTITY revhistory "verzi\U-00F3;t\U-00F6;rt\U-00E9;net"> +<!ENTITY Revision "Verzi\U-00F3;"> +<!ENTITY revision "verzi\U-00F3;"> +<!ENTITY sect1 "Szakasz"> +<!ENTITY sect2 "Szakasz"> +<!ENTITY sect3 "Szakasz"> +<!ENTITY sect4 "Szakasz"> +<!ENTITY sect5 "Szakasz"> +<!ENTITY Section "Szakasz"> +<!ENTITY section "szakasz"> +<!ENTITY See "L\U-00E1;sd"> +<!ENTITY see "l\U-00E1;sd"> +<!ENTITY SeeAlso "L\U-00E1;sd m\U-00E9;g"> +<!ENTITY Seealso "L\U-00E1;sd m\U-00E9;g"> +<!ENTITY seealso "l\U-00E1;sd m\U-00E9;g"> +<!ENTITY Set "Csoport"> +<!ENTITY set "csoport"> +<!ENTITY SetIndex "Csoportmutat\U-00F3;"> +<!ENTITY setindex "csoportmutat\U-00F3;"> +<!ENTITY Sidebar "Sz\U-00E9;ljegyzet"> +<!ENTITY sidebar "sz\U-00E9;ljegyzet"> +<!ENTITY Step "L\U-00E9;p\U-00E9;s"> +<!ENTITY step "l\U-00E9;p\U-00E9;s"> +<!ENTITY Table "T\U-00E1;bl\U-00E1;zat"> +<!ENTITY table "t\U-00E1;bl\U-00E1;zat"> +<!ENTITY TIP "TIPP"> +<!ENTITY Tip "Tipp"> +<!ENTITY tip "tipp"> +<!ENTITY WARNING "FIGYELEM"> +<!ENTITY Warning "Figyelem"> +<!ENTITY warning "figyelem"> +<!ENTITY and "\U-00E9;s"> +<!ENTITY by ""> +<!ENTITY Edited "Szerk."> +<!ENTITY edited "szerk."> +<!ENTITY Editedby "Szerkesztette"> +<!ENTITY editedby "szerkesztette"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "nem l\U-00E9;tez\U-0151; elem"> +<!ENTITY notes "megjegyz\U-00E9;sek"> +<!ENTITY Notes "Megjegyz\U-00E9;sek"> +<!ENTITY Pgs "Lsz."> +<!ENTITY pgs "lsz."> +<!ENTITY Revisedby "Megvizsg\U-00E1;lva"> +<!ENTITY revisedby "megvizsg\U-00E1;lva"> +<!ENTITY TableNotes "Megjegyz\U-00E9;sek"> +<!ENTITY tablenotes "megjegyz\U-00E9;sek"> +<!ENTITY TableofContents "Tartalom"> +<!ENTITY tableofcontents "tartalom"> +<!ENTITY unexpectedelementname "nem v\U-00E1;rt elemn\U-00E9;v"> +<!ENTITY unsupported "nem t\U-00E1;mogatott"> +<!ENTITY xrefto "keresztref"> +<!ENTITY listofequations "az egyenletek list\U-00E1;ja"> +<!ENTITY ListofEquations "Az egyenletek list\U-00E1;ja"> +<!ENTITY ListofExamples "A p\U-00E9;ld\U-00E1;k list\U-00E1;ja"> +<!ENTITY listofexamples "a p\U-00E9;ld\U-00E1;k list\U-00E1;ja"> +<!ENTITY ListofFigures "Az \U-00E1;br\U-00E1;k list\U-00E1;ja"> +<!ENTITY listoffigures "az \U-00E1;br\U-00E1;k list\U-00E1;ja"> +<!ENTITY listoftables "a t\U-00E1;bl\U-00E1;zatok list\U-00E1;ja"> +<!ENTITY ListofTables "A t\U-00E1;bl\U-00E1;zatok list\U-00E1;ja"> +<!ENTITY ListofUnknown "Az egy\U-00E9;b elemek list\U-00E1;ja"> +<!ENTITY listofunknown "az egy\U-00E9;b elemek list\U-00E1;ja"> +<!ENTITY nav-home "Tartalom"> +<!ENTITY nav-next "K\U-00F6;vetkez\U-0151;"> +<!ENTITY nav-next-sibling "Gyors el\U-0151;re"> +<!ENTITY nav-prev "El\U-0151;z\U-0151;"> +<!ENTITY nav-prev-sibling "Gyors vissza"> +<!ENTITY nav-up "Fel"> +<!ENTITY sectioncalled "ilyen nev\U-0171; szakasz:"> +<!ENTITY Draft "V\U-00E1;zlat"> +<!ENTITY above "fent"> +<!ENTITY below "lent"> +<!ENTITY lowercase.alpha "a\U-00E1;bcde\U-00E9;fghi\U-00ED;jklmno\U-00F3;\U-00F6;\U-0151;pqrstu\U-00FA;\U-00FC;\U-00AB;vwxyz"> +<!ENTITY uppercase.alpha "A\U-00C1;BCDE\U-00C9;FGHI\U-00CD;JKLMNO\U-00D3;\U-00D6;\U-0150;PQRSTU\U-00DA;\U-00DC;\U-0170;VWXYZ"> diff --git a/common/dbl1id.dsl b/common/dbl1id.dsl new file mode 100644 index 0000000..bd70530 --- /dev/null +++ b/common/dbl1id.dsl @@ -0,0 +1,608 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % id.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//IN" + "dbl1id.ent"> +%id.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-id"> +<style-specification-body> + +;; $Id: dbl1id.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Mohammad DAMT, mdamt@cdl2000.com +;; + +(define (id-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (id-appendix-xref-string gi-or-name) + (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; berjudul %t")) + +(define (id-article-xref-string gi-or-name) + (string-append %gentext-id-start-quote% + "%t" + %gentext-id-end-quote%)) + +(define (id-bibliography-xref-string gi-or-name) + "%t") + +(define (id-book-xref-string gi-or-name) + "%t") + +(define (id-chapter-xref-string gi-or-name) + (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; berjudul %t")) + +(define (id-equation-xref-string gi-or-name) + "&Equation; %n") + +(define (id-example-xref-string gi-or-name) + "&Example; %n") + +(define (id-figure-xref-string gi-or-name) + "&Figure; %n") + +(define (id-glossary-xref-string gi-or-name) + "%t") + +(define (id-index-xref-string gi-or-name) + "%t") + +(define (id-listitem-xref-string gi-or-name) + "%n") + +(define (id-part-xref-string gi-or-name) + "&Part; %n") + +(define (id-preface-xref-string gi-or-name) + "%t") + +(define (id-procedure-xref-string gi-or-name) + "&Procedure; %n, %t") + +(define (id-reference-xref-string gi-or-name) + "&Reference; %n, %t") + +(define (id-sectioning-xref-string gi-or-name) + (if %section-autolabel% + "&Section; %n" + "§ion; berjudul %t")) + +(define (id-sect1-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-sect2-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-sect3-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-sect4-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-sect5-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-section-xref-string gi-or-name) + (id-sectioning-xref-string gi-or-name)) + +(define (id-sidebar-xref-string gi-or-name) + "the &sidebar; %t") + +(define (id-step-xref-string gi-or-name) + "&step; %n") + +(define (id-table-xref-string gi-or-name) + "&Table; %n") + +(define (id-default-xref-string gi-or-name) + (let* ((giname (if (string? gi-or-name) gi-or-name (gi gi-or-name))) + (msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)) + +(define (gentext-id-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond + ((equal? name (normalize "appendix")) (id-appendix-xref-string gind)) + ((equal? name (normalize "article")) (id-article-xref-string gind)) + ((equal? name (normalize "bibliography")) (id-bibliography-xref-string gind)) + ((equal? name (normalize "book")) (id-book-xref-string gind)) + ((equal? name (normalize "chapter")) (id-chapter-xref-string gind)) + ((equal? name (normalize "equation")) (id-equation-xref-string gind)) + ((equal? name (normalize "example")) (id-example-xref-string gind)) + ((equal? name (normalize "figure")) (id-figure-xref-string gind)) + ((equal? name (normalize "glossary")) (id-glossary-xref-string gind)) + ((equal? name (normalize "index")) (id-index-xref-string gind)) + ((equal? name (normalize "listitem")) (id-listitem-xref-string gind)) + ((equal? name (normalize "part")) (id-part-xref-string gind)) + ((equal? name (normalize "preface")) (id-preface-xref-string gind)) + ((equal? name (normalize "procedure")) (id-procedure-xref-string gind)) + ((equal? name (normalize "reference")) (id-reference-xref-string gind)) + ((equal? name (normalize "sect1")) (id-sect1-xref-string gind)) + ((equal? name (normalize "sect2")) (id-sect2-xref-string gind)) + ((equal? name (normalize "sect3")) (id-sect3-xref-string gind)) + ((equal? name (normalize "sect4")) (id-sect4-xref-string gind)) + ((equal? name (normalize "sect5")) (id-sect5-xref-string gind)) + ((equal? name (normalize "section")) (id-section-xref-string gind)) + ((equal? name (normalize "simplesect")) (id-section-xref-string gind)) + ((equal? name (normalize "sidebar")) (id-sidebar-xref-string gind)) + ((equal? name (normalize "step")) (id-step-xref-string gind)) + ((equal? name (normalize "table")) (id-table-xref-string gind)) + (else (id-default-xref-string gind))))) + +(define (id-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-id-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; +(define id-abstract-name "&Abstract;") +(define id-answer-name "&Answer;") +(define id-appendix-name "&Appendix;") +(define id-article-name "&Article;") +(define id-bibliography-name "&Bibliography;") +(define id-book-name "&Book;") +(define id-calloutlist-name "") +(define id-caution-name "&Caution;") +(define id-chapter-name "&Chapter;") +(define id-copyright-name "&Copyright;") +(define id-dedication-name "&Dedication;") +(define id-edition-name "&Edition;") +(define id-equation-name "&Equation;") +(define id-example-name "&Example;") +(define id-figure-name "&Figure;") +(define id-glossary-name "&Glossary;") +(define id-glosssee-name "&GlossSee;") +(define id-glossseealso-name "&GlossSeeAlso;") +(define id-important-name "&Important;") +(define id-index-name "&Index;") +(define id-colophon-name "&Colophon;") +(define id-setindex-name "&SetIndex;") +(define id-isbn-name "&isbn;") +(define id-legalnotice-name "&LegalNotice;") +(define id-msgaud-name "&MsgAud;") +(define id-msglevel-name "&MsgLevel;") +(define id-msgorig-name "&MsgOrig;") +(define id-note-name "&Note;") +(define id-part-name "&Part;") +(define id-preface-name "&Preface;") +(define id-procedure-name "&Procedure;") +(define id-pubdate-name "&Published;") +(define id-question-name "&Question;") +(define id-refentry-name "&RefEntry;") +(define id-reference-name "&Reference;") +(define id-refname-name "&RefName;") +(define id-revhistory-name "&RevHistory;") +(define id-refsect1-name "&RefSection;") +(define id-refsect2-name "&RefSection;") +(define id-refsect3-name "&RefSection;") +(define id-refsynopsisdiv-name "&RefSynopsisDiv;") +(define id-revision-name "&Revision;") +(define id-sect1-name "&Section;") +(define id-sect2-name "&Section;") +(define id-sect3-name "&Section;") +(define id-sect4-name "&Section;") +(define id-sect5-name "&Section;") +(define id-section-name "&Section;") +(define id-simplesect-name "&Section;") +(define id-seeie-name "&See;") +(define id-seealsoie-name "&Seealso;") +(define id-set-name "&Set;") +(define id-sidebar-name "&Sidebar;") +(define id-step-name "&step;") +(define id-table-name "&Table;") +(define id-tip-name "&Tip;") +(define id-toc-name "&TableofContents;") +(define id-warning-name "&Warning;") + +(define (gentext-id-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond + ((equal? name (normalize "abstract")) id-abstract-name) + ((equal? name (normalize "answer")) id-answer-name) + ((equal? name (normalize "appendix")) id-appendix-name) + ((equal? name (normalize "article")) id-article-name) + ((equal? name (normalize "bibliography")) id-bibliography-name) + ((equal? name (normalize "book")) id-book-name) + ((equal? name (normalize "calloutlist")) id-calloutlist-name) + ((equal? name (normalize "caution")) id-caution-name) + ((equal? name (normalize "chapter")) id-chapter-name) + ((equal? name (normalize "copyright")) id-copyright-name) + ((equal? name (normalize "dedication")) id-dedication-name) + ((equal? name (normalize "edition")) id-edition-name) + ((equal? name (normalize "equation")) id-equation-name) + ((equal? name (normalize "example")) id-example-name) + ((equal? name (normalize "figure")) id-figure-name) + ((equal? name (normalize "glossary")) id-glossary-name) + ((equal? name (normalize "glosssee")) id-glosssee-name) + ((equal? name (normalize "glossseealso")) id-glossseealso-name) + ((equal? name (normalize "important")) id-important-name) + ((equal? name (normalize "index")) id-index-name) + ((equal? name (normalize "colophon")) id-colophon-name) + ((equal? name (normalize "setindex")) id-setindex-name) + ((equal? name (normalize "isbn")) id-isbn-name) + ((equal? name (normalize "legalnotice")) id-legalnotice-name) + ((equal? name (normalize "msgaud")) id-msgaud-name) + ((equal? name (normalize "msglevel")) id-msglevel-name) + ((equal? name (normalize "msgorig")) id-msgorig-name) + ((equal? name (normalize "note")) id-note-name) + ((equal? name (normalize "part")) id-part-name) + ((equal? name (normalize "preface")) id-preface-name) + ((equal? name (normalize "procedure")) id-procedure-name) + ((equal? name (normalize "pubdate")) id-pubdate-name) + ((equal? name (normalize "question")) id-question-name) + ((equal? name (normalize "refentry")) id-refentry-name) + ((equal? name (normalize "reference")) id-reference-name) + ((equal? name (normalize "refname")) id-refname-name) + ((equal? name (normalize "revhistory")) id-revhistory-name) + ((equal? name (normalize "refsect1")) id-refsect1-name) + ((equal? name (normalize "refsect2")) id-refsect2-name) + ((equal? name (normalize "refsect3")) id-refsect3-name) + ((equal? name (normalize "refsynopsisdiv")) id-refsynopsisdiv-name) + ((equal? name (normalize "revision")) id-revision-name) + ((equal? name (normalize "sect1")) id-sect1-name) + ((equal? name (normalize "sect2")) id-sect2-name) + ((equal? name (normalize "sect3")) id-sect3-name) + ((equal? name (normalize "sect4")) id-sect4-name) + ((equal? name (normalize "sect5")) id-sect5-name) + ((equal? name (normalize "section")) id-section-name) + ((equal? name (normalize "simplesect")) id-simplesect-name) + ((equal? name (normalize "seeie")) id-seeie-name) + ((equal? name (normalize "seealsoie")) id-seealsoie-name) + ((equal? name (normalize "set")) id-set-name) + ((equal? name (normalize "sidebar")) id-sidebar-name) + ((equal? name (normalize "step")) id-step-name) + ((equal? name (normalize "table")) id-table-name) + ((equal? name (normalize "tip")) id-tip-name) + ((equal? name (normalize "toc")) id-toc-name) + ((equal? name (normalize "warning")) id-warning-name) + (else (let* ((msg (string-append "gentext-id-element-name: &unexpectedelementname;: " name)) + (err (node-list-error msg (current-node)))) + msg))))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-id-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define id-equation-intra-label-sep "-") +(define id-informalequation-intra-label-sep "-") +(define id-example-intra-label-sep "-") +(define id-figure-intra-label-sep "-") +(define id-listitem-intra-label-sep ".") +(define id-procedure-intra-label-sep ".") +(define id-refentry-intra-label-sep ".") +(define id-reference-intra-label-sep ".") +(define id-refname-intra-label-sep ", ") +(define id-refsect1-intra-label-sep ".") +(define id-refsect2-intra-label-sep ".") +(define id-refsect3-intra-label-sep ".") +(define id-sect1-intra-label-sep ".") +(define id-sect2-intra-label-sep ".") +(define id-sect3-intra-label-sep ".") +(define id-sect4-intra-label-sep ".") +(define id-sect5-intra-label-sep ".") +(define id-section-intra-label-sep ".") +(define id-simplesect-intra-label-sep ".") +(define id-step-intra-label-sep ".") +(define id-table-intra-label-sep "-") +(define id-_pagenumber-intra-label-sep "-") +(define id-default-intra-label-sep "") + +(define (gentext-id-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond + ((equal? name (normalize "equation")) id-equation-intra-label-sep) + ((equal? name (normalize "informalequation")) id-informalequation-intra-label-sep) + ((equal? name (normalize "example")) id-example-intra-label-sep) + ((equal? name (normalize "figure")) id-figure-intra-label-sep) + ((equal? name (normalize "listitem")) id-listitem-intra-label-sep) + ((equal? name (normalize "procedure")) id-procedure-intra-label-sep) + ((equal? name (normalize "refentry")) id-refentry-intra-label-sep) + ((equal? name (normalize "reference")) id-reference-intra-label-sep) + ((equal? name (normalize "refname")) id-refname-intra-label-sep) + ((equal? name (normalize "refsect1")) id-refsect1-intra-label-sep) + ((equal? name (normalize "refsect2")) id-refsect2-intra-label-sep) + ((equal? name (normalize "refsect3")) id-refsect3-intra-label-sep) + ((equal? name (normalize "sect1")) id-sect1-intra-label-sep) + ((equal? name (normalize "sect2")) id-sect2-intra-label-sep) + ((equal? name (normalize "sect3")) id-sect3-intra-label-sep) + ((equal? name (normalize "sect4")) id-sect4-intra-label-sep) + ((equal? name (normalize "sect5")) id-sect5-intra-label-sep) + ((equal? name (normalize "section")) id-section-intra-label-sep) + ((equal? name (normalize "simplesect")) id-simplesect-intra-label-sep) + ((equal? name (normalize "step")) id-step-intra-label-sep) + ((equal? name (normalize "table")) id-table-intra-label-sep) + ((equal? name (normalize "_pagenumber")) id-_pagenumber-intra-label-sep) + (else id-default-intra-label-sep)))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define id-abstract-label-title-sep ": ") +(define id-answer-label-title-sep " ") +(define id-appendix-label-title-sep ". ") +(define id-caution-label-title-sep "") +(define id-chapter-label-title-sep ". ") +(define id-equation-label-title-sep ". ") +(define id-example-label-title-sep ". ") +(define id-figure-label-title-sep ". ") +(define id-footnote-label-title-sep ". ") +(define id-glosssee-label-title-sep ": ") +(define id-glossseealso-label-title-sep ": ") +(define id-important-label-title-sep ": ") +(define id-note-label-title-sep ": ") +(define id-orderedlist-label-title-sep ". ") +(define id-part-label-title-sep ". ") +(define id-procedure-label-title-sep ". ") +(define id-prefix-label-title-sep ". ") +(define id-question-label-title-sep " ") +(define id-refentry-label-title-sep "") +(define id-reference-label-title-sep ". ") +(define id-refsect1-label-title-sep ". ") +(define id-refsect2-label-title-sep ". ") +(define id-refsect3-label-title-sep ". ") +(define id-sect1-label-title-sep ". ") +(define id-sect2-label-title-sep ". ") +(define id-sect3-label-title-sep ". ") +(define id-sect4-label-title-sep ". ") +(define id-sect5-label-title-sep ". ") +(define id-section-label-title-sep ". ") +(define id-simplesect-label-title-sep ". ") +(define id-seeie-label-title-sep " ") +(define id-seealsoie-label-title-sep " ") +(define id-step-label-title-sep ". ") +(define id-table-label-title-sep ". ") +(define id-tip-label-title-sep ": ") +(define id-warning-label-title-sep "") +(define id-default-label-title-sep "") + +(define (gentext-id-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond + ((equal? name (normalize "abstract")) id-abstract-label-title-sep) + ((equal? name (normalize "answer")) id-answer-label-title-sep) + ((equal? name (normalize "appendix")) id-appendix-label-title-sep) + ((equal? name (normalize "caution")) id-caution-label-title-sep) + ((equal? name (normalize "chapter")) id-chapter-label-title-sep) + ((equal? name (normalize "equation")) id-equation-label-title-sep) + ((equal? name (normalize "example")) id-example-label-title-sep) + ((equal? name (normalize "figure")) id-figure-label-title-sep) + ((equal? name (normalize "footnote")) id-footnote-label-title-sep) + ((equal? name (normalize "glosssee")) id-glosssee-label-title-sep) + ((equal? name (normalize "glossseealso")) id-glossseealso-label-title-sep) + ((equal? name (normalize "important")) id-important-label-title-sep) + ((equal? name (normalize "note")) id-note-label-title-sep) + ((equal? name (normalize "orderedlist")) id-orderedlist-label-title-sep) + ((equal? name (normalize "part")) id-part-label-title-sep) + ((equal? name (normalize "procedure")) id-procedure-label-title-sep) + ((equal? name (normalize "prefix")) id-prefix-label-title-sep) + ((equal? name (normalize "question")) id-question-label-title-sep) + ((equal? name (normalize "refentry")) id-refentry-label-title-sep) + ((equal? name (normalize "reference")) id-reference-label-title-sep) + ((equal? name (normalize "refsect1")) id-refsect1-label-title-sep) + ((equal? name (normalize "refsect2")) id-refsect2-label-title-sep) + ((equal? name (normalize "refsect3")) id-refsect3-label-title-sep) + ((equal? name (normalize "sect1")) id-sect1-label-title-sep) + ((equal? name (normalize "sect2")) id-sect2-label-title-sep) + ((equal? name (normalize "sect3")) id-sect3-label-title-sep) + ((equal? name (normalize "sect4")) id-sect4-label-title-sep) + ((equal? name (normalize "sect5")) id-sect5-label-title-sep) + ((equal? name (normalize "section")) id-section-label-title-sep) + ((equal? name (normalize "simplesect")) id-simplesect-label-title-sep) + ((equal? name (normalize "seeie")) id-seeie-label-title-sep) + ((equal? name (normalize "seealsoie")) id-seealsoie-label-title-sep) + ((equal? name (normalize "step")) id-step-label-title-sep) + ((equal? name (normalize "table")) id-table-label-title-sep) + ((equal? name (normalize "tip")) id-tip-label-title-sep) + ((equal? name (normalize "warning")) id-warning-label-title-sep) + (else id-default-label-title-sep)))) + +(define (id-set-label-number-format gind) "1") +(define (id-book-label-number-format gind) "1") +(define (id-prefix-label-number-format gind) "1") +(define (id-part-label-number-format gind) "I") +(define (id-chapter-label-number-format gind) "1") +(define (id-appendix-label-number-format gind) "A") +(define (id-reference-label-number-format gind) "I") +(define (id-example-label-number-format gind) "1") +(define (id-figure-label-number-format gind) "1") +(define (id-table-label-number-format gind) "1") +(define (id-procedure-label-number-format gind) "1") +(define (id-step-label-number-format gind) "1") +(define (id-refsect1-label-number-format gind) "1") +(define (id-refsect2-label-number-format gind) "1") +(define (id-refsect3-label-number-format gind) "1") +(define (id-sect1-label-number-format gind) "1") +(define (id-sect2-label-number-format gind) "1") +(define (id-sect3-label-number-format gind) "1") +(define (id-sect4-label-number-format gind) "1") +(define (id-sect5-label-number-format gind) "1") +(define (id-section-label-number-format gind) "1") +(define (id-default-label-number-format gind) "1") + +(define (id-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond + ((equal? name (normalize "set")) (id-set-label-number-format gind)) + ((equal? name (normalize "book")) (id-book-label-number-format gind)) + ((equal? name (normalize "prefix")) (id-prefix-label-number-format gind)) + ((equal? name (normalize "part")) (id-part-label-number-format gind)) + ((equal? name (normalize "chapter")) (id-chapter-label-number-format gind)) + ((equal? name (normalize "appendix")) (id-appendix-label-number-format gind)) + ((equal? name (normalize "reference")) (id-reference-label-number-format gind)) + ((equal? name (normalize "example")) (id-example-label-number-format gind)) + ((equal? name (normalize "figure")) (id-figure-label-number-format gind)) + ((equal? name (normalize "table")) (id-table-label-number-format gind)) + ((equal? name (normalize "procedure")) (id-procedure-label-number-format gind)) + ((equal? name (normalize "step")) (id-step-label-number-format gind)) + ((equal? name (normalize "refsect1")) (id-refsect1-label-number-format gind)) + ((equal? name (normalize "refsect2")) (id-refsect2-label-number-format gind)) + ((equal? name (normalize "refsect3")) (id-refsect3-label-number-format gind)) + ((equal? name (normalize "sect1")) (id-sect1-label-number-format gind)) + ((equal? name (normalize "sect2")) (id-sect2-label-number-format gind)) + ((equal? name (normalize "sect3")) (id-sect3-label-number-format gind)) + ((equal? name (normalize "sect4")) (id-sect4-label-number-format gind)) + ((equal? name (normalize "sect5")) (id-sect5-label-number-format gind)) + ((equal? name (normalize "section")) (id-section-label-number-format gind)) + (else (id-default-label-number-format gind))))) + +(define ($lot-title-id$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname))) + (cond ((equal? name (normalize "table")) "&ListofTables;") + ((equal? name (normalize "example")) "&ListofExamples;") + ((equal? name (normalize "figure")) "&ListofFigures;") + ((equal? name (normalize "equation")) "&ListofEquations;") + (else (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg))))) + +(define %gentext-id-start-quote% (dingbat "ldquo")) + +(define %gentext-id-end-quote% (dingbat "rdquo")) + +(define %gentext-id-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-id-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-id-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-id-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-id-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-id-page% "") + +(define %gentext-id-and% "∧") + +(define %gentext-id-listcomma% "&listcomma;") + +(define %gentext-id-lastlistcomma% "&lastlistcomma;") + +(define %gentext-id-bibl-pages% "&Pgs;") + +(define %gentext-id-endnotes% "&Notes;") + +(define %gentext-id-table-endnotes% "&TableNotes;:") + +(define %gentext-id-index-see% "&See;") + +(define %gentext-id-index-seealso% "&SeeAlso;") + + +(define (gentext-id-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-id-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-id-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-id-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-id-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-id-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1id.ent b/common/dbl1id.ent new file mode 100644 index 0000000..afde4d3 --- /dev/null +++ b/common/dbl1id.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstrak"> +<!ENTITY abstract "Abstrak"> +<!ENTITY Answer "Jawab:"> +<!ENTITY answer "Jawab:"> +<!ENTITY Appendix "Lampiran"> +<!ENTITY appendix "lampiran"> +<!ENTITY Article "Artikel"> +<!ENTITY article "Artikel"> +<!ENTITY Bibliography "Bibliografi"> +<!ENTITY bibliography "Bibliografi"> +<!ENTITY Book "Buku"> +<!ENTITY book "Buku"> +<!ENTITY CAUTION "PERHATIAN"> +<!ENTITY Caution "Perhatian"> +<!ENTITY caution "Perhatian"> +<!ENTITY Chapter "Bab"> +<!ENTITY chapter "bab"> +<!ENTITY Colophon "Kolofon"> +<!ENTITY colophon "Kolofon"> +<!ENTITY Copyright "Hak Cipta"> +<!ENTITY copyright "Hak Cipta"> +<!ENTITY Dedication "Dedikasi"> +<!ENTITY dedication "Dedikasi"> +<!ENTITY Edition "Edisi"> +<!ENTITY edition "Edisi"> +<!ENTITY Equation "Persamaan"> +<!ENTITY equation "Persamaan"> +<!ENTITY Example "Teladan"> +<!ENTITY example "Teladan"> +<!ENTITY Figure "Gambar"> +<!ENTITY figure "Gambar"> +<!ENTITY Glossary "Daftar Istilah"> +<!ENTITY glossary "Daftar Istilah"> +<!ENTITY GlossSee "Lihat"> +<!ENTITY glosssee "Lihat"> +<!ENTITY GlossSeeAlso "Lihat Juga"> +<!ENTITY glossseealso "Lihat Juga"> +<!ENTITY IMPORTANT "PENTING"> +<!ENTITY Important "Penting"> +<!ENTITY important "Penting"> +<!ENTITY Index "Indeks"> +<!ENTITY index "Indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Aspek Hukum"> +<!ENTITY legalnotice "Aspek Hukum"> +<!ENTITY MsgAud "Pemirsa"> +<!ENTITY msgaud "Pemirsa"> +<!ENTITY MsgLevel "Tingkatan"> +<!ENTITY msglevel "Tingkatan"> +<!ENTITY MsgOrig "Asal"> +<!ENTITY msgorig "Asal"> +<!ENTITY NOTE "CATATAN"> +<!ENTITY Note "Catatan"> +<!ENTITY note "Catatan"> +<!ENTITY Part "Bagian"> +<!ENTITY part "Bagian"> +<!ENTITY Preface "Kata Pengantar"> +<!ENTITY preface "Kata Pengantar"> +<!ENTITY Procedure "Prosedur"> +<!ENTITY procedure "Prosedur"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Diterbitkan"> +<!ENTITY published "Diterbitkan"> +<!ENTITY Question "Tanya:"> +<!ENTITY question "Tanya:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referensi"> +<!ENTITY reference "Referensi"> +<!ENTITY RefName "Nama"> +<!ENTITY refname "Nama"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Sinopsis"> +<!ENTITY refsynopsisdiv "Sinopsis"> +<!ENTITY RevHistory "Catatan Revisi"> +<!ENTITY revhistory "Catatan Revisi"> +<!ENTITY Revision "Revisi"> +<!ENTITY revision "Revisi"> +<!ENTITY sect1 "Bagian"> +<!ENTITY sect2 "Bagian"> +<!ENTITY sect3 "Bagian"> +<!ENTITY sect4 "Bagian"> +<!ENTITY sect5 "Bagian"> +<!ENTITY Section "Bagian"> +<!ENTITY section "bagian"> +<!ENTITY See "Lihat"> +<!ENTITY see "Lihat"> +<!ENTITY SeeAlso "Lihat Juga"> +<!ENTITY Seealso "Lihat juga"> +<!ENTITY seealso "Lihat Juga"> +<!ENTITY Set "Set"> +<!ENTITY set "Set"> +<!ENTITY SetIndex "Indeks Set"> +<!ENTITY setindex "Indeks Set"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY Step "Tahap"> +<!ENTITY step "tahap"> +<!ENTITY Table "Tabel"> +<!ENTITY table "Tabel"> +<!ENTITY TIP "TIP"> +<!ENTITY Tip "Tip"> +<!ENTITY tip "Tip"> +<!ENTITY WARNING "AWAS"> +<!ENTITY Warning "Awas"> +<!ENTITY warning "Awas"> +<!ENTITY and "dan"> +<!ENTITY by "oleh"> +<!ENTITY Edited "disunting"> +<!ENTITY edited "disunting"> +<!ENTITY Editedby "disunting oleh"> +<!ENTITY editedby "disunting oleh"> +<!ENTITY in "di"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elemen tak tampak"> +<!ENTITY notes "Catatan"> +<!ENTITY Notes "Catatan"> +<!ENTITY Pgs "Hal."> +<!ENTITY pgs "Hal."> +<!ENTITY Revisedby "Direvisi oleh: "> +<!ENTITY revisedby "Direvisi oleh: "> +<!ENTITY TableNotes "Catatan"> +<!ENTITY tablenotes "Catatan"> +<!ENTITY TableofContents "Daftar Isi"> +<!ENTITY tableofcontents "Daftar Isi"> +<!ENTITY unexpectedelementname "Nama Elemen seharusnya tidak ada"> +<!ENTITY unsupported "tidak didukung"> +<!ENTITY xrefto "xref ke"> +<!ENTITY listofequations "Daftar Persamaan"> +<!ENTITY ListofEquations "Daftar Persamaan"> +<!ENTITY ListofExamples "Daftar Teladan"> +<!ENTITY listofexamples "Daftar Teladan"> +<!ENTITY ListofFigures "Daftar Gambar"> +<!ENTITY listoffigures "Daftar Gambar"> +<!ENTITY listoftables "Daftar Tabel"> +<!ENTITY ListofTables "Daftar Tabel"> +<!ENTITY ListofUnknown "Daftar Gaib"> +<!ENTITY listofunknown "Daftar Gaib"> +<!ENTITY nav-home "Depan"> +<!ENTITY nav-next "Lanjut"> +<!ENTITY nav-next-sibling "Lewati"> +<!ENTITY nav-prev "Kembali"> +<!ENTITY nav-prev-sibling "Sebelumnya"> +<!ENTITY nav-up "Induk"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1it.dsl b/common/dbl1it.dsl new file mode 100644 index 0000000..791eb10 --- /dev/null +++ b/common/dbl1it.dsl @@ -0,0 +1,471 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % it.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//IT" + "dbl1it.ent"> +%it.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-it"> +<style-specification-body> + +;; $Id: dbl1it.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; camille@mandrakesoft.com + +(define (it-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (it-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; %t")) + (list (normalize "article") (string-append %gentext-it-start-quote% + "%t" + %gentext-it-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "il &chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "la &Section; %n" + "la §ion; %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-it-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (it-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (it-auto-xref-indirect-connector before) + (cond + ((member (gi before) + (list (normalize "part") + (normalize "set") + (normalize "revision") + (normalize "dedication") + (normalize "bibliography") + (normalize "preface") + (normalize "figure") + (normalize "procedure") + (normalize "sidebar") + (normalize "table") + (normalize "sect1") + (normalize "sect2") + (normalize "sect3") + (normalize "sect4") + (normalize "sect5") + (normalize "simplesect"))) + (literal " nella ")) + ((member (gi before) + (list (normalize "appendix") + (normalize "index") + (normalize "abstract") + (normalize "equation") + (normalize "example") + (normalize "article"))) + (literal " nell'")) + ((member (gi before) + (list (normalize "book") + (normalize "chapter") + (normalize "step") + (normalize "reference") + (normalize "glossary"))) + (literal " nel ")) +;; This is supposed never to be triggered! +;; I think the above conditions cover all the possible kinds of link +;; target containers (it's probably a superset, indeed). If they +;; don't, add the offending element to the correspondant list. + (else + (literal "[&unexpectedelementname;]")))) + +;; Should the TOC come first or last? +;; +(define %generate-it-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (it-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-it-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (it-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-it-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-it-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-it-intra-label-sep) + (list)) + +(define (it-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-it-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-it-intra-label-sep))) + (sep (assoc name (it-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-it-label-title-sep) + (list)) + +(define (it-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-it-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-it-label-title-sep))) + (sep (assoc name (it-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (it-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (it-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (it-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (it-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-it$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (it-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-it-start-quote% (dingbat "ldquo")) + +(define %gentext-it-end-quote% (dingbat "rdquo")) + +(define %gentext-it-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-it-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-it-by% "") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-it-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-it-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-it-page% "") + +(define %gentext-it-and% "∧") + +(define %gentext-it-listcomma% "&listcomma;") + +(define %gentext-it-lastlistcomma% "&lastlistcomma;") + +(define %gentext-it-bibl-pages% "&Pgs;") + +(define %gentext-it-endnotes% "&Notes;") + +(define %gentext-it-table-endnotes% "&TableNotes;:") + +(define %gentext-it-index-see% "&See;") + +(define %gentext-it-index-seealso% "&SeeAlso;") + + +(define (gentext-it-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-it-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-it-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-it-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-it-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-it-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1it.ent b/common/dbl1it.ent new file mode 100644 index 0000000..49937d7 --- /dev/null +++ b/common/dbl1it.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Estratto"> +<!ENTITY abstract "Estratto"> +<!ENTITY Answer "R:"> +<!ENTITY answer "R:"> +<!ENTITY Appendix "Appendice"> +<!ENTITY appendix "appendice"> +<!ENTITY Article "Articolo"> +<!ENTITY article "Articolo"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Libro"> +<!ENTITY book "Libro"> +<!ENTITY CAUTION "ATTENZIONE"> +<!ENTITY Caution "Attenzione"> +<!ENTITY caution "Attenzione"> +<!ENTITY Chapter "Capitolo"> +<!ENTITY chapter "capitolo"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedica"> +<!ENTITY dedication "Dedica"> +<!ENTITY Edition "Edizione"> +<!ENTITY edition "Edizione"> +<!ENTITY Equation "Equazione"> +<!ENTITY equation "Equazione"> +<!ENTITY Example "Esempio"> +<!ENTITY example "Esempio"> +<!ENTITY Figure "Figura"> +<!ENTITY figure "Figura"> +<!ENTITY Glossary "Glossario"> +<!ENTITY glossary "Glossario"> +<!ENTITY GlossSee "Vedi"> +<!ENTITY glosssee "Vedi"> +<!ENTITY GlossSeeAlso "Vedi Anche"> +<!ENTITY glossseealso "Vedi Anche"> +<!ENTITY IMPORTANT "IMPORTANTE"> +<!ENTITY important "Importante"> +<!ENTITY Important "Importante"> +<!ENTITY Index "Indice"> +<!ENTITY index "Indice"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Note Legali"> +<!ENTITY legalnotice "Note Legali"> +<!ENTITY MsgAud "Pubblico"> +<!ENTITY msgaud "Pubblico"> +<!ENTITY MsgLevel "Livello"> +<!ENTITY msglevel "Livello"> +<!ENTITY MsgOrig "Origine"> +<!ENTITY msgorig "Origine"> +<!ENTITY NOTE "NOTA"> +<!ENTITY Note "Nota"> +<!ENTITY note "Nota"> +<!ENTITY Part "Parte"> +<!ENTITY part "Parte"> +<!ENTITY Preface "Prefazione"> +<!ENTITY preface "Prefazione"> +<!ENTITY Procedure "Procedura"> +<!ENTITY procedure "Procedura"> +<!ENTITY ProductionSet "Produzione"> +<!ENTITY Published "Pubblicato"> +<!ENTITY published "Pubblicato"> +<!ENTITY Question "D:"> +<!ENTITY question "D:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Riferimento"> +<!ENTITY reference "Riferimento"> +<!ENTITY RefName "Nome"> +<!ENTITY refname "Nome"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Sinossi"> +<!ENTITY refsynopsisdiv "Sinossi"> +<!ENTITY RevHistory "Diario delle Revisioni"> +<!ENTITY revhistory "Diario delle Revisioni"> +<!ENTITY revision "Revisione"> +<!ENTITY Revision "Revisione"> +<!ENTITY sect1 "Sezione"> +<!ENTITY sect2 "Sezione"> +<!ENTITY sect3 "Sezione"> +<!ENTITY sect4 "Sezione"> +<!ENTITY sect5 "Sezione"> +<!ENTITY section "Sezione"> +<!ENTITY Section "Sezione"> +<!ENTITY See "Vd."> +<!ENTITY see "Vd."> +<!ENTITY SeeAlso "Vd. Anche"> +<!ENTITY seealso "Vd. Anche"> +<!ENTITY Seealso "Vd. anche"> +<!ENTITY set "Raccolta"> +<!ENTITY Set "Raccolta"> +<!ENTITY setindex "Indice Raccolta"> +<!ENTITY SetIndex "Indice Raccolta"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "nota a margine"> +<!ENTITY step "passo"> +<!ENTITY Step "Passo"> +<!ENTITY Table "Tabella"> +<!ENTITY table "Tabella"> +<!ENTITY tip "Suggerimento"> +<!ENTITY TIP "SUGGERIMENTO"> +<!ENTITY Tip "Suggerimento"> +<!ENTITY Warning "Avvertimento"> +<!ENTITY warning "avvertimento"> +<!ENTITY WARNING "AVVERTIMENTO"> +<!ENTITY and "e"> +<!ENTITY by "di"> +<!ENTITY Edited "A cura"> +<!ENTITY edited "A cura"> +<!ENTITY Editedby "A cura di"> +<!ENTITY editedby "A cura di"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elemento non esistente"> +<!ENTITY notes "Note"> +<!ENTITY Notes "Note"> +<!ENTITY Pgs "pp."> +<!ENTITY pgs "pp."> +<!ENTITY Revisedby "Revisionato da: "> +<!ENTITY revisedby "Revisionato da: "> +<!ENTITY TableNotes "Note"> +<!ENTITY tablenotes "Note"> +<!ENTITY TableofContents "Sommario"> +<!ENTITY tableofcontents "Sommario"> +<!ENTITY unexpectedelementname "Nome elemento inaspettato"> +<!ENTITY unsupported "non supportato"> +<!ENTITY xrefto "riferimento a"> +<!ENTITY listofequations "Lista delle Equazioni"> +<!ENTITY ListofEquations "Lista delle Equazioni"> +<!ENTITY ListofExamples "Lista degli Esempi"> +<!ENTITY listofexamples "Lista degli Esempi"> +<!ENTITY ListofFigures "Lista delle Figure"> +<!ENTITY listoffigures "Lista delle Figure"> +<!ENTITY listoftables "Lista delle Tabelle"> +<!ENTITY ListofTables "Lista delle Tabelle"> +<!ENTITY ListofUnknown "Lista degli Sconosciuti"> +<!ENTITY listofunknown "Lista degli Sconosciuti"> +<!ENTITY nav-home "Partenza"> +<!ENTITY nav-next "Avanti"> +<!ENTITY nav-next-sibling "Salta Avanti"> +<!ENTITY nav-prev "Indietro"> +<!ENTITY nav-prev-sibling "Salta Indietro"> +<!ENTITY nav-up "Risali"> +<!ENTITY Draft "Bozza"> +<!ENTITY above "sopra"> +<!ENTITY below "sotto"> +<!ENTITY sectioncalled "la sezione chiamata"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1ja.dsl b/common/dbl1ja.dsl new file mode 100644 index 0000000..6d4acd0 --- /dev/null +++ b/common/dbl1ja.dsl @@ -0,0 +1,445 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % ja.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//JA" + "dbl1ja.ent"> +%ja.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ja"> +<style-specification-body> + +;; $Id: dbl1ja.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Karl Critz, kcritz@mathworks.com, contributed the original dbl1ja.ent file +;; ISHIDA Eri, eri@laser5.co.jp +;; Ryan Shaw, ryan@silveregg.co.jp + +(define (ja-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ja-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix;%n" + "%t&appendix;")) + (list (normalize "article") (string-append %gentext-ja-start-quote% + "%t" + %gentext-ja-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter1;%n&Chapter2;" + "%t&chapter;")) + (list (normalize "equation") "&Equation;%n") + (list (normalize "example") "&Example;%n") + (list (normalize "figure") "&Figure;%n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part;%n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure;%n, %t") + (list (normalize "reference") "&Reference;%n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sect1") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sect2") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sect3") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sect4") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sect5") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section;%n" + "%t§ion;")) + (list (normalize "sidebar") "%t&sidebar;") + (list (normalize "step") "&step;%n") + (list (normalize "table") "&Table;%n"))) + +(define (gentext-ja-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ja-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ja-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal "∈")) + ((equal? (gi before) (normalize "chapter")) + (literal "∈")) + ((equal? (gi before) (normalize "sect1")) + (literal "∈")) + (else + (literal "∈")))) + +;; Should the TOC come first or last? +;; +(define %generate-ja-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ja-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter1;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ja-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ja-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ja-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ja-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ja-intra-label-sep) + (list)) + +(define (ja-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ja-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ja-intra-label-sep))) + (sep (assoc name (ja-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ja-label-title-sep) + (list)) + +(define (ja-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") "&Chapter2;") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ja-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ja-label-title-sep))) + (sep (assoc name (ja-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ja-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ja-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ja-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ja-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ja$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ja-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ja-start-quote% (dingbat "ldquo")) + +(define %gentext-ja-end-quote% (dingbat "rdquo")) + +(define %gentext-ja-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ja-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ja-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ja-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ja-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ja-page% "") + +(define %gentext-ja-and% "∧") + +(define %gentext-ja-listcomma% "&listcomma;") + +(define %gentext-ja-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ja-bibl-pages% "&Pgs;") + +(define %gentext-ja-endnotes% "&Notes;") + +(define %gentext-ja-table-endnotes% "&TableNotes;:") + +(define %gentext-ja-index-see% "&See;") + +(define %gentext-ja-index-seealso% "&SeeAlso;") + + +(define (gentext-ja-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ja-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ja-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ja-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ja-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ja-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ja.ent b/common/dbl1ja.ent new file mode 100644 index 0000000..c59b92d --- /dev/null +++ b/common/dbl1ja.ent @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-6982;\U-8981;"> +<!ENTITY abstract "\U-6982;\U-8981;"> +<!ENTITY Answer "\U-7B54;\U-FF1A;"> +<!ENTITY answer "\U-7B54;\U-FF1A;"> +<!ENTITY Appendix "\U-4ED8;\U-9332;"> +<!ENTITY appendix "\U-4ED8;\U-9332;"> +<!ENTITY Article "\U-9805;\U-76EE;"> +<!ENTITY article "\U-9805;\U-76EE;"> +<!ENTITY Bibliography "\U-53C2;\U-8003;\U-6587;\U-732E;"> +<!ENTITY bibliography "\U-53C2;\U-8003;\U-6587;\U-732E;"> +<!ENTITY Book "\U-30D6;\U-30C3;\U-30AF;"> +<!ENTITY book "\U-30D6;\U-30C3;\U-30AF;"> +<!ENTITY Caution "\U-6CE8;\U-610F;"> +<!ENTITY caution "\U-6CE8;\U-610F;"> +<!ENTITY CAUTION "\U-6CE8;\U-610F;"> +<!ENTITY chapter "\U-7AE0;"> +<!ENTITY Chapter "\U-7AE0;"> +<!ENTITY chapter1 "\U-7B2C;"> +<!ENTITY Chapter1 "\U-7B2C;"> +<!ENTITY Chapter2 "\U-7AE0;"> +<!ENTITY chapter2 "\U-7AE0;"> +<!ENTITY Colophon "\U-5965;\U-4ED8;"> +<!ENTITY colophon "\U-5965;\U-4ED8;"> +<!ENTITY Copyright "\U-88FD;\U-4F5C;\U-8457;\U-4F5C;"> +<!ENTITY copyright "\U-88FD;\U-4F5C;\U-8457;\U-4F5C;"> +<!ENTITY Dedication "\U-8B1D;\U-8F9E;"> +<!ENTITY dedication "\U-8B1D;\U-8F9E;"> +<!ENTITY Edition "\U-7DE8;\U-96C6;"> +<!ENTITY edition "\U-7DE8;\U-96C6;"> +<!ENTITY Equation "\U-5F0F;"> +<!ENTITY equation "\U-5F0F;"> +<!ENTITY Example "\U-4F8B;"> +<!ENTITY example "\U-4F8B;"> +<!ENTITY Figure "\U-56F3;"> +<!ENTITY figure "\U-56F3;"> +<!ENTITY Glossary "\U-7528;\U-8A9E;\U-96C6;"> +<!ENTITY glossary "\U-7528;\U-8A9E;\U-96C6;"> +<!ENTITY GlossSee "\U-53C2;\U-7167;"> +<!ENTITY glosssee "\U-53C2;\U-7167;"> +<!ENTITY GlossSeeAlso "\U-53C2;\U-7167;"> +<!ENTITY glossseealso "\U-53C2;\U-7167;"> +<!ENTITY IMPORTANT "\U-91CD;\U-8981;\U-9805;\U-76EE;"> +<!ENTITY Important "\U-91CD;\U-8981;\U-9805;\U-76EE;"> +<!ENTITY important "\U-91CD;\U-8981;\U-9805;\U-76EE;"> +<!ENTITY Index "\U-76EE;\U-6B21;"> +<!ENTITY index "\U-76EE;\U-6B21;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud "\U-5BFE;\U-8C61;\U-8005;"> +<!ENTITY msgaud "\U-5BFE;\U-8C61;\U-8005;"> +<!ENTITY MsgLevel "\U-30EC;\U-30D9;\U-30EB;"> +<!ENTITY msglevel "\U-30EC;\U-30D9;\U-30EB;"> +<!ENTITY MsgOrig "\U-767A;\U-4FE1;\U-5143;"> +<!ENTITY msgorig "\U-767A;\U-4FE1;\U-5143;"> +<!ENTITY note "\U-6CE8;\U-610F;"> +<!ENTITY Note "\U-6CE8;\U-610F;"> +<!ENTITY NOTE "\U-6CE8;\U-610F;"> +<!ENTITY Part "\U-30D1;\U-30FC;\U-30C8;"> +<!ENTITY part "\U-30D1;\U-30FC;\U-30C8;"> +<!ENTITY Preface "\U-5E8F;\U-6587;"> +<!ENTITY preface "\U-5E8F;\U-6587;"> +<!ENTITY Procedure "\U-624B;\U-9806;"> +<!ENTITY procedure "\U-624B;\U-9806;"> +<!ENTITY ProductionSet "\U-30D7;\U-30ED;\U-30C0;\U-30AF;\U-30B7;\U-30E7;\U-30F3;"> +<!ENTITY Published "\U-767A;\U-884C;"> +<!ENTITY published "\U-767A;\U-884C;"> +<!ENTITY Question "\U-554F;\U-FF1A;"> +<!ENTITY question "\U-554F;\U-FF1A;"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-53C2;\U-7167;"> +<!ENTITY reference "\U-53C2;\U-7167;"> +<!ENTITY RefName "\U-540D;\U-524D;"> +<!ENTITY refname "\U-540D;\U-524D;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-6982;\U-8981;"> +<!ENTITY refsynopsisdiv "\U-6982;\U-8981;"> +<!ENTITY RevHistory "\U-6539;\U-8A02;\U-5C65;\U-6B74;"> +<!ENTITY revhistory "\U-6539;\U-8A02;\U-5C65;\U-6B74;"> +<!ENTITY revision "\U-6539;\U-8A02;"> +<!ENTITY Revision "\U-6539;\U-8A02;"> +<!ENTITY sect1 "\U-9805;"> +<!ENTITY sect2 "\U-9805;"> +<!ENTITY sect3 "\U-9805;"> +<!ENTITY sect4 "\U-9805;"> +<!ENTITY sect5 "\U-9805;"> +<!ENTITY Section "\U-9805;"> +<!ENTITY section "\U-9805;"> +<!ENTITY See "\U-53C2;\U-7167;"> +<!ENTITY see "\U-53C2;\U-7167;"> +<!ENTITY seealso "\U-53C2;\U-7167;"> +<!ENTITY SeeAlso "\U-53C2;\U-7167;"> +<!ENTITY Seealso "\U-53C2;\U-7167;"> +<!ENTITY Set "\U-8A2D;\U-5B9A;"> +<!ENTITY set "\U-8A2D;\U-5B9A;"> +<!ENTITY SetIndex "\U-76EE;\U-6B21;\U-8A2D;\U-5B9A;"> +<!ENTITY setindex "\U-76EE;\U-6B21;\U-8A2D;\U-5B9A;"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "\U-30B5;\U-30A4;\U-30C9;\U-30D0;\U-30FC;"> +<!ENTITY step "\U-30B9;\U-30C6;\U-30C3;\U-30D7;"> +<!ENTITY Step "\U-30B9;\U-30C6;\U-30C3;\U-30D7;"> +<!ENTITY table "\U-8868;"> +<!ENTITY Table "\U-8868;"> +<!ENTITY TIP "\U-30C6;\U-30A3;\U-30C3;\U-30D7;"> +<!ENTITY Tip "\U-30C6;\U-30A3;\U-30C3;\U-30D7;"> +<!ENTITY tip "\U-30C6;\U-30A3;\U-30C3;\U-30D7;"> +<!ENTITY WARNING "\U-8B66;\U-544A;"> +<!ENTITY Warning "\U-8B66;\U-544A;"> +<!ENTITY warning "\U-8B66;\U-544A;"> +<!ENTITY and "\U-3001;"> +<!ENTITY by "\U-FF1A;"> +<!ENTITY Edited "\U-7DE8;\U-8005;"> +<!ENTITY edited "\U-7DE8;\U-8005;"> +<!ENTITY Editedby "\U-7DE8;\U-8005;\U-FF1A;"> +<!ENTITY editedby "\U-7DE8;\U-8005;\U-FF1A;"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-8981;\U-7D20;\U-304C;\U-5B58;\U-5728;\U-3057;\U-307E;\U-305B;\U-3093;"> +<!ENTITY notes "\U-6CE8;\U-610F;"> +<!ENTITY Notes "\U-6CE8;\U-610F;"> +<!ENTITY Pgs "\U-5067;\U-732E;"> +<!ENTITY pgs "\U-5067;\U-732E;"> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "\U-6CE8;\U-610F;"> +<!ENTITY tablenotes "\U-6CE8;\U-610F;"> +<!ENTITY TableofContents "\U-76EE;\U-6B21;"> +<!ENTITY tableofcontents "\U-76EE;\U-6B21;"> +<!ENTITY unexpectedelementname "\U-4E0D;\U-660E;\U-306A;\U-8981;\U-7D20;\U-540D;"> +<!ENTITY unsupported "\U-30B5;\U-30DD;\U-30FC;\U-30C8;\U-3057;\U-307E;\U-305B;\U-3093;"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-5F0F;\U-76EE;\U-6B21;"> +<!ENTITY ListofEquations "\U-5F0F;\U-76EE;\U-6B21;"> +<!ENTITY ListofExamples "\U-4F8B;\U-76EE;\U-6B21;"> +<!ENTITY listofexamples "\U-4F8B;\U-76EE;\U-6B21;"> +<!ENTITY ListofFigures "\U-56F3;\U-76EE;\U-6B21;"> +<!ENTITY listoffigures "\U-56F3;\U-76EE;\U-6B21;"> +<!ENTITY listoftables "\U-8868;\U-76EE;\U-6B21;"> +<!ENTITY ListofTables "\U-8868;\U-76EE;\U-6B21;"> +<!ENTITY ListofUnknown "\U-4E0D;\U-660E;\U-76EE;\U-6B21;"> +<!ENTITY listofunknown "\U-4E0D;\U-660E;\U-76EE;\U-6B21;"> +<!ENTITY nav-home "\U-30DB;\U-30FC;\U-30E0;"> +<!ENTITY nav-next "\U-6B21;\U-306E;\U-30DA;\U-30FC;\U-30B8;"> +<!ENTITY nav-next-sibling "\U-65E9;\U-9001;\U-308A;"> +<!ENTITY nav-prev "\U-524D;\U-306E;\U-30DA;\U-30FC;\U-30B8;"> +<!ENTITY nav-prev-sibling "\U-5DFB;\U-623B;\U-3057;"> +<!ENTITY nav-up "\U-4E0A;\U-306B;\U-623B;\U-308B;"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY sectioncalled "the section called"> diff --git a/common/dbl1ko.dsl b/common/dbl1ko.dsl new file mode 100644 index 0000000..cf80905 --- /dev/null +++ b/common/dbl1ko.dsl @@ -0,0 +1,455 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % ko.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//KO" + "dbl1ko.ent"> +%ko.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ko"> +<style-specification-body> + +;; +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributor: +;; Park Yong Joo (yongjoo@kldp.org) 2001/01/06 +;; + +(define (ko-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, Surname, FirstName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. SurNameFirstName [OtherName], Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + + + ;; Format is "SurNameFirstName" for Korean naming rules. + (if has_s (string-append + (if has_h " " "") + (data-of (node-list-first s_nl))) "") + (if has_f (string-append + (if (or has_h) " " "") + (data-of (node-list-first f_nl))) "") + ;; If you need "SurName FirstName" format, + ;; comment out upper 6 lines and use this. + ;; (if has_s (string-append + ;; (if has_h " " "") + ;; (data-of (node-list-first s_nl))) "") + ;; (if has_f (string-append + ;; (if (or has_h has_s) " " "") + ;; (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_s has_f ) " " "") + (data-of (node-list-first o_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ko-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "\U-C81C;\U-BAA9;\U-C774; %t\U-C778; &appendix;")) + (list (normalize "article") (string-append %gentext-ko-start-quote% + "%t" + %gentext-ko-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "%n\U-C7A5;" + "`%t' &chapter;")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "%n &Part;") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sect1") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sect2") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sect3") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sect4") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sect5") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "simplesect") (if %section-autolabel% + "%n\U-C808;" + "`%t' §ion;")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-ko-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ko-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ko-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal "\U-C758; ")) + ((equal? (gi before) (normalize "chapter")) + (literal "\U-C758; ")) + ((equal? (gi before) (normalize "sect1")) + (literal "\U-C758; ")) + (else + (literal "\U-C758; ")))) + +;; Should the TOC come first or last? +;; +(define %generate-ko-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ko-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&ISBN;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ko-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ko-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ko-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ko-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ko-intra-label-sep) + (list)) + +(define (ko-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ko-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ko-intra-label-sep))) + (sep (assoc name (ko-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ko-label-title-sep) + (list)) + +(define (ko-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ko-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ko-label-title-sep))) + (sep (assoc name (ko-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ko-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ko-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ko-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ko-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ko$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ko-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ko-start-quote% (dingbat "ldquo")) + +(define %gentext-ko-end-quote% (dingbat "rdquo")) + +(define %gentext-ko-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ko-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ko-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ko-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ko-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ko-page% "") + +(define %gentext-ko-and% "∧") + +(define %gentext-ko-listcomma% "&listcomma;") + +(define %gentext-ko-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ko-bibl-pages% "&Pgs;") + +(define %gentext-ko-endnotes% "&Notes;") + +(define %gentext-ko-table-endnotes% "&TableNotes;:") + +(define %gentext-ko-index-see% "&See;") + +(define %gentext-ko-index-seealso% "&SeeAlso;") + + +(define (gentext-ko-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ko-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ko-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ko-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ko-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ko-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ko.ent b/common/dbl1ko.ent new file mode 100644 index 0000000..d23e973 --- /dev/null +++ b/common/dbl1ko.ent @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-CD08;\U-B85D;"> +<!ENTITY abstract "\U-CD08;\U-B85D;"> +<!ENTITY Answer "\U-B2F5;\U-BCC0;"> +<!ENTITY answer "\U-B2F5;\U-BCC0;"> +<!ENTITY Appendix "\U-BD80;\U-B85D;"> +<!ENTITY appendix "\U-BD80;\U-B85D;"> +<!ENTITY Article "\U-BB38;\U-C11C;"> +<!ENTITY article "\U-BB38;\U-C11C;"> +<!ENTITY Bibliography "\U-C11C;\U-C9C0;\U-C0AC;\U-D56D;"> +<!ENTITY bibliography "\U-C11C;\U-C9C0;\U-C0AC;\U-D56D;"> +<!ENTITY Book "\U-CC45;"> +<!ENTITY book "\U-CC45;"> +<!ENTITY Caution "\U-ACBD;\U-ACE0;"> +<!ENTITY caution "\U-ACBD;\U-ACE0;"> +<!ENTITY CAUTION "[\U-ACBD;\U-ACE0;]"> +<!ENTITY Chapter "\U-C7A5;"> +<!ENTITY chapter "\U-C7A5;"> +<!ENTITY Colophon "\U-D310;\U-AD8C;"> +<!ENTITY colophon "\U-D310;\U-AD8C;"> +<!ENTITY Copyright "\U-C800;\U-C791;\U-AD8C;"> +<!ENTITY copyright "\U-C800;\U-C791;\U-AD8C;"> +<!ENTITY Dedication "\U-BC14;\U-CE58;\U-B294; \U-AE00;"> +<!ENTITY dedication "\U-BC14;\U-CE58;\U-B294; \U-AE00;"> +<!ENTITY Edition "\U-C5EE;\U-C74C;"> +<!ENTITY edition "\U-C5EE;\U-C74C;"> +<!ENTITY Equation "\U-C218;\U-C2DD;"> +<!ENTITY equation "\U-C218;\U-C2DD;"> +<!ENTITY Example "\U-C608;"> +<!ENTITY example "\U-C608;"> +<!ENTITY Figure "\U-ADF8;\U-B9BC;"> +<!ENTITY figure "\U-ADF8;\U-B9BC;"> +<!ENTITY Glossary "\U-C6A9;\U-C5B4;\U-D574;\U-C124;"> +<!ENTITY glossary "\U-C6A9;\U-C5B4;\U-D574;\U-C124;"> +<!ENTITY GlossSee "\U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY glosssee "\U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY GlossSeeAlso "\U-B2E4;\U-B978; \U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY glossseealso "\U-B2E4;\U-B978; \U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY Important "\U-C911;\U-C694;"> +<!ENTITY important "\U-C911;\U-C694;"> +<!ENTITY IMPORTANT "[\U-C911;\U-C694;]"> +<!ENTITY Index "\U-C0C9;\U-C778;"> +<!ENTITY index "\U-C0C9;\U-C778;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-BC95;\U-C801; \U-ACF5;\U-C9C0;"> +<!ENTITY legalnotice "\U-BC95;\U-C801; \U-ACF5;\U-C9C0;"> +<!ENTITY MsgAud "\U-BC1B;\U-B294; \U-C774;"> +<!ENTITY msgaud "\U-BC1B;\U-B294; \U-C774;"> +<!ENTITY MsgLevel "\U-C911;\U-C694;\U-B3C4;"> +<!ENTITY msglevel "\U-C911;\U-C694;\U-B3C4;"> +<!ENTITY MsgOrig "\U-BCF4;\U-B0B4;\U-B294; \U-C774;"> +<!ENTITY msgorig "\U-BCF4;\U-B0B4;\U-B294; \U-C774;"> +<!ENTITY Note "\U-CC38;\U-ACE0;"> +<!ENTITY note "\U-CC38;\U-ACE0;"> +<!ENTITY NOTE "[\U-CC38;\U-ACE0;]"> +<!ENTITY Part "\U-BD80;"> +<!ENTITY part "\U-BD80;"> +<!ENTITY Preface "\U-C11C;\U-BB38;"> +<!ENTITY preface "\U-C11C;\U-BB38;"> +<!ENTITY Procedure "\U-C808;\U-CC28;"> +<!ENTITY procedure "\U-C808;\U-CC28;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "\U-D3B4;\U-B0C4;"> +<!ENTITY published "\U-D3B4;\U-B0C4;"> +<!ENTITY Question "\U-C9C8;\U-BB38;"> +<!ENTITY question "\U-C9C8;\U-BB38;"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-CC38;\U-ACE0;\U-BB38;\U-D5CC;"> +<!ENTITY reference "\U-CC38;\U-ACE0;\U-BB38;\U-D5CC;"> +<!ENTITY RefName "\U-C81C;\U-BAA9;"> +<!ENTITY refname "\U-C81C;\U-BAA9;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-C694;\U-C57D;"> +<!ENTITY refsynopsisdiv "\U-C694;\U-C57D;"> +<!ENTITY RevHistory "\U-ACE0;\U-CE5C; \U-ACFC;\U-C815;"> +<!ENTITY revhistory "\U-ACE0;\U-CE5C; \U-ACFC;\U-C815;"> +<!ENTITY Revision "\U-ACE0;\U-CE68;"> +<!ENTITY revision "\U-ACE0;\U-CE68;"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "\U-C808;"> +<!ENTITY section "\U-C808;"> +<!ENTITY See "\U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY see "\U-C0B4;\U-D3B4;\U-BCFC; \U-B0B4;\U-C6A9;"> +<!ENTITY Seealso "\U-C0B4;\U-D3B4;\U-BCFC; \U-B2E4;\U-B978; \U-B0B4;\U-C6A9;"> +<!ENTITY SeeAlso "[\U-C0B4;\U-D3B4;\U-BCFC; \U-B2E4;\U-B978; \U-B0B4;\U-C6A9;]"> +<!ENTITY seealso "[\U-C0B4;\U-D3B4;\U-BCFC; \U-B2E4;\U-B978; \U-B0B4;\U-C6A9;]"> +<!ENTITY Set "\U-C804;\U-C9D1;"> +<!ENTITY set "\U-C804;\U-C9D1;"> +<!ENTITY SetIndex "\U-C804;\U-C9D1; \U-C0C9;\U-C778;"> +<!ENTITY setindex "\U-C804;\U-C9D1; \U-C0C9;\U-C778;"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "\U-B367;\U-BD99;\U-C784;"> +<!ENTITY Step "\U-B2E8;\U-ACC4;"> +<!ENTITY step "\U-B2E8;\U-ACC4;"> +<!ENTITY Table "\U-D45C;"> +<!ENTITY table "\U-D45C;"> +<!ENTITY Tip "\U-C791;\U-C740; \U-C815;\U-BCF4;"> +<!ENTITY tip "\U-C791;\U-C740; \U-C815;\U-BCF4;"> +<!ENTITY TIP "[\U-C791;\U-C740; \U-C815;\U-BCF4;]"> +<!ENTITY WARNING "\U-C8FC;\U-C758;!"> +<!ENTITY Warning "\U-C8FC;\U-C758;"> +<!ENTITY warning "\U-C8FC;\U-C758;"> +<!ENTITY and "\U-ADF8;\U-B9AC;\U-ACE0;"> +<!ENTITY by "\U-C9C0;\U-C740;\U-C774;"> +<!ENTITY Edited "\U-C5EE;\U-C74C;"> +<!ENTITY edited "\U-C5EE;\U-C74C;"> +<!ENTITY Editedby "\U-C5EE;\U-C740;\U-C774;"> +<!ENTITY editedby "\U-C5EE;\U-C740;\U-C774;"> +<!ENTITY in "-"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-C874;\U-C7AC;\U-D558;\U-C9C0; \U-C54A;\U-B294; \U-AE30;\U-CD08;\U-C694;\U-C18C;\U-C785;\U-B2C8;\U-B2E4;"> +<!ENTITY notes "\U-C8FC;\U-C11D;"> +<!ENTITY Notes "\U-C8FC;\U-C11D;"> +<!ENTITY Pgs "Pgs."> +<!ENTITY pgs "Pgs."> +<!ENTITY Revisedby "\U-ACE0;\U-CE5C;\U-C774; "> +<!ENTITY revisedby "\U-ACE0;\U-CE5C;\U-C774; "> +<!ENTITY TableNotes "\U-CC38;\U-ACE0;"> +<!ENTITY tablenotes "\U-CC38;\U-ACE0;"> +<!ENTITY TableofContents "\U-CC28;\U-B840;"> +<!ENTITY tableofcontents "\U-CC28;\U-B840;"> +<!ENTITY unexpectedelementname "\U-C54C; \U-C218; \U-C5C6;\U-B294; \U-AE30;\U-CD08;\U-C694;\U-C18C; \U-C774;\U-B984;\U-C785;\U-B2C8;\U-B2E4;"> +<!ENTITY unsupported "\U-C9C0;\U-C6D0;\U-B418;\U-C9C0; \U-C54A;\U-C2B5;\U-B2C8;\U-B2E4;"> +<!ENTITY xrefto "\U-C774; \U-ACF3;\U-C744; \U-CC38;\U-C870;\U-D558;\U-C138;\U-C694; : "> +<!ENTITY listofequations "\U-C218;\U-C2DD; \U-BAA9;\U-B85D;"> +<!ENTITY ListofEquations "\U-C218;\U-C2DD; \U-BAA9;\U-B85D;"> +<!ENTITY ListofExamples "\U-C608; \U-BAA9;\U-B85D;"> +<!ENTITY listofexamples "\U-C608; \U-BAA9;\U-B85D;"> +<!ENTITY ListofFigures "\U-ADF8;\U-B9BC; \U-BAA9;\U-B85D;"> +<!ENTITY listoffigures "\U-ADF8;\U-B9BC; \U-BAA9;\U-B85D;"> +<!ENTITY listoftables "\U-D45C; \U-BAA9;\U-B85D;"> +<!ENTITY ListofTables "\U-D45C; \U-BAA9;\U-B85D;"> +<!ENTITY ListofUnknown "\U-AE30;\U-D0C0; \U-BAA9;\U-B85D;"> +<!ENTITY listofunknown "\U-AE30;\U-D0C0; \U-BAA9;\U-B85D;"> +<!ENTITY nav-home "\U-CC98;\U-C74C;\U-C73C;\U-B85C;"> +<!ENTITY nav-next "\U-B2E4;\U-C74C;"> +<!ENTITY nav-next-sibling "\U-B2E4;\U-C74C;\U-C73C;\U-B85C; \U-AC74;\U-B108;\U-B700;"> +<!ENTITY nav-prev "\U-C774;\U-C804;"> +<!ENTITY nav-prev-sibling "\U-C774;\U-C804;\U-C73C;\U-B85C; \U-AC74;\U-B108;\U-B700;"> +<!ENTITY nav-up "\U-C704;\U-B85C;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> diff --git a/common/dbl1nl.dsl b/common/dbl1nl.dsl new file mode 100644 index 0000000..a8590d1 --- /dev/null +++ b/common/dbl1nl.dsl @@ -0,0 +1,440 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % nl.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NL" + "dbl1nl.ent"> +%nl.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-nl"> +<style-specification-body> + +;; $Id: dbl1nl.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- +;; +;; This is the Dutch localization +;; +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Hugo van der Kooij, hvdkooij@caiw.nl +;; Frederik Fouvry, fouvry@essex.ac.uk + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (nl-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (nl-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; %t")) + (list (normalize "article") (string-append %gentext-nl-start-quote% + "%t" + %gentext-nl-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-nl-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (nl-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (nl-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-nl-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (nl-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-nl-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (nl-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-nl-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-nl-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-nl-intra-label-sep) + (list)) + +(define (nl-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-nl-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-nl-intra-label-sep))) + (sep (assoc name (nl-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-nl-label-title-sep) + (list)) + +(define (nl-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-nl-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-nl-label-title-sep))) + (sep (assoc name (nl-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (nl-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (nl-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (nl-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (nl-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-nl$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (nl-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-nl-start-quote% (dingbat "ldquo")) + +(define %gentext-nl-end-quote% (dingbat "rdquo")) + +(define %gentext-nl-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-nl-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-nl-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-nl-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-nl-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-nl-page% "") + +(define %gentext-nl-and% "∧") + +(define %gentext-nl-listcomma% "&listcomma;") + +(define %gentext-nl-lastlistcomma% "&lastlistcomma;") + +(define %gentext-nl-bibl-pages% "&Pgs;") + +(define %gentext-nl-endnotes% "&Notes;") + +(define %gentext-nl-table-endnotes% "&TableNotes;:") + +(define %gentext-nl-index-see% "&See;") + +(define %gentext-nl-index-seealso% "&SeeAlso;") + + +(define (gentext-nl-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-nl-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-nl-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-nl-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-nl-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-nl-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1nl.ent b/common/dbl1nl.ent new file mode 100644 index 0000000..d6d5e03 --- /dev/null +++ b/common/dbl1nl.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Samenvatting"> +<!ENTITY abstract "Samenvatting"> +<!ENTITY Answer "Antwoord:"> +<!ENTITY answer "Antwoord:"> +<!ENTITY Appendix "Bijlage"> +<!ENTITY appendix "Bijlage"> +<!ENTITY Article "Artikel"> +<!ENTITY article "Artikel"> +<!ENTITY Bibliography "Literatuurlijst"> +<!ENTITY bibliography "Literatuurlijst"> +<!ENTITY Book "Boek"> +<!ENTITY book "Boek"> +<!ENTITY CAUTION "LET OP"> +<!ENTITY Caution "Let op"> +<!ENTITY caution "Let op"> +<!ENTITY Chapter "Hoofdstuk"> +<!ENTITY chapter "hoofdstuk"> +<!ENTITY Colophon "Colofon"> +<!ENTITY colophon "Colofon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Opdracht"> +<!ENTITY dedication "Opdracht"> +<!ENTITY Edition "Uitgave"> +<!ENTITY edition "Uitgave"> +<!ENTITY Equation "Vergelijking"> +<!ENTITY equation "Vergelijking"> +<!ENTITY Example "Voorbeeld"> +<!ENTITY example "Voorbeeld"> +<!ENTITY Figure "Figuur"> +<!ENTITY figure "Figuur"> +<!ENTITY Glossary "Woordenlijst"> +<!ENTITY glossary "Woordenlijst"> +<!ENTITY GlossSee "Zie"> +<!ENTITY glosssee "Zie"> +<!ENTITY GlossSeeAlso "Zie ook"> +<!ENTITY glossseealso "Zie ook"> +<!ENTITY IMPORTANT "BELANGRIJK"> +<!ENTITY Important "Belangrijk"> +<!ENTITY important "Belangrijk"> +<!ENTITY Index "Register"> +<!ENTITY index "Register"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Bericht"> +<!ENTITY legalnotice "Bericht"> +<!ENTITY MsgAud "Doelgroep"> +<!ENTITY msgaud "Doelgroep"> +<!ENTITY MsgLevel "Niveau"> +<!ENTITY msglevel "Niveau"> +<!ENTITY MsgOrig "Herkomst"> +<!ENTITY msgorig "Herkomst"> +<!ENTITY NOTE "OPMERKING"> +<!ENTITY Note "Opmerking"> +<!ENTITY note "Opmerking"> +<!ENTITY Part "Deel"> +<!ENTITY part "Deel"> +<!ENTITY Preface "Voorwoord"> +<!ENTITY preface "Voorwoord"> +<!ENTITY Procedure "Procedure"> +<!ENTITY procedure "Procedure"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Uitgegeven"> +<!ENTITY published "Uitgegeven"> +<!ENTITY Question "Vraag:"> +<!ENTITY question "Vraag:"> +<!ENTITY RefEntry "Referentielemma"> +<!ENTITY refentry "Referentielemma"> +<!ENTITY Reference "Referentie"> +<!ENTITY reference "Referentie"> +<!ENTITY RefName "Referentienaam"> +<!ENTITY refname "Referentienaam"> +<!ENTITY RefSection "Referentieparagraaf"> +<!ENTITY refsection "Referentieparagraaf"> +<!ENTITY RefSynopsisDiv "Referentiesamenvatting"> +<!ENTITY refsynopsisdiv "Referentiesamenvatting"> +<!ENTITY RevHistory "Wijzigingen"> +<!ENTITY revhistory "Wijzigingen"> +<!ENTITY Revision "Herziening"> +<!ENTITY revision "Herziening"> +<!ENTITY sect1 "Paragraaf"> +<!ENTITY sect2 "Paragraaf"> +<!ENTITY sect3 "Paragraaf"> +<!ENTITY sect4 "Paragraaf"> +<!ENTITY sect5 "Paragraaf"> +<!ENTITY Section "Paragraaf"> +<!ENTITY section "paragraaf"> +<!ENTITY See "Zie"> +<!ENTITY see "Zie"> +<!ENTITY SeeAlso "Zie ook"> +<!ENTITY Seealso "Zie ook"> +<!ENTITY seealso "Zie ook"> +<!ENTITY Set "Verzameling"> +<!ENTITY set "Verzameling"> +<!ENTITY SetIndex "Hoofdregister"> +<!ENTITY setindex "Hoofdregister"> +<!ENTITY Sidebar "Excursie"> +<!ENTITY sidebar "excursie"> +<!ENTITY Step "Stap"> +<!ENTITY step "stap"> +<!ENTITY Table "Tabel"> +<!ENTITY table "Tabel"> +<!ENTITY TIP "TIP"> +<!ENTITY Tip "Tip"> +<!ENTITY tip "Tip"> +<!ENTITY WARNING "WAARSCHUWING"> +<!ENTITY Warning "Waarschuwing"> +<!ENTITY warning "Waarschuwing"> +<!ENTITY and "en"> +<!ENTITY by "door"> +<!ENTITY Edited "Redactie"> +<!ENTITY edited "Redactie"> +<!ENTITY Editedby "Redactie door"> +<!ENTITY editedby "Redactie door"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "niet bestaand element"> +<!ENTITY notes "Noten"> +<!ENTITY Notes "Noten"> +<!ENTITY Pgs "blz."> +<!ENTITY pgs "blz."> +<!ENTITY Revisedby "Herzien door: "> +<!ENTITY revisedby "Herzien door: "> +<!ENTITY TableNotes "Opmerkingen"> +<!ENTITY tablenotes "Opmerkingen"> +<!ENTITY TableofContents "Inhoudsopgave"> +<!ENTITY tableofcontents "Inhoudsopgave"> +<!ENTITY unexpectedelementname "ONVERWACHT-ELEMENT"> +<!ENTITY unsupported "niet ondersteund"> +<!ENTITY xrefto "verwijzing naar"> +<!ENTITY listofequations "Lijst van vergelijkingen"> +<!ENTITY ListofEquations "Lijst van vergelijkingen"> +<!ENTITY ListofExamples "Lijst van voorbeelden"> +<!ENTITY listofexamples "Lijst van voorbeelden"> +<!ENTITY ListofFigures "Lijst van figuren"> +<!ENTITY listoffigures "Lijst van figuren"> +<!ENTITY listoftables "Lijst van tabellen"> +<!ENTITY ListofTables "Lijst van tabellen"> +<!ENTITY ListofUnknown "Lijst van ???"> +<!ENTITY listofunknown "Lijst van ???"> +<!ENTITY nav-home "Begin"> +<!ENTITY nav-next "Volgende"> +<!ENTITY nav-next-sibling "Verder vooruit"> +<!ENTITY nav-prev "Terug"> +<!ENTITY nav-prev-sibling "Verder terug"> +<!ENTITY nav-up "Omhoog"> +<!ENTITY Draft "Ontwerp"> +<!ENTITY above "boven"> +<!ENTITY below "onder"> +<!ENTITY sectioncalled "de paragraaf"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz\U-00EB;\U-00EF;\U-00E9;"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ\U-00CB;\U-00CF;\U-00C9;"> diff --git a/common/dbl1nn.dsl b/common/dbl1nn.dsl new file mode 100644 index 0000000..e026f98 --- /dev/null +++ b/common/dbl1nn.dsl @@ -0,0 +1,445 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % nn.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NN" + "dbl1nn.ent"> +%nn.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-nn"> +<style-specification-body> + +;; $Id: dbl1nn.dsl,v 1.1 2001/11/14 20:57:53 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (nn-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (nn-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-nn-start-quote% + "%t" + %gentext-nn-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-nn-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (nn-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (nn-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-nn-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (nn-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-nn-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (nn-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-nn-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-nn-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-nn-intra-label-sep) + (list)) + +(define (nn-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-nn-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-nn-intra-label-sep))) + (sep (assoc name (nn-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-nn-label-title-sep) + (list)) + +(define (nn-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-nn-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-nn-label-title-sep))) + (sep (assoc name (nn-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (nn-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (nn-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (nn-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (nn-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-nn$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (nn-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-nn-start-quote% (dingbat "ldquo")) + +(define %gentext-nn-end-quote% (dingbat "rdquo")) + +(define %gentext-nn-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-nn-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-nn-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-nn-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-nn-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-nn-page% "") + +(define %gentext-nn-and% "∧") + +(define %gentext-nn-listcomma% "&listcomma;") + +(define %gentext-nn-lastlistcomma% "&lastlistcomma;") + +(define %gentext-nn-bibl-pages% "&Pgs;") + +(define %gentext-nn-endnotes% "&Notes;") + +(define %gentext-nn-table-endnotes% "&TableNotes;:") + +(define %gentext-nn-index-see% "&See;") + +(define %gentext-nn-index-seealso% "&SeeAlso;") + + +(define (gentext-nn-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-nn-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-nn-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-nn-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-nn-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-nn-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> + diff --git a/common/dbl1nn.ent b/common/dbl1nn.ent new file mode 100644 index 0000000..f1f449a --- /dev/null +++ b/common/dbl1nn.ent @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Samandrag"> +<!ENTITY abstract "Samandrag"> +<!ENTITY Answer "Svar"> +<!ENTITY answer "svar"> +<!ENTITY Appendix "Tillegg"> +<!ENTITY appendix "tillegg"> +<!ENTITY Article "Artikkel"> +<!ENTITY article "artikkel"> +<!ENTITY Bibliography "Bibliografi"> +<!ENTITY bibliography "bibliografi"> +<!ENTITY Book "Bok"> +<!ENTITY book "bok"> +<!ENTITY CAUTION "OBS"> +<!ENTITY Caution "Obs"> +<!ENTITY caution "OBS"> +<!ENTITY caution "Obs"> +<!ENTITY Chapter "Kapittel"> +<!ENTITY chapter "kapittel"> +<!ENTITY Colophon "Kolofon"> +<!ENTITY colophon "kolofon"> +<!ENTITY Copyright "Opphavsrett"> +<!ENTITY copyright "opphavsrett"> +<!ENTITY Dedication "Dedikasjon"> +<!ENTITY dedication "dedikasjon"> +<!ENTITY Edition "Utg\U-00E5;ve"> +<!ENTITY edition "utg\U-00E5;ve"> +<!ENTITY Equation "Formel"> +<!ENTITY equation "formel"> +<!ENTITY Example "D\U-00F8;me"> +<!ENTITY example "d\U-00F8;me"> +<!ENTITY Figure "Figur"> +<!ENTITY figure "figur"> +<!ENTITY Glossary "Ordliste"> +<!ENTITY glossary "ordliste"> +<!ENTITY GlossSee "Sj\U-00E5;"> +<!ENTITY glosssee "sj\U-00E5;"> +<!ENTITY GlossSeeAlso "Sj\U-00E5; \U-00F2;g"> +<!ENTITY glossseealso "sj\U-00E5; \U-00F2;g"> +<!ENTITY IMPORTANT "VIKTIG"> +<!ENTITY Important "Viktig"> +<!ENTITY important "viktig"> +<!ENTITY important "viktig"> +<!ENTITY Index "Indeks"> +<!ENTITY index "indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud "Publikum"> +<!ENTITY msgaud "publikum"> +<!ENTITY MsgLevel "Niv\U-00E5;"> +<!ENTITY msglevel "niv\U-00E5;"> +<!ENTITY MsgOrig "Opphav"> +<!ENTITY msgorig "Opphav"> +<!ENTITY NOTE "NOTAT"> +<!ENTITY Note "Notat"> +<!ENTITY note "NOTAT"> +<!ENTITY note "Notat"> +<!ENTITY Part "Del"> +<!ENTITY part "del"> +<!ENTITY Preface "Forord"> +<!ENTITY preface "forord"> +<!ENTITY Procedure "Prosedyre"> +<!ENTITY procedure "prosedyre"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Utgitt"> +<!ENTITY published "utgitt"> +<!ENTITY Question "Sp\U-00F8;rsm\U-00E5;l"> +<!ENTITY question "sp\U-00F8;rsm\U-00E5;l"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referanse"> +<!ENTITY reference "referanse"> +<!ENTITY RefName "Namn"> +<!ENTITY refname "namn"> +<!ENTITY RefSection "Del"> +<!ENTITY refsection "del"> +<!ENTITY RefSynopsisDiv "Oversyn"> +<!ENTITY refsynopsisdiv "oversyn"> +<!ENTITY RevHistory "Revisjonshistorie"> +<!ENTITY revhistory "revisjonshistorie"> +<!ENTITY Revision "Revisjon"> +<!ENTITY revision "revisjon"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Del"> +<!ENTITY section "del"> +<!ENTITY See "Sj\U-00E5;"> +<!ENTITY see "sj\U-00E5;"> +<!ENTITY SeeAlso "Sj\U-00E5; \U-00F2;g"> +<!ENTITY seealso "sj\U-00E5; \U-00F2;g"> +<!ENTITY Set "Set"> +<!ENTITY set "set"> +<!ENTITY SetIndex "Indeks"> +<!ENTITY setindex "Indeks"> +<!ENTITY Sidebar "Sidestolpe"> +<!ENTITY sidebar "sidestolpe"> +<!ENTITY Step "Steg"> +<!ENTITY step "steg"> +<!ENTITY Table "Tabell"> +<!ENTITY table "tabell"> +<!ENTITY TIP "TIPS"> +<!ENTITY Tip "Tips"> +<!ENTITY tip "tips"> +<!ENTITY tip "tips"> +<!ENTITY WARNING "\U-00C5;TVARING"> +<!ENTITY Warning "\U-00C5;tvaring"> +<!ENTITY warning "\U-00E5;tvaring"> +<!ENTITY warning "\U-00E5;tvaring"> +<!ENTITY Seealso "Sj\U-00E5; \U-00F2;g"> +<!ENTITY seealso "sj\U-00E5; \U-00F2;g"> +<!ENTITY TableofContents "Innhald"> +<!ENTITY tableofcontents "Innhald"> +<!ENTITY in "i"> +<!ENTITY by "av"> +<!ENTITY Edited "Redigert"> +<!ENTITY edited "redigert"> +<!ENTITY Editedby "Redigert av"> +<!ENTITY editedby "redigert av"> +<!ENTITY and "og"> +<!ENTITY listcomma ","> +<!ENTITY lastlistcomma ","> +<!ENTITY Notes "Merknader"> +<!ENTITY notes "merknader"> +<!ENTITY TableNotes "Merknader"> +<!ENTITY tablenotes "merknader"> +<!ENTITY nonexistantelement "ikkje-eksisterande element"> +<!ENTITY Pgs "Sider"> +<!ENTITY pgs "sider"> +<!ENTITY unsupported "ikkje st\U-00F8;tta"> +<!ENTITY xrefto "xref til"> +<!ENTITY unexpectedelementname "UVENTA-ELEMENTNAVN"> +<!ENTITY Revisedby "Revidert av: "> +<!ENTITY revisedby "revidert av: "> +<!ENTITY ListofTables "Tabelloversikt"> +<!ENTITY listoftables "tabelloversikt"> +<!ENTITY ListofExamples "D\U-00F8;meoversikt"> +<!ENTITY listofexamples "d\U-00F8;meoversikt"> +<!ENTITY ListofFigures "Figuroversikt"> +<!ENTITY listoffigures "figuroversikt"> +<!ENTITY ListofEquations "Formeloversikt"> +<!ENTITY listofequations "formeloversikt"> +<!ENTITY ListofUnknown "???-oversikt"> +<!ENTITY listofunknown "???-oversikt"> +<!ENTITY nav-prev "Att"> +<!ENTITY nav-prev-sibling "Raskt bakover"> +<!ENTITY nav-next-sibling "Raskt framover"> +<!ENTITY nav-next "Fram"> +<!ENTITY nav-up "Opp"> +<!ENTITY nav-home "Heim"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1no.dsl b/common/dbl1no.dsl new file mode 100644 index 0000000..4077e74 --- /dev/null +++ b/common/dbl1no.dsl @@ -0,0 +1,437 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % lat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"> +%lat1; +<!ENTITY % no.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//NO" + "dbl1no.ent"> +%no.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-no"> +<style-specification-body> + +;; $Id: dbl1no.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; Norsk Bokm\U-00E5;l localization. (a-ring) +;; Translated by Stig S. Bakken, ssb@guardian.no +;; Send changes to Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (no-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (no-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "tillegget kalt %t")) + (list (normalize "article") (string-append %gentext-no-start-quote% + "%t" + %gentext-no-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "kapittelet kalt %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "seksjonen kalt %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-no-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (no-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (no-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-no-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (no-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-no-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (no-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-no-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-no-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-no-intra-label-sep) + (list)) + +(define (no-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-no-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-no-intra-label-sep))) + (sep (assoc name (no-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-no-label-title-sep) + (list)) + +(define (no-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-no-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-no-label-title-sep))) + (sep (assoc name (no-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (no-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (no-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (no-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (no-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-no$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (no-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-no-start-quote% (dingbat "ldquo")) + +(define %gentext-no-end-quote% (dingbat "rdquo")) + +(define %gentext-no-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-no-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-no-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-no-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-no-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-no-page% "") + +(define %gentext-no-and% "∧") + +(define %gentext-no-listcomma% "&listcomma;") + +(define %gentext-no-lastlistcomma% "&lastlistcomma;") + +(define %gentext-no-bibl-pages% "&Pgs;") + +(define %gentext-no-endnotes% "&Notes;") + +(define %gentext-no-table-endnotes% "&TableNotes;:") + +(define %gentext-no-index-see% "&See;") + +(define %gentext-no-index-seealso% "&SeeAlso;") + + +(define (gentext-no-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-no-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-no-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-no-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-no-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-no-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1no.ent b/common/dbl1no.ent new file mode 100644 index 0000000..9ef8ad2 --- /dev/null +++ b/common/dbl1no.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstract"> +<!ENTITY abstract "Abstract"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Tillegg"> +<!ENTITY appendix "Tillegg"> +<!ENTITY Article ""> +<!ENTITY article ""> +<!ENTITY Bibliography "Bibliografi"> +<!ENTITY bibliography "Bibliografi"> +<!ENTITY Book ""> +<!ENTITY book ""> +<!ENTITY CAUTION "OBS"> +<!ENTITY Caution "Obs"> +<!ENTITY caution "Obs"> +<!ENTITY Chapter "Kapittel"> +<!ENTITY chapter "Kapittel"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedikasjon"> +<!ENTITY dedication "Dedikasjon"> +<!ENTITY Edition ""> +<!ENTITY edition ""> +<!ENTITY Equation "Formel"> +<!ENTITY equation "Formel"> +<!ENTITY Example "Eksempel"> +<!ENTITY example "Eksempel"> +<!ENTITY Figure "Figur"> +<!ENTITY figure "Figur"> +<!ENTITY Glossary "Ordliste"> +<!ENTITY glossary "Ordliste"> +<!ENTITY GlossSee "Se"> +<!ENTITY glosssee "Se"> +<!ENTITY GlossSeeAlso "Se Ogs\U-00E5;"> +<!ENTITY glossseealso "Se Ogs\U-00E5;"> +<!ENTITY IMPORTANT "VIKTIG"> +<!ENTITY Important "Viktig"> +<!ENTITY important "Viktig"> +<!ENTITY Index "Indeks"> +<!ENTITY index "Indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud "Publikum"> +<!ENTITY msgaud "Publikum"> +<!ENTITY MsgLevel "Niv\U-00E5;"> +<!ENTITY msglevel "Niv\U-00E5;"> +<!ENTITY MsgOrig "Opphav"> +<!ENTITY msgorig "Opphav"> +<!ENTITY NOTE "NOTAT"> +<!ENTITY Note "Notat"> +<!ENTITY note "Notat"> +<!ENTITY Part "Del"> +<!ENTITY part "Del"> +<!ENTITY Preface "Forord"> +<!ENTITY preface "Forord"> +<!ENTITY Procedure "Prosedyre"> +<!ENTITY procedure "Prosedyre"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published ""> +<!ENTITY published ""> +<!ENTITY Question "Q:"> +<!ENTITY question "Q:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referanse"> +<!ENTITY reference "Referanse"> +<!ENTITY RefName "Navn"> +<!ENTITY refname "Navn"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Revisjonshistorie"> +<!ENTITY revhistory "Revisjonshistorie"> +<!ENTITY Revision "Revisjon"> +<!ENTITY revision "Revisjon"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Seksjon"> +<!ENTITY section "seksjon"> +<!ENTITY See "Se"> +<!ENTITY see "Se"> +<!ENTITY SeeAlso "Se Ogs\U-00E5;"> +<!ENTITY Seealso "Se ogs\U-00E5;"> +<!ENTITY seealso "Se Ogs\U-00E5;"> +<!ENTITY Set ""> +<!ENTITY set ""> +<!ENTITY SetIndex "Indeks"> +<!ENTITY setindex "Indeks"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar ""> +<!ENTITY Step "Steg"> +<!ENTITY step "steg"> +<!ENTITY Table "Tabell"> +<!ENTITY table "Tabell"> +<!ENTITY TIP "TIPS"> +<!ENTITY Tip "Tips"> +<!ENTITY tip "Tips"> +<!ENTITY WARNING "ADVARSEL"> +<!ENTITY Warning "Advarsel"> +<!ENTITY warning "Advarsel"> +<!ENTITY and "og"> +<!ENTITY by "av"> +<!ENTITY Edited "Redigert"> +<!ENTITY edited "Redigert"> +<!ENTITY Editedby "Redigert av"> +<!ENTITY editedby "Redigert av"> +<!ENTITY in "i"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "ikke-eksisterende element"> +<!ENTITY notes "Sluttnotater"> +<!ENTITY Notes "Sluttnotater"> +<!ENTITY Pgs "Sdr."> +<!ENTITY pgs "Sdr."> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "Notater"> +<!ENTITY tablenotes "Notater"> +<!ENTITY TableofContents "Innholdsfortegnelse"> +<!ENTITY tableofcontents "Innholdsfortegnelse"> +<!ENTITY unexpectedelementname "UVENTET-ELEMENTNAVN"> +<!ENTITY unsupported "ikke st\U-00F8;ttet"> +<!ENTITY xrefto "xref til"> +<!ENTITY listofequations "Formeloversikt"> +<!ENTITY ListofEquations "Formeloversikt"> +<!ENTITY ListofExamples "Eksempeloversikt"> +<!ENTITY listofexamples "Eksempeloversikt"> +<!ENTITY ListofFigures "Figuroversikt"> +<!ENTITY listoffigures "Figuroversikt"> +<!ENTITY listoftables "Tabelloversikt"> +<!ENTITY ListofTables "Tabelloversikt"> +<!ENTITY ListofUnknown "???-oversikt"> +<!ENTITY listofunknown "???-oversikt"> +<!ENTITY nav-home "Hjem"> +<!ENTITY nav-next "Neste"> +<!ENTITY nav-next-sibling "Raskt Fremover"> +<!ENTITY nav-prev "Forrige"> +<!ENTITY nav-prev-sibling "Raskt Bakover"> +<!ENTITY nav-up "Opp"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1null.dsl b/common/dbl1null.dsl new file mode 100644 index 0000000..d95bbb4 --- /dev/null +++ b/common/dbl1null.dsl @@ -0,0 +1,12 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +]> + +<style-sheet> +<style-specification id="dbl1null"> +<style-specification-body> + +;; No definitions... + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1pl.dsl b/common/dbl1pl.dsl new file mode 100644 index 0000000..fe73170 --- /dev/null +++ b/common/dbl1pl.dsl @@ -0,0 +1,434 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % pl.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PL" + "dbl1pl.ent"> +%pl.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-pl"> +<style-specification-body> + +;; $Id: dbl1pl.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; Polish localization. + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Rafa\263 Kleger-Rudomin, ip011@osi.gda.pl + +(define (pl-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (pl-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "dodatek %t")) + (list (normalize "article") (string-append %gentext-pl-start-quote% + "%t" + %gentext-pl-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "rozdzia³ %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "sekcja %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-pl-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (pl-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (pl-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-pl-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (pl-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-pl-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (pl-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-pl-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-pl-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-pl-intra-label-sep) + (list)) + +(define (pl-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-pl-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-pl-intra-label-sep))) + (sep (assoc name (pl-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-pl-label-title-sep) + (list)) + +(define (pl-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-pl-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-pl-label-title-sep))) + (sep (assoc name (pl-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (pl-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (pl-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (pl-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (pl-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-pl$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (pl-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-pl-start-quote% (dingbat "ldquor")) + +(define %gentext-pl-end-quote% (dingbat "rdquor")) + +(define %gentext-pl-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-pl-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-pl-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-pl-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-pl-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-pl-page% "") + +(define %gentext-pl-and% "∧") + +(define %gentext-pl-listcomma% "&listcomma;") + +(define %gentext-pl-lastlistcomma% "&lastlistcomma;") + +(define %gentext-pl-bibl-pages% "&Pgs;") + +(define %gentext-pl-endnotes% "&Notes;") + +(define %gentext-pl-table-endnotes% "&TableNotes;:") + +(define %gentext-pl-index-see% "&See;") + +(define %gentext-pl-index-seealso% "&SeeAlso;") + + +(define (gentext-pl-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-pl-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-pl-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-pl-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-pl-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-pl-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1pl.ent b/common/dbl1pl.ent new file mode 100644 index 0000000..35e015f --- /dev/null +++ b/common/dbl1pl.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstrakt"> +<!ENTITY abstract "Abstrakt"> +<!ENTITY Answer "Odp:"> +<!ENTITY answer "Odp:"> +<!ENTITY Appendix "Dodatek"> +<!ENTITY appendix "dodatek"> +<!ENTITY Article "Artyku\U-0142;"> +<!ENTITY article "Artyku\U-0142;"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Ksi\U-0105;\U-017C;ka"> +<!ENTITY book "Ksi\U-0105;\U-017C;ka"> +<!ENTITY CAUTION "PRZYPADEK"> +<!ENTITY Caution "Uwaga!"> +<!ENTITY caution "Uwaga!"> +<!ENTITY Chapter "Rozdzia\U-0142;"> +<!ENTITY chapter "rozdzia\U-0142;;"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedykacja"> +<!ENTITY dedication "Dedykacja"> +<!ENTITY Edition "Wydanie"> +<!ENTITY edition "Wydanie"> +<!ENTITY Equation "R\U-00F3;wnanie"> +<!ENTITY equation "R\U-00F3;wnanie"> +<!ENTITY Example "Przyk\U-0142;ad"> +<!ENTITY example "Przyk\U-0142;ad"> +<!ENTITY Figure "Rysunek"> +<!ENTITY figure "Rysunek"> +<!ENTITY Glossary "Glossary"> +<!ENTITY glossary "Glossary"> +<!ENTITY GlossSee "Patrz"> +<!ENTITY glosssee "Patrz"> +<!ENTITY GlossSeeAlso "Patrz te\U-017C;"> +<!ENTITY glossseealso "Patrz te\U-017C;"> +<!ENTITY IMPORTANT "WA\U-017B;NE"> +<!ENTITY Important "WA\U-017B;NE"> +<!ENTITY important "WA\U-017B;NE"> +<!ENTITY Index "Indeks"> +<!ENTITY index "Indeks"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud "Odbiorcy"> +<!ENTITY msgaud "Odbiorcy"> +<!ENTITY MsgLevel "Poziom"> +<!ENTITY msglevel "Poziom"> +<!ENTITY MsgOrig "Nadawca"> +<!ENTITY msgorig "Nadawca"> +<!ENTITY NOTE "Notatka"> +<!ENTITY Note "Notatka"> +<!ENTITY note "Notatka"> +<!ENTITY Part "Cz\U-0119;\U-015B;\U-0107;"> +<!ENTITY part "Cz\U-0119;\U-015B;\U-0107;"> +<!ENTITY Preface "Przedmowa"> +<!ENTITY preface "Przedmowa"> +<!ENTITY Procedure "Procedura"> +<!ENTITY procedure "Procedura"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Data wydania"> +<!ENTITY published "Data wydania"> +<!ENTITY question "Pyt:"> +<!ENTITY Question "Pyt:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Materia\U-0142;y \U-017A;r\U-00F3;d\U-0142;owe"> +<!ENTITY reference "Materia\U-0142;y \U-017A;r\U-00F3;d\U-0142;owe"> +<!ENTITY RefName "Nazwa"> +<!ENTITY refname "Nazwa"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Historia zmian"> +<!ENTITY revhistory "Historia zmian"> +<!ENTITY Revision "Zmiana"> +<!ENTITY revision "Zmiana"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Sekcja"> +<!ENTITY section "sekcja"> +<!ENTITY See "Patrz"> +<!ENTITY see "Patrz"> +<!ENTITY SeeAlso "Patrz te\U-017C;"> +<!ENTITY Seealso "Patrz te\U-017C;"> +<!ENTITY seealso "Patrz te\U-017C;"> +<!ENTITY Set "Set"> +<!ENTITY set "Set"> +<!ENTITY SetIndex "Indeks"> +<!ENTITY setindex "Indeks"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar ""> +<!ENTITY Step "krok"> +<!ENTITY step "krok"> +<!ENTITY Table "Tabela"> +<!ENTITY table "Tabela"> +<!ENTITY TIP "Podpowied\U-017A;"> +<!ENTITY Tip "Podpowied\U-017A;"> +<!ENTITY tip "Podpowied\U-017A;"> +<!ENTITY WARNING "Ostrze\U-017C;enie"> +<!ENTITY Warning "Ostrze\U-017C;enie"> +<!ENTITY warning "Ostrze\U-017C;enie"> +<!ENTITY and "i"> +<!ENTITY by ""> +<!ENTITY Edited "Edited"> +<!ENTITY edited "Edited"> +<!ENTITY Editedby "Redakcja: "> +<!ENTITY editedby "Redakcja: "> +<!ENTITY in "w"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "nie istniej\U-0105;cy element"> +<!ENTITY notes "Przypisy"> +<!ENTITY Notes "Przypisy"> +<!ENTITY Pgs "stron"> +<!ENTITY pgs "stron"> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "Przypisy"> +<!ENTITY tablenotes "Przypisy"> +<!ENTITY TableofContents "Spis tre\U-015B;ci"> +<!ENTITY tableofcontents "Spis tre\U-015B;ci"> +<!ENTITY unexpectedelementname "Unexpected element name"> +<!ENTITY unsupported "nie wspierany"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "Spis r\U-00F3;wna\U-0144;"> +<!ENTITY ListofEquations "Spis r\U-00F3;wna\U-0144;"> +<!ENTITY ListofExamples "Spis przyk\U-0142;ad\U-00F3;w"> +<!ENTITY listofexamples "Spis przyk\U-0142;ad\U-00F3;w"> +<!ENTITY ListofFigures "Spis rysunk\U-00F3;w"> +<!ENTITY listoffigures "Spis rysunk\U-00F3;w"> +<!ENTITY listoftables "Spis tabel"> +<!ENTITY ListofTables "Spis tabel"> +<!ENTITY ListofUnknown "Spis ???"> +<!ENTITY listofunknown "Spis ???"> +<!ENTITY nav-home "Spis tre\U-015B;ci"> +<!ENTITY nav-next "Nast\U-0119;pny"> +<!ENTITY nav-next-sibling "Nast\U-0119;pny rozdzia\U-0142;"> +<!ENTITY nav-prev "Poprzedni"> +<!ENTITY nav-prev-sibling "Poprzedni rozdzia\U-0142;"> +<!ENTITY nav-up "Pocz\U-0105;tek rozdzia\U-0142;u"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1pt.dsl b/common/dbl1pt.dsl new file mode 100644 index 0000000..34da271 --- /dev/null +++ b/common/dbl1pt.dsl @@ -0,0 +1,433 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % pt.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PT" + "dbl1pt.ent"> +%pt.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-pt"> +<style-specification-body> + +;; $Id: dbl1pt.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (pt-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (pt-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "o &appendix; %t")) + (list (normalize "article") (string-append %gentext-pt-start-quote% + "%t" + %gentext-pt-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "o &chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "o §ion; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-pt-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (pt-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (pt-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-pt-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (pt-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-pt-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (pt-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-pt-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-pt-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-pt-intra-label-sep) + (list)) + +(define (pt-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-pt-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-pt-intra-label-sep))) + (sep (assoc name (pt-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-pt-label-title-sep) + (list)) + +(define (pt-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-pt-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-pt-label-title-sep))) + (sep (assoc name (pt-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (pt-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (pt-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (pt-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (pt-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-pt$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (pt-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-pt-start-quote% (dingbat "ldquo")) + +(define %gentext-pt-end-quote% (dingbat "rdquo")) + +(define %gentext-pt-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-pt-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-pt-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-pt-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-pt-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-pt-page% "") + +(define %gentext-pt-and% "∧") + +(define %gentext-pt-listcomma% "&listcomma;") + +(define %gentext-pt-lastlistcomma% "&lastlistcomma;") + +(define %gentext-pt-bibl-pages% "&Pgs;") + +(define %gentext-pt-endnotes% "&Notes;") + +(define %gentext-pt-table-endnotes% "&TableNotes;:") + +(define %gentext-pt-index-see% "&See;") + +(define %gentext-pt-index-seealso% "&SeeAlso;") + + +(define (gentext-pt-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-pt-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-pt-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-pt-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-pt-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-pt-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1pt.ent b/common/dbl1pt.ent new file mode 100644 index 0000000..a73f9b6 --- /dev/null +++ b/common/dbl1pt.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Resumo"> +<!ENTITY abstract "Resumo"> +<!ENTITY Answer "R:"> +<!ENTITY answer "R:"> +<!ENTITY Appendix "Ap\U-00EA;ndice"> +<!ENTITY appendix "ap\U-00EA;ndice"> +<!ENTITY Article "Artigo"> +<!ENTITY article "Artigo"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Livro"> +<!ENTITY book "Livro"> +<!ENTITY CAUTION "CUIDADO"> +<!ENTITY Caution "Cuidado"> +<!ENTITY caution "Cuidado"> +<!ENTITY Chapter "Cap\U-00ED;tulo"> +<!ENTITY chapter "cap\U-00ED;tulo"> +<!ENTITY Colophon "Ficha T\U-00E9;cnica"> +<!ENTITY colophon "Ficha T\U-00E9;cnica"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedicat\U-00F3;ria"> +<!ENTITY dedication "Dedicat\U-00F3;ria"> +<!ENTITY Edition "Edi\U-00E7;\U-00E3;o"> +<!ENTITY edition "Edi\U-00E7;\U-00E3;o"> +<!ENTITY Equation "Equa\U-00E7;\U-00E3;o"> +<!ENTITY equation "Equa\U-00E7;\U-00E3;o"> +<!ENTITY Example "Exemplo"> +<!ENTITY example "Exemplo"> +<!ENTITY Figure "Figura"> +<!ENTITY figure "Figura"> +<!ENTITY Glossary "Gloss\U-00C1;rio"> +<!ENTITY glossary "Gloss\U-00C1;rio"> +<!ENTITY GlossSee "Ver"> +<!ENTITY glosssee "Ver"> +<!ENTITY GlossSeeAlso "Ver Tamb\U-00E9;m"> +<!ENTITY glossseealso "Ver Tamb\U-00E9;m"> +<!ENTITY IMPORTANT "IMPORTANTE"> +<!ENTITY Important "Importante"> +<!ENTITY important "Importante"> +<!ENTITY Index "\U-00CD;ndice Remissivo"> +<!ENTITY index "\U-00CD;ndice Remissivo"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Aviso Legal"> +<!ENTITY legalnotice "Aviso Legal"> +<!ENTITY MsgAud "Audi\U-00EA;ncia"> +<!ENTITY msgaud "Audi\U-00EA;ncia"> +<!ENTITY MsgLevel "N\U-00ED;vel"> +<!ENTITY msglevel "N\U-00ED;vel"> +<!ENTITY MsgOrig "Origem"> +<!ENTITY msgorig "Origem"> +<!ENTITY NOTE "NOTA"> +<!ENTITY Note "Nota"> +<!ENTITY note "Nota"> +<!ENTITY Part "Parte"> +<!ENTITY part "Parte"> +<!ENTITY Preface "Pref\U-00E1;cio"> +<!ENTITY preface "Pref\U-00E1;cio"> +<!ENTITY Procedure "Procedimento"> +<!ENTITY procedure "Procedimento"> +<!ENTITY ProductionSet "Produ\U-00E7;\U-00E3;o"> +<!ENTITY PubDate "Editado"> +<!ENTITY pubdate "Editado"> +<!ENTITY Published "Publicado"> +<!ENTITY published "Publicado"> +<!ENTITY Qandadiv "P & R"> +<!ENTITY qandadiv "P & R"> +<!ENTITY Question "P:"> +<!ENTITY question "P:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Refer\U-00EA;ncia"> +<!ENTITY reference "Refer\U-00EA;ncia"> +<!ENTITY RefName "Nome"> +<!ENTITY refname "Nome"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Sinopse"> +<!ENTITY refsynopsisdiv "Sinopse"> +<!ENTITY RevHistory "Historial de Revis\U-00F5;es"> +<!ENTITY revhistory "Historial de Revis\U-00F5;es"> +<!ENTITY Revision "Revis\U-00E3;o"> +<!ENTITY revision "Revis\U-00E3;o"> +<!ENTITY sect1 "Sec\U-00E7;\U-00E3;o"> +<!ENTITY sect2 "Sec\U-00E7;\U-00E3;o"> +<!ENTITY sect3 "Sec\U-00E7;\U-00E3;o"> +<!ENTITY sect4 "Sec\U-00E7;\U-00E3;o"> +<!ENTITY sect5 "Sec\U-00E7;\U-00E3;o"> +<!ENTITY Section "Sec\U-00E7;\U-00E3;o"> +<!ENTITY section "sec\U-00E7;\U-00E3;o"> +<!ENTITY See "Ver"> +<!ENTITY see "Ver"> +<!ENTITY SeeAlso "Ver Tamb\U-00E9;m"> +<!ENTITY Seealso "ver tamb\U-00E9;m"> +<!ENTITY seealso "Ver Tamb\U-00E9;m"> +<!ENTITY Set "Conjunto"> +<!ENTITY set "Conjunto"> +<!ENTITY SetIndex "\U-00CD;ndice de Conjuntos"> +<!ENTITY setindex "\U-00CD;ndice de Conjuntos"> +<!ENTITY Sidebar "Barra Lateral"> +<!ENTITY sidebar "barra lateral"> +<!ENTITY Step "Passo"> +<!ENTITY step "passo"> +<!ENTITY Table "Tabela"> +<!ENTITY table "Tabela"> +<!ENTITY TIP "DICA"> +<!ENTITY Tip "Dica"> +<!ENTITY tip "Dica"> +<!ENTITY WARNING "ATEN\U-00C7;\U-00C3;O"> +<!ENTITY Warning "Aten\U-00E7;\U-00E3;o"> +<!ENTITY warning "Aten\U-00E7;\U-00E3;o"> +<!ENTITY and "e"> +<!ENTITY by "por"> +<!ENTITY called "chamado"> +<!ENTITY Edited "Editado"> +<!ENTITY edited "Editado"> +<!ENTITY Editedby "Editado por"> +<!ENTITY editedby "Editado por"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elemento n\U-00E3;o existente"> +<!ENTITY notes "Notas"> +<!ENTITY Notes "Notas"> +<!ENTITY Pgs "P\U-00E1;ginas"> +<!ENTITY pgs "P\U-00E1;ginas"> +<!ENTITY Revisedby "Revisto por: "> +<!ENTITY revisedby "Revisto por: "> +<!ENTITY TableNotes "Notas"> +<!ENTITY tablenotes "Notas"> +<!ENTITY TableofContents "\U-00CD;ndice"> +<!ENTITY tableofcontents "\U-00CD;ndice"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Nome de elemento inesperado"> +<!ENTITY unsupported "n\U-00E3;o suportado"> +<!ENTITY xrefto "refer\U-00EA;ncia cruzada para"> +<!ENTITY listofequations "Lista de Equa\U-00E7;\U-00F5;es"> +<!ENTITY ListofEquations "Lista de Equa\U-00E7;\U-00F5;es"> +<!ENTITY ListofExamples "Lista de Exemplos"> +<!ENTITY listofexamples "Lista de Exemplos"> +<!ENTITY ListofFigures "Lista de Figuras"> +<!ENTITY listoffigures "Lista de Figuras"> +<!ENTITY ListofProcedures "Lista de Procedimentos"> +<!ENTITY listofprocedures "Lista de Procedimentos"> +<!ENTITY listoftables "Lista de Tabelas"> +<!ENTITY ListofTables "Lista de Tabelas"> +<!ENTITY ListofUnknown "Lista de Desconhecido"> +<!ENTITY listofunknown "Lista de Desconhecido"> +<!ENTITY nav-home "In\U-00ED;cio"> +<!ENTITY nav-next "Pr\U-00F3;ximo"> +<!ENTITY nav-next-sibling "Pr\U-00F3;xima Parte"> +<!ENTITY nav-prev "Anterior"> +<!ENTITY nav-prev-sibling "Parte Anterior"> +<!ENTITY nav-up "Subir"> +<!ENTITY nav-toc "\U-00CD;ndice"> +<!ENTITY sectioncalled "a sec\U-00E7;\U-00E3;o chamada"> +<!ENTITY Draft "Rascunho"> +<!ENTITY above "acima"> +<!ENTITY below "abaixo"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1ptbr.dsl b/common/dbl1ptbr.dsl new file mode 100644 index 0000000..c711af4 --- /dev/null +++ b/common/dbl1ptbr.dsl @@ -0,0 +1,434 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % ptbr.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//PTBR" + "dbl1ptbr.ent"> +%ptbr.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ptbr"> +<style-specification-body> + +;; $Id: dbl1ptbr.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (ptbr-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ptbr-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "o &appendix; %t")) + (list (normalize "article") (string-append %gentext-ptbr-start-quote% + "%t" + %gentext-ptbr-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "o &chapter; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "a §ion; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-ptbr-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ptbr-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ptbr-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-ptbr-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ptbr-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "notes") "&Notes;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ptbr-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ptbr-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ptbr-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ptbr-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ptbr-intra-label-sep) + (list)) + +(define (ptbr-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ptbr-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ptbr-intra-label-sep))) + (sep (assoc name (ptbr-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ptbr-label-title-sep) + (list)) + +(define (ptbr-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ptbr-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ptbr-label-title-sep))) + (sep (assoc name (ptbr-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ptbr-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ptbr-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ptbr-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ptbr-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ptbr$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ptbr-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ptbr-start-quote% (dingbat "ldquo")) + +(define %gentext-ptbr-end-quote% (dingbat "rdquo")) + +(define %gentext-ptbr-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ptbr-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ptbr-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ptbr-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ptbr-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ptbr-page% "") + +(define %gentext-ptbr-and% "∧") + +(define %gentext-ptbr-listcomma% "&listcomma;") + +(define %gentext-ptbr-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ptbr-bibl-pages% "&Pgs;") + +(define %gentext-ptbr-endnotes% "&Notes;") + +(define %gentext-ptbr-table-endnotes% "&TableNotes;:") + +(define %gentext-ptbr-index-see% "&See;") + +(define %gentext-ptbr-index-seealso% "&SeeAlso;") + + +(define (gentext-ptbr-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ptbr-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ptbr-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ptbr-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ptbr-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ptbr-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ptbr.ent b/common/dbl1ptbr.ent new file mode 100644 index 0000000..5c5200f --- /dev/null +++ b/common/dbl1ptbr.ent @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Resumo"> +<!ENTITY abstract "Resumo"> +<!ENTITY Answer "R:"> +<!ENTITY answer "R:"> +<!ENTITY Appendix "Ap\U-00EA;ndice"> +<!ENTITY appendix "ap\U-00EA;ndice"> +<!ENTITY Article "Artigo"> +<!ENTITY article "Artigo"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Livro"> +<!ENTITY book "Livro"> +<!ENTITY CAUTION "CUIDADO"> +<!ENTITY Caution "Cuidado"> +<!ENTITY caution "Cuidado"> +<!ENTITY Chapter "Cap\U-00ED;tulo"> +<!ENTITY chapter "cap\U-00ED;tulo"> +<!ENTITY Colophon "Considera\U-00E7;\U-00F5;es finais"> +<!ENTITY colophon "Considera\U-00E7;\U-00F5;es finais"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedicat\U-00F3;ria"> +<!ENTITY dedication "Dedicat\U-00F3;ria"> +<!ENTITY Edition "Edi\U-00E7;\U-00E3;o"> +<!ENTITY edition "Edi\U-00E7;\U-00E3;o"> +<!ENTITY Equation "Equa\U-00E7;\U-00E3;o"> +<!ENTITY equation "Equa\U-00E7;\U-00E3;o"> +<!ENTITY Example "Exemplo"> +<!ENTITY example "Exemplo"> +<!ENTITY Figure "Figura"> +<!ENTITY figure "Figura"> +<!ENTITY Glossary "Gloss\U-00E1;rio"> +<!ENTITY glossary "Gloss\U-00E1;rio"> +<!ENTITY GlossSee "Ver"> +<!ENTITY glosssee "Ver"> +<!ENTITY GlossSeeAlso "Ver Tamb\U-00E9;m"> +<!ENTITY glossseealso "Ver Tamb\U-00E9;m"> +<!ENTITY IMPORTANT "IMPORTANTE"> +<!ENTITY Important "Importante"> +<!ENTITY important "Importante"> +<!ENTITY Index "\U-00CD;ndice Remissivo"> +<!ENTITY index "\U-00CD;ndice Remissivo"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Nota Legal"> +<!ENTITY legalnotice "Nota Legal"> +<!ENTITY MsgAud "Audi\U-00EA;ncia"> +<!ENTITY msgaud "Audi\U-00EA;ncia"> +<!ENTITY MsgLevel "N\U-00ED;vel"> +<!ENTITY msglevel "N\U-00ED;vel"> +<!ENTITY MsgOrig "Origem"> +<!ENTITY msgorig "Origem"> +<!ENTITY NOTE "NOTA"> +<!ENTITY Note "Nota"> +<!ENTITY note "Nota"> +<!ENTITY Part "Parte"> +<!ENTITY part "Parte"> +<!ENTITY Preface "Pref\U-00E1;cio"> +<!ENTITY preface "Pref\U-00E1;cio"> +<!ENTITY Procedure "Procedimento"> +<!ENTITY procedure "Procedimento"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "Data de Publica\U-00E7;\U-00E3;o"> +<!ENTITY pubdate "Data de Publica\U-00E7;\U-00E3;o"> +<!ENTITY Published "Publicado"> +<!ENTITY published "Publicado"> +<!ENTITY Question "P:"> +<!ENTITY question "P:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Refer\U-00EA;ncia"> +<!ENTITY reference "Refer\U-00EA;ncia"> +<!ENTITY RefName "Nome"> +<!ENTITY refname "Nome"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Sinopse"> +<!ENTITY refsynopsisdiv "Sinopse"> +<!ENTITY RevHistory "Hist\U-00F3;rico de Revis\U-00F5;es"> +<!ENTITY revhistory "Hist\U-00F3;rico de Revis\U-00F5;es"> +<!ENTITY Revision "Revis\U-00E3;o"> +<!ENTITY revision "Revis\U-00E3;o"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Se\U-00E7;\U-00E3;o"> +<!ENTITY section "se\U-00E7;\U-00E3;o"> +<!ENTITY See "Ver"> +<!ENTITY see "Ver"> +<!ENTITY SeeAlso "Ver Tamb\U-00E9;m"> +<!ENTITY Seealso "ver tamb\U-00E9;m"> +<!ENTITY seealso "Ver Tamb\U-00E9;m"> +<!ENTITY Set "Conjunto"> +<!ENTITY set "Conjunto"> +<!ENTITY SetIndex "\U-00CD;ndice do Conjunto"> +<!ENTITY setindex "\U-00CD;ndice do Conjunto"> +<!ENTITY Sidebar "Quadro Lateral"> +<!ENTITY sidebar "quadro lateral"> +<!ENTITY Step "Passo"> +<!ENTITY step "passo"> +<!ENTITY Table "Tabela"> +<!ENTITY table "Tabela"> +<!ENTITY TIP "DICA"> +<!ENTITY Tip "Dica"> +<!ENTITY tip "Dica"> +<!ENTITY WARNING "ATEN\U-00C7;\U-00C3;O"> +<!ENTITY Warning "Aten\U-00E7;\U-00E3;o"> +<!ENTITY warning "Aten\U-00E7;\U-00E3;o"> +<!ENTITY and "e"> +<!ENTITY by "por"> +<!ENTITY edited "Editado"> +<!ENTITY Edited "Editado"> +<!ENTITY editedby "Editado por"> +<!ENTITY Editedby "Editado por"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "elemento inexistente"> +<!ENTITY Notes "Notas"> +<!ENTITY notes "Notas"> +<!ENTITY Pgs "P\U-00E1;ginas"> +<!ENTITY pgs "P\U-00E1;ginas"> +<!ENTITY Revisedby "Revisado por: "> +<!ENTITY revisedby "Revisado por: "> +<!ENTITY tablenotes "Notas"> +<!ENTITY TableNotes "Notas"> +<!ENTITY TableofContents "\U-00CD;ndice"> +<!ENTITY tableofcontents "\U-00CD;ndice"> +<!ENTITY unexpectedelementname "Nome de elemento inesperado"> +<!ENTITY unsupported "n\U-00E3;o suportado"> +<!ENTITY xrefto "refer\U-00EA;ncia para"> +<!ENTITY listofequations "Lista de Equa\U-00E7;\U-00F5;es"> +<!ENTITY ListofEquations "Lista de Equa\U-00E7;\U-00F5;es"> +<!ENTITY ListofExamples "Lista de Exemplos"> +<!ENTITY listofexamples "Lista de Exemplos"> +<!ENTITY ListofFigures "Lista de Figuras"> +<!ENTITY listoffigures "Lista de Figuras"> +<!ENTITY listoftables "Lista de Tabelas"> +<!ENTITY ListofTables "Lista de Tabelas"> +<!ENTITY ListofUnknown "Lista de ???"> +<!ENTITY listofunknown "Lista de ???"> +<!ENTITY nav-home "Principal"> +<!ENTITY nav-next "Pr\U-00F3;xima"> +<!ENTITY nav-next-sibling "Fim"> +<!ENTITY nav-prev "Anterior"> +<!ENTITY nav-prev-sibling "In\U-00ED;cio"> +<!ENTITY nav-up "Acima"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1ro.dsl b/common/dbl1ro.dsl new file mode 100644 index 0000000..81886ba --- /dev/null +++ b/common/dbl1ro.dsl @@ -0,0 +1,434 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % lat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"> +%lat1; +<!ENTITY % lat2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"> +%lat2; +<!ENTITY % ro.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//RO" + "dbl1ro.ent"> +%ro.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ro"> +<style-specification-body> + +;; $Id: dbl1ro.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Provided by Dan N. Pomohaci +;; Updated by Claudiu Costin + +(define (ro-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ro-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-ro-start-quote% + "%t" + %gentext-ro-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; numit\U-0103; %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-ro-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ro-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ro-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-ro-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ro-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ro-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ro-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ro-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ro-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ro-intra-label-sep) + (list)) + +(define (ro-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ro-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ro-intra-label-sep))) + (sep (assoc name (ro-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ro-label-title-sep) + (list)) + +(define (ro-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ro-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ro-label-title-sep))) + (sep (assoc name (ro-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ro-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ro-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ro-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ro-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ro$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ro-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ro-start-quote% (dingbat "ldquo")) + +(define %gentext-ro-end-quote% (dingbat "rdquo")) + +(define %gentext-ro-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ro-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ro-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ro-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ro-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ro-page% "") + +(define %gentext-ro-and% "∧") + +(define %gentext-ro-listcomma% "&listcomma;") + +(define %gentext-ro-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ro-bibl-pages% "&Pgs;") + +(define %gentext-ro-endnotes% "&Notes;") + +(define %gentext-ro-table-endnotes% "&TableNotes;:") + +(define %gentext-ro-index-see% "&See;") + +(define %gentext-ro-index-seealso% "&SeeAlso;") + + +(define (gentext-ro-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ro-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ro-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ro-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ro-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ro-nav-home home) + (make sequence (literal "&nav-home;"))) + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ro.ent b/common/dbl1ro.ent new file mode 100644 index 0000000..8ddd35b --- /dev/null +++ b/common/dbl1ro.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Rezumat"> +<!ENTITY abstract "Rezumat"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Anexa"> +<!ENTITY appendix "anexa"> +<!ENTITY Article "Articol"> +<!ENTITY article "Articol"> +<!ENTITY Bibliography "Bibliografie"> +<!ENTITY bibliography "Bibliografie"> +<!ENTITY Book "Carte"> +<!ENTITY book "Carte"> +<!ENTITY CAUTION "ATEN\U-00DE;IE"> +<!ENTITY Caution "Aten\U-00FE;ie"> +<!ENTITY caution "Aten\U-00FE;ie"> +<!ENTITY Chapter "Cap."> +<!ENTITY chapter "cap."> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedica\U-00FE;ie"> +<!ENTITY dedication "Dedica\U-00FE;ie"> +<!ENTITY Edition "Edi\U-00FE;ie"> +<!ENTITY edition "Edi\U-00FE;ie"> +<!ENTITY Equation "ecua\U-00FE;ia"> +<!ENTITY equation "ecua\U-00FE;ia"> +<!ENTITY Example "Exemplu"> +<!ENTITY example "Exemplu"> +<!ENTITY Figure "Fig."> +<!ENTITY figure "Fig."> +<!ENTITY Glossary "Glosar"> +<!ENTITY glossary "Glosar"> +<!ENTITY GlossSee "Vezi"> +<!ENTITY glosssee "Vezi"> +<!ENTITY GlossSeeAlso "Vezi \U-015F;i"> +<!ENTITY glossseealso "Vezi \U-015F;i"> +<!ENTITY IMPORTANT "IMPORTANT"> +<!ENTITY Important "Important"> +<!ENTITY important "Important"> +<!ENTITY Index "Index"> +<!ENTITY index "Index"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice ""> +<!ENTITY legalnotice ""> +<!ENTITY MsgAud ""> +<!ENTITY msgaud ""> +<!ENTITY MsgLevel "Nivel"> +<!ENTITY msglevel "Nivel"> +<!ENTITY MsgOrig "Origine"> +<!ENTITY msgorig "Origine"> +<!ENTITY NOTE "NOT\U-00C3;"> +<!ENTITY Note "Not\U-00E3;"> +<!ENTITY note "Not\U-00E3;"> +<!ENTITY Part "Parte"> +<!ENTITY part "Parte"> +<!ENTITY Preface "Prefa\U-00FE;\U-00E3;"> +<!ENTITY preface "Prefa\U-00FE;\U-00E3;"> +<!ENTITY Procedure "Procedur\U-00E3;"> +<!ENTITY procedure "Procedur\U-00E3;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Publicat"> +<!ENTITY published "Publicat"> +<!ENTITY Question "Q:"> +<!ENTITY question "Q:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referin\U-00FE;\U-00E3;"> +<!ENTITY reference "Referin\U-00FE;\U-00E3;"> +<!ENTITY RefName "Nume"> +<!ENTITY refname "Nume"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Rezumat"> +<!ENTITY refsynopsisdiv "Rezumat"> +<!ENTITY RevHistory "Istoricul versiunilor"> +<!ENTITY revhistory "Istoricul versiunilor"> +<!ENTITY Revision "Versiune"> +<!ENTITY revision "Versiune"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Sec\U-00FE;iune"> +<!ENTITY section "sec."> +<!ENTITY See "Vezi"> +<!ENTITY see "Vezi"> +<!ENTITY SeeAlso "Vezi \U-015F;i"> +<!ENTITY Seealso "Vezi \U-015F;i"> +<!ENTITY seealso "Vezi \U-015F;i"> +<!ENTITY Set "Set"> +<!ENTITY set "Set"> +<!ENTITY SetIndex "Index"> +<!ENTITY setindex "Index"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY Step "Opera\U-00FE;ie"> +<!ENTITY step "opera\U-00FE;iune"> +<!ENTITY Table "Tabel"> +<!ENTITY table "Tabel"> +<!ENTITY TIP "INDICA\U-00DE;IE"> +<!ENTITY Tip "Indica\U-00FE;ie"> +<!ENTITY tip "Indica\U-00FE;ie"> +<!ENTITY WARNING "AVERTISMENT"> +<!ENTITY Warning "Avertisment"> +<!ENTITY warning "Avertisment"> +<!ENTITY and "\U-015F;i"> +<!ENTITY by "de"> +<!ENTITY Edited "Publicat"> +<!ENTITY edited "Publicat"> +<!ENTITY Editedby "Publicat de"> +<!ENTITY editedby "Publicat de"> +<!ENTITY in "\U-00EE;n"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "element inexistent"> +<!ENTITY notes "Note"> +<!ENTITY Notes "Note"> +<!ENTITY Pgs "Pagini"> +<!ENTITY pgs "Pagini"> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY TableNotes "Remarci"> +<!ENTITY tablenotes "Remarci"> +<!ENTITY TableofContents "Cuprins"> +<!ENTITY tableofcontents "Cuprins"> +<!ENTITY unexpectedelementname "Nume de element nea\U-015F;teptat"> +<!ENTITY unsupported "nerecunoscut de sisitem"> +<!ENTITY xrefto "referin\U-00FE;\U-00E3; c\U-00E3;tre"> +<!ENTITY listofequations "List\U-00E3; de ecua\U-00FE;ii"> +<!ENTITY ListofEquations "List\U-00E3; de ecua\U-00FE;ii"> +<!ENTITY ListofExamples "List\U-00E3; de exemple"> +<!ENTITY listofexamples "List\U-00E3; de exemple"> +<!ENTITY ListofFigures "List\U-00E3; de figuri"> +<!ENTITY listoffigures "List\U-00E3; de figuri"> +<!ENTITY listoftables "List\U-00E3; de tabele"> +<!ENTITY ListofTables "List\U-00E3; de tabele"> +<!ENTITY ListofUnknown "List\U-00E3; de necunoscute"> +<!ENTITY listofunknown "List\U-00E3; de necunoscute"> +<!ENTITY nav-home "Acas\U-00E3;"> +<!ENTITY nav-next "\U-00CE;nainte"> +<!ENTITY nav-next-sibling "Repede \U-00EF;nainte"> +<!ENTITY nav-prev "\U-00CE;napoi"> +<!ENTITY nav-prev-sibling "Repede \U-00EE;napoi"> +<!ENTITY nav-up "Sus"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1ru.dsl b/common/dbl1ru.dsl new file mode 100644 index 0000000..96746c8 --- /dev/null +++ b/common/dbl1ru.dsl @@ -0,0 +1,446 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % cyr1 PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"> +%cyr1; +<!ENTITY % ru.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//RU" + "dbl1ru.ent"> +%ru.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-ru"> +<style-specification-body> + +;; $Id: dbl1ru.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; This is revised Russian Localization version by Norman Walsh, modified by +;; Ilia V. Kouznetsov, ilia@syntext.com + +;; Suggestion of I. Kouznetsov: According to my experience of writing +;; documentation, Russian Words for cross references had better be +;; abbreviated (just like it is usually done in Russian documents) +;; because the ends of not abbreviated cross references may vary from +;; place to place due to the cases of Russian language. Due to this reason +;; entities with ".abr" syffix are added. + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (ru-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (ru-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix.abr; %n" + "&Appendix.abr; %t")) + (list (normalize "article") (string-append %gentext-ru-start-quote% + "%t" + %gentext-ru-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter.abr; %n" + "&Chapter.abr; %t")) + (list (normalize "equation") "&Equation.abr; %n") + (list (normalize "example") "&Example.abr; %n") + (list (normalize "figure") "&Figure.abr; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part.abr; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure.abr; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section.abr; %n" + "&Section.abr; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table.abr; %n"))) + +(define (gentext-ru-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (ru-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (ru-auto-xref-indirect-connector before) + (literal " ∈ ")) + +;; Should the TOC come first or last? +;; +(define %generate-ru-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (ru-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-ru-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (ru-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-ru-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-ru-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-ru-intra-label-sep) + (list)) + +(define (ru-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-ru-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ru-intra-label-sep))) + (sep (assoc name (ru-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-ru-label-title-sep) + (list)) + +(define (ru-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-ru-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-ru-label-title-sep))) + (sep (assoc name (ru-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (ru-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (ru-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (ru-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (ru-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-ru$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (ru-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-ru-start-quote% (dingbat "ldquo")) + +(define %gentext-ru-end-quote% (dingbat "rdquo")) + +(define %gentext-ru-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-ru-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-ru-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-ru-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-ru-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-ru-page% "") + +(define %gentext-ru-and% "∧") + +(define %gentext-ru-listcomma% "&listcomma;") + +(define %gentext-ru-lastlistcomma% "&lastlistcomma;") + +(define %gentext-ru-bibl-pages% "&Pgs;") + +(define %gentext-ru-endnotes% "&Notes;") + +(define %gentext-ru-table-endnotes% "&TableNotes;:") + +(define %gentext-ru-index-see% "&See;") + +(define %gentext-ru-index-seealso% "&SeeAlso;") + + +(define (gentext-ru-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-ru-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-ru-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-ru-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-ru-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-ru-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1ru.ent b/common/dbl1ru.ent new file mode 100644 index 0000000..055846b --- /dev/null +++ b/common/dbl1ru.ent @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-0410;\U-043D;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0438;\U-044F;"> +<!ENTITY abstract "\U-0410;\U-043D;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0438;\U-044F;"> +<!ENTITY Answer "\U-041E;:"> +<!ENTITY answer "\U-041E;:"> +<!ENTITY Appendix "\U-041F;\U-0440;\U-0438;\U-043B;\U-043E;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY appendix "\U-043F;\U-0440;\U-0438;\U-043B;\U-043E;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Appendix.abr "\U-041F;\U-0440;\U-0438;\U-043B;."> +<!ENTITY appendix.abr "\U-041F;\U-0440;\U-0438;\U-043B;."> +<!ENTITY Article "\U-0421;\U-0442;\U-0430;\U-0442;\U-044C;\U-044F;"> +<!ENTITY article "\U-0421;\U-0442;\U-0430;\U-0442;\U-044C;\U-044F;"> +<!ENTITY Audience "\U-0410;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0438;\U-044F;"> +<!ENTITY audience "\U-0410;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0438;\U-044F;"> +<!ENTITY Bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Book "\U-041A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY book "\U-041A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY CAUTION "\U-041F;\U-0420;\U-0415;\U-0414;\U-041E;\U-0421;\U-0422;\U-0415;\U-0420;\U-0415;\U-0416;\U-0415;\U-041D;\U-0418;\U-0415;"> +<!ENTITY Caution "\U-041F;\U-0440;\U-0435;\U-0434;\U-043E;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY caution "\U-041F;\U-0440;\U-0435;\U-0434;\U-043E;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Chapter "\U-0413;\U-043B;\U-0430;\U-0432;\U-0430;"> +<!ENTITY chapter "\U-0433;\U-043B;\U-0430;\U-0432;\U-0430;"> +<!ENTITY Chapter.abr "\U-0413;\U-043B;."> +<!ENTITY chapter.abr "\U-0413;\U-043B;."> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "\U-041F;\U-043E;\U-0441;\U-0432;\U-044F;\U-0449;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY dedication "\U-041F;\U-043E;\U-0441;\U-0432;\U-044F;\U-0449;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Edition "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-044F;"> +<!ENTITY edition "\U-0420;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-044F;"> +<!ENTITY Equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY Equation.abr "\U-0424;."> +<!ENTITY equation.abr "\U-0424;."> +<!ENTITY Example "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY example "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY Example.abr "\U-041F;\U-0440;\U-0438;\U-043C;."> +<!ENTITY example.abr "\U-041F;\U-0440;\U-0438;\U-043C;."> +<!ENTITY Figure "\U-0420;\U-0438;\U-0441;\U-0443;\U-043D;\U-043E;\U-043A;"> +<!ENTITY figure "\U-0420;\U-0438;\U-0441;\U-0443;\U-043D;\U-043E;\U-043A;"> +<!ENTITY Figure.abr "\U-0420;\U-0438;\U-0441;."> +<!ENTITY figure.abr "\U-0420;\U-0438;\U-0441;."> +<!ENTITY Glossary "\U-0413;\U-043B;\U-043E;\U-0441;\U-0441;\U-0430;\U-0440;\U-0438;\U-0439;"> +<!ENTITY glossary "\U-0413;\U-043B;\U-043E;\U-0441;\U-0441;\U-0430;\U-0440;\U-0438;\U-0439;"> +<!ENTITY GlossSee "\U-0421;\U-043C;."> +<!ENTITY glosssee "\U-0421;\U-043C;."> +<!ENTITY GlossSeeAlso "\U-0421;\U-043C;. \U-0442;\U-0430;\U-043A;\U-0436;\U-0435;"> +<!ENTITY glossseealso "\U-0421;\U-043C;. \U-0442;\U-0430;\U-043A;\U-0436;\U-0435;"> +<!ENTITY IMPORTANT "\U-0412;\U-0410;\U-0416;\U-041D;\U-041E;"> +<!ENTITY Important "\U-0412;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY important "\U-0412;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY Index "\U-041F;\U-0440;\U-0435;\U-0434;\U-043C;\U-0435;\U-0442;\U-043D;\U-044B;\U-0439; \U-0443;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;\U-044C;"> +<!ENTITY index "\U-041F;\U-0440;\U-0435;\U-0434;\U-043C;\U-0435;\U-0442;\U-043D;\U-044B;\U-0439; \U-0443;\U-043A;\U-0430;\U-0437;\U-0430;\U-0442;\U-0435;\U-043B;\U-044C;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-0410;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-043A;\U-0438;\U-0435; \U-043F;\U-0440;\U-0430;\U-0432;\U-0430;"> +<!ENTITY legalnotice "\U-0410;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-043A;\U-0438;\U-0435; \U-043F;\U-0440;\U-0430;\U-0432;\U-0430;"> +<!ENTITY Level "\U-0423;\U-0440;\U-043E;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY level "\U-0423;\U-0440;\U-043E;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY MsgAud "Audience"> +<!ENTITY msgaud "Audience"> +<!ENTITY MsgLevel "Level"> +<!ENTITY msglevel "Level"> +<!ENTITY MsgOrig "Origin"> +<!ENTITY msgorig "Origin"> +<!ENTITY Name "\U-0418;\U-043C;\U-044F;"> +<!ENTITY name "\U-0418;\U-043C;\U-044F;"> +<!ENTITY NOTE "\U-0417;\U-0410;\U-041C;\U-0415;\U-0427;\U-0410;\U-041D;\U-0418;\U-0415;"> +<!ENTITY Note "\U-0417;\U-0430;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY note "\U-0417;\U-0430;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Origin "\U-0418;\U-0441;\U-0442;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY origin "\U-0418;\U-0441;\U-0442;\U-043E;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY Part "\U-0427;\U-0430;\U-0441;\U-0442;\U-044C;"> +<!ENTITY part "\U-0427;\U-0430;\U-0441;\U-0442;\U-044C;"> +<!ENTITY Part.abr "\U-0427;."> +<!ENTITY part.abr "\U-0427;."> +<!ENTITY Preface "\U-041F;\U-0440;\U-0435;\U-0434;\U-0438;\U-0441;\U-043B;\U-043E;\U-0432;\U-0438;\U-0435;"> +<!ENTITY preface "\U-041F;\U-0440;\U-0435;\U-0434;\U-0438;\U-0441;\U-043B;\U-043E;\U-0432;\U-0438;\U-0435;"> +<!ENTITY Procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Procedure.abr "\U-041F;\U-0440;\U-043E;\U-0446;."> +<!ENTITY procedure.abr "\U-041F;\U-0440;\U-043E;\U-0446;."> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "\U-041E;\U-043F;\U-0443;\U-0431;\U-043B;\U-0438;\U-043A;\U-043E;\U-0432;\U-0430;\U-043D;\U-043E;"> +<!ENTITY published "\U-041E;\U-043F;\U-0443;\U-0431;\U-043B;\U-0438;\U-043A;\U-043E;\U-0432;\U-0430;\U-043D;\U-043E;"> +<!ENTITY Question "\U-0412;:"> +<!ENTITY question "\U-0412;:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-0421;\U-0441;\U-044B;\U-043B;\U-043A;\U-0430;"> +<!ENTITY reference "\U-0421;\U-0441;\U-044B;\U-043B;\U-043A;\U-0430;"> +<!ENTITY RefName "\U-041D;\U-0430;\U-0437;\U-0432;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY refname "\U-041D;\U-0430;\U-0437;\U-0432;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-0421;\U-0438;\U-043D;\U-0442;\U-0430;\U-043A;\U-0441;\U-0438;\U-0441;"> +<!ENTITY refsynopsisdiv "\U-0421;\U-0438;\U-043D;\U-0442;\U-0430;\U-043A;\U-0441;\U-0438;\U-0441;"> +<!ENTITY RevHistory "\U-0418;\U-0441;\U-0442;\U-043E;\U-0440;\U-0438;\U-044F; \U-043F;\U-0435;\U-0440;\U-0435;\U-0438;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY revhistory "\U-0418;\U-0441;\U-0442;\U-043E;\U-0440;\U-0438;\U-044F; \U-043F;\U-0435;\U-0440;\U-0435;\U-0438;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY Revision "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY revision "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY sect1 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect2 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect3 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect4 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY sect5 "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY Section "\U-0420;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY section "\U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY Section.abr "\U-0420;\U-0430;\U-0437;\U-0434;."> +<!ENTITY section.abr "\U-0420;\U-0430;\U-0437;\U-0434;."> +<!ENTITY See "\U-0421;\U-043C;."> +<!ENTITY see "\U-0421;\U-043C;."> +<!ENTITY SeeAlso "\U-0421;\U-043C;. \U-0442;\U-0430;\U-043A;\U-0436;\U-0435;"> +<!ENTITY Seealso "\U-0421;\U-043C;. \U-0442;\U-0430;\U-043A;\U-0436;\U-0435;"> +<!ENTITY seealso "\U-0421;\U-043C;. \U-0442;\U-0430;\U-043A;\U-0436;\U-0435;"> +<!ENTITY Set "\U-041F;\U-043E;\U-0434;\U-0431;\U-043E;\U-0440;\U-043A;\U-0430;"> +<!ENTITY set "\U-041F;\U-043E;\U-0434;\U-0431;\U-043E;\U-0440;\U-043A;\U-0430;"> +<!ENTITY SetIndex "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-043F;\U-043E;\U-0434;\U-0431;\U-043E;\U-0440;\U-043A;\U-0438;"> +<!ENTITY setindex "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-043F;\U-043E;\U-0434;\U-0431;\U-043E;\U-0440;\U-043A;\U-0438;"> +<!ENTITY Sidebar "\U-0412;\U-044B;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY sidebar "\U-0432;\U-044B;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D;\U-0438;\U-0435;"> +<!ENTITY Step "\U-0428;\U-0430;\U-0433;"> +<!ENTITY step "\U-0448;\U-0430;\U-0433;"> +<!ENTITY Table "\U-0422;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0430;"> +<!ENTITY table "\U-0422;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-0430;"> +<!ENTITY Table.abr "\U-0422;\U-0430;\U-0431;\U-043B;."> +<!ENTITY table.abr "\U-0422;\U-0430;\U-0431;\U-043B;."> +<!ENTITY TIP "\U-041F;\U-041E;\U-0414;\U-0421;\U-041A;\U-0410;\U-0417;\U-041A;\U-0410;"> +<!ENTITY Tip "\U-041F;\U-043E;\U-0434;\U-0441;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY tip "\U-041F;\U-043E;\U-0434;\U-0441;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY WARNING "\U-0412;\U-041D;\U-0418;\U-041C;\U-0410;\U-041D;\U-0418;\U-0415;"> +<!ENTITY Warning "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY warning "\U-0412;\U-043D;\U-0438;\U-043C;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY and ""> +<!ENTITY by ""> +<!ENTITY called ""> +<!ENTITY edited "\U-041F;\U-043E;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-0435;\U-0439;"> +<!ENTITY Edited "\U-041F;\U-043E;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-0435;\U-0439;"> +<!ENTITY Editedby "\U-041F;\U-043E;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-0435;\U-0439;"> +<!ENTITY editedby "\U-041F;\U-043E;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0438;\U-0435;\U-0439;"> +<!ENTITY in "\U-0432;"> +<!ENTITY TableofContents "\U-0421;\U-043E;\U-0434;\U-0435;\U-0440;\U-0436;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY tableofcontents "\U-0421;\U-043E;\U-0434;\U-0435;\U-0440;\U-0436;\U-0430;\U-043D;\U-0438;\U-0435;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY Notes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY notes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY TableNotes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY tablenotes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0447;\U-0430;\U-043D;\U-0438;\U-044F;"> +<!ENTITY nonexistantelement "non-existant element"> +<!ENTITY pgs "\U-0421;\U-0442;\U-0440;."> +<!ENTITY Pgs "\U-0421;\U-0442;\U-0440;."> +<!ENTITY Revisedby "Revised by: "> +<!ENTITY revisedby "Revised by: "> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "unexpected element name"> +<!ENTITY unsupported "unsupported"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;"> +<!ENTITY ListofEquations "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;"> +<!ENTITY ListofExamples "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-043E;\U-0432;"> +<!ENTITY listofexamples "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-043E;\U-0432;"> +<!ENTITY ListofFigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0438;\U-043B;\U-043B;\U-044E;\U-0441;\U-0442;\U-0440;\U-0430;\U-0446;\U-0438;\U-0439;"> +<!ENTITY listoffigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0438;\U-043B;\U-043B;\U-044E;\U-0441;\U-0442;\U-0440;\U-0430;\U-0446;\U-0438;\U-0439;"> +<!ENTITY listoftables "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;"> +<!ENTITY ListofTables "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;"> +<!ENTITY ListofUnknown "\U-041D;\U-0435;\U-043E;\U-043F;\U-0440;\U-0435;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D;\U-043D;\U-044B;\U-0439; \U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A;"> +<!ENTITY listofunknown "\U-041D;\U-0435;\U-043E;\U-043F;\U-0440;\U-0435;\U-0434;\U-0435;\U-043B;\U-0435;\U-043D;\U-043D;\U-044B;\U-0439; \U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A;"> +<!ENTITY nav-next "\U-0421;\U-043B;\U-0435;\U-0434;."> +<!ENTITY nav-next-sibling "\U-0421;\U-043B;\U-0435;\U-0434;. \U-043F;\U-043E;\U-0434;\U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY nav-prev "\U-041F;\U-0440;\U-0435;\U-0434;."> +<!ENTITY nav-prev-sibling "\U-041F;\U-0440;\U-0435;\U-0434;. \U-043F;\U-043E;\U-0434;\U-0440;\U-0430;\U-0437;\U-0434;\U-0435;\U-043B;"> +<!ENTITY x-nav-next "\U-0421;\U-043B;\U-0435;\U-0434;."> +<!ENTITY nav-home "\U-041D;\U-0430;\U-0447;\U-0430;\U-043B;\U-043E;"> +<!ENTITY nav-up "\U-0423;\U-0440;\U-043E;\U-0432;\U-0435;\U-043D;\U-044C; \U-0432;\U-044B;\U-0448;\U-0435;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "\U-0427;\U-0435;\U-0440;\U-043D;\U-043E;\U-0432;\U-0438;\U-043A;"> +<!ENTITY above "\U-0432;\U-044B;\U-0448;\U-0435;"> +<!ENTITY below "\U-043D;\U-0438;\U-0436;\U-0435;"> +<!ENTITY lowercase.alpha "\U-0430;\U-0431;\U-0432;\U-0433;\U-0434;\U-0435;\U-0451;\U-0436;\U-0437;\U-0438;\U-0439;\U-043A;\U-043B;\U-043C;\U-043D;\U-043E;\U-043F;\U-0440;\U-0441;\U-0442;\U-0443;\U-0444;\U-0445;\U-0446;\U-0447;\U-0448;\U-0449;\U-044A;\U-044B;\U-044C;\U-044D;\U-044E;\U-044F;"> +<!ENTITY uppercase.alpha "\U-0410;\U-0411;\U-0412;\U-0413;\U-0414;\U-0415;\U-0401;\U-0416;\U-0417;\U-0418;\U-0419;\U-041A;\U-041B;\U-041C;\U-041D;\U-041E;\U-041F;\U-0420;\U-0421;\U-0422;\U-0423;\U-0424;\U-0425;\U-0426;\U-0427;\U-0428;\U-0429;\U-042A;\U-042B;\U-042C;\U-042D;\U-042E;\U-042F;"> diff --git a/common/dbl1sk.dsl b/common/dbl1sk.dsl new file mode 100644 index 0000000..60fb9b3 --- /dev/null +++ b/common/dbl1sk.dsl @@ -0,0 +1,442 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % sk.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SK" + "dbl1sk.ent"> +%sk.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-sk"> +<style-specification-body> + +;; $Id: dbl1sk.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Contributors: +;; Ralf Schleitzer, ralf.schleitzer@ixos.de + +(define (sk-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (sk-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&appendix; nazvan\U-00E1; %t")) + (list (normalize "article") (string-append %gentext-sk-start-quote% + "%t" + %gentext-sk-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&chapter; nazvan\U-00E1; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "§ion; nazvan\U-00E1; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-sk-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (sk-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (sk-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-sk-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (sk-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-sk-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (sk-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-sk-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-sk-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-sk-intra-label-sep) + (list)) + +(define (sk-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-sk-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sk-intra-label-sep))) + (sep (assoc name (sk-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-sk-label-title-sep) + (list)) + +(define (sk-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-sk-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sk-label-title-sep))) + (sep (assoc name (sk-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (sk-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (sk-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (sk-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (sk-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-sk$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (sk-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-sk-start-quote% "\U-201E;") + +(define %gentext-sk-end-quote% "\U-201C;") + +(define %gentext-sk-start-nested-quote% "\U-201A;") + +(define %gentext-sk-end-nested-quote% "\U-2018;") + +(define %gentext-sk-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-sk-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-sk-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-sk-page% "") + +(define %gentext-sk-and% "∧") + +(define %gentext-sk-listcomma% "&listcomma;") + +(define %gentext-sk-lastlistcomma% "&lastlistcomma;") + +(define %gentext-sk-bibl-pages% "&Pgs;") + +(define %gentext-sk-endnotes% "&Notes;") + +(define %gentext-sk-table-endnotes% "&TableNotes;:") + +(define %gentext-sk-index-see% "&See;") + +(define %gentext-sk-index-seealso% "&SeeAlso;") + + +(define (gentext-sk-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-sk-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-sk-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-sk-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-sk-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-sk-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1sk.ent b/common/dbl1sk.ent new file mode 100644 index 0000000..1d1fd30 --- /dev/null +++ b/common/dbl1sk.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Abstrakt"> +<!ENTITY abstract "Abstrakt"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Dodatok"> +<!ENTITY appendix "dodatok"> +<!ENTITY Article "\U-010C;l\U-00E1;nok"> +<!ENTITY article "\U-010C;l\U-00E1;nok"> +<!ENTITY Bibliography "Bibliografia"> +<!ENTITY bibliography "Bibliografia"> +<!ENTITY Book "Kniha"> +<!ENTITY book "Kniha"> +<!ENTITY CAUTION "V\U-00DD;STRAHA"> +<!ENTITY Caution "V\U-00FD;straha"> +<!ENTITY caution "V\U-00FD;straha"> +<!ENTITY Chapter "Kapitola"> +<!ENTITY chapter "kapitola"> +<!ENTITY Colophon "Tir\U-00E1;\U-017E;"> +<!ENTITY colophon "Tir\U-00E1;\U-017E;"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Venovanie"> +<!ENTITY dedication "Venovanie"> +<!ENTITY Edition "Vydanie"> +<!ENTITY edition "Vydanie"> +<!ENTITY Equation "Rovnica"> +<!ENTITY equation "Rovnica"> +<!ENTITY Example "Pr\U-00ED;klad"> +<!ENTITY example "Pr\U-00ED;klad"> +<!ENTITY Figure "Obr\U-00E1;zok"> +<!ENTITY figure "Obr\U-00E1;zok"> +<!ENTITY Glossary "Slovn\U-00ED;k"> +<!ENTITY glossary "Slovn\U-00ED;k"> +<!ENTITY GlossSee "Pozri"> +<!ENTITY glosssee "Pozri"> +<!ENTITY GlossSeeAlso "Pozri tie\U-017E;"> +<!ENTITY glossseealso "Pozri tie\U-017E;"> +<!ENTITY IMPORTANT "D\U-00D4;LE\U-017D;IT\U-00C9;"> +<!ENTITY Important "D\U-00F4;le\U-017E;it\U-00E9;"> +<!ENTITY important "D\U-00F4;le\U-017E;it\U-00E9;"> +<!ENTITY Index "Zoznam"> +<!ENTITY index "Zoznam"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Pr\U-00E1;vna pozn\U-00E1;mka"> +<!ENTITY legalnotice "Pr\U-00E1;vna pozn\U-00E1;mka"> +<!ENTITY MsgAud "Publikum"> +<!ENTITY msgaud "Publikum"> +<!ENTITY MsgLevel "\U-00DA;rove\U-0148;"> +<!ENTITY msglevel "\U-00DA;rove\U-0148;"> +<!ENTITY MsgOrig "P\U-00F4;vod"> +<!ENTITY msgorig "P\U-00F4;vod"> +<!ENTITY NOTE "POZN\U-00C1;MKA"> +<!ENTITY Note "Pozn\U-00E1;mka"> +<!ENTITY note "Pozn\U-00E1;mka"> +<!ENTITY Part "\U-010C;as\U-0165;"> +<!ENTITY part "\U-010C;as\U-0165;"> +<!ENTITY Preface "\U-00DA;vod"> +<!ENTITY preface "\U-00DA;vod"> +<!ENTITY Procedure "Postup"> +<!ENTITY procedure "Postup"> +<!ENTITY ProductionSet "Produkcia"> +<!ENTITY Published "Vydan\U-00E9;"> +<!ENTITY published "Vydan\U-00E9;"> +<!ENTITY Question "Q:"> +<!ENTITY question "Q:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Odkaz"> +<!ENTITY reference "Odkaz"> +<!ENTITY RefName "Meno"> +<!ENTITY refname "Meno"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Preh\U-013E;ad"> +<!ENTITY refsynopsisdiv "Preh\U-013E;ad"> +<!ENTITY RevHistory "Preh\U-013E;ad rev\U-00ED;zi\U-00ED;"> +<!ENTITY revhistory "Preh\U-013E;ad rev\U-00ED;zi\U-00ED;"> +<!ENTITY Revision "Rev\U-00ED;zia"> +<!ENTITY revision "Rev\U-00ED;zia"> +<!ENTITY sect1 "Oddiel"> +<!ENTITY sect2 "Oddiel"> +<!ENTITY sect3 "Oddiel"> +<!ENTITY sect4 "Oddiel"> +<!ENTITY sect5 "Oddiel"> +<!ENTITY Section "Oddiel"> +<!ENTITY section "oddiel"> +<!ENTITY See "Pozri"> +<!ENTITY see "Pozri"> +<!ENTITY SeeAlso "Pozri tie\U-017E;"> +<!ENTITY Seealso "Pozri tie\U-017E;"> +<!ENTITY seealso "Pozri tie\U-017E;"> +<!ENTITY Set "Nastavi\U-0165;"> +<!ENTITY set "Nastavi\U-0165;"> +<!ENTITY SetIndex "Nastavi\U-0165; index"> +<!ENTITY setindex "nastavi\U-0165; index"> +<!ENTITY Sidebar "Margin\U-00E1;lia"> +<!ENTITY sidebar "margin\U-00E1;lia"> +<!ENTITY Step "Krok"> +<!ENTITY step "krok"> +<!ENTITY Table "Tabu\U-013E;ka"> +<!ENTITY table "Tabu\U-013E;ka"> +<!ENTITY TIP "TIP"> +<!ENTITY Tip "Tip"> +<!ENTITY tip "Tip"> +<!ENTITY WARNING "VAROVANIE"> +<!ENTITY Warning "Varovanie"> +<!ENTITY warning "Varovanie"> +<!ENTITY and "a"> +<!ENTITY by ""> +<!ENTITY Edited "Vydan\U-00E9;"> +<!ENTITY edited "Vydan\U-00E9;"> +<!ENTITY Editedby "Zostavil: "> +<!ENTITY editedby "Zostavil: "> +<!ENTITY in "v"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "neexistuj\U-00FA;ci prvok"> +<!ENTITY notes "Pozn\U-00E1;mky"> +<!ENTITY Notes "Pozn\U-00E1;mky"> +<!ENTITY Pgs "Str."> +<!ENTITY pgs "Str."> +<!ENTITY Revisedby "Revidoval: "> +<!ENTITY revisedby "Revidoval: "> +<!ENTITY TableNotes "Pozn\U-00E1;mky"> +<!ENTITY tablenotes "Pozn\U-00E1;mky"> +<!ENTITY TableofContents "Obsah"> +<!ENTITY tableofcontents "Obsah"> +<!ENTITY unexpectedelementname "Neo\U-010D;ak\U-00E1;van\U-00E9; meno prvku"> +<!ENTITY unsupported "nepodporovan\U-00FD;"> +<!ENTITY xrefto "xref k"> +<!ENTITY listofequations "Zoznam rovn\U-00ED;c"> +<!ENTITY ListofEquations "Zoznam rovn\U-00ED;c"> +<!ENTITY ListofExamples "Zoznam pr\U-00ED;kladov"> +<!ENTITY listofexamples "Zoznam pr\U-00ED;kladov"> +<!ENTITY ListofFigures "Zoznam obr\U-00E1;zkov"> +<!ENTITY listoffigures "Zoznam obr\U-00E1;zkov"> +<!ENTITY listoftables "Zoznam tabuliek"> +<!ENTITY ListofTables "Zoznam tabuliek"> +<!ENTITY ListofUnknown "Zoznam nezn\U-00E1;meho"> +<!ENTITY listofunknown "Zoznam nezn\U-00E1;meho"> +<!ENTITY nav-home "Domov"> +<!ENTITY nav-next "Nasleduj\U-00FA;ci"> +<!ENTITY nav-next-sibling "R\U-00FD;chlo dopredu"> +<!ENTITY nav-prev "Predch\U-00E1;dzaj\U-00FA;ci"> +<!ENTITY nav-prev-sibling "R\U-00FD;chlo nazp\U-00E4;t"> +<!ENTITY nav-up "Hore"> +<!ENTITY sectioncalled "oddiel nazvan\U-00FD;"> +<!ENTITY Draft "Koncept"> +<!ENTITY above "nad"> +<!ENTITY below "pod"> +<!ENTITY lowercase.alpha "a\U-00E1;\U-00E4;bc\U-010D;d\U-010F;e\U-00E9;fghi\U-00ED;jkl\U-013A;\U-013E;mn\U-0148;o\U-00F3;\U-00F4;pqr\U-0155;s\U-0161;t\U-0165;u\U-00FA;vwxy\U-00FD;z\U-017E;"> +<!ENTITY uppercase.alpha "A\U-00C1;\U-00C4;BC\U-010C;D\U-010E;E\U-00C9;FGHI\U-00CD;JKL\U-0139;\U-013D;MN\U-0147;O\U-00D3;\U-00D4;PQR\U-0154;S\U-0160;T\U-0164;U\U-00DA;VWXY\U-00DD;Z\U-017D;"> diff --git a/common/dbl1sl.dsl b/common/dbl1sl.dsl new file mode 100644 index 0000000..aee1071 --- /dev/null +++ b/common/dbl1sl.dsl @@ -0,0 +1,446 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % lat2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"> +%lat2; +<!ENTITY % sl.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SL" + "dbl1sl.ent"> +%sl.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-sl"> +<style-specification-body> + +;; $Id: dbl1sl.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (sl-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (sl-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-sl-start-quote% + "%t" + %gentext-sl-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-sl-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (sl-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (sl-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-sl-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (sl-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-sl-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (sl-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-sl-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-sl-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-sl-intra-label-sep) + (list)) + +(define (sl-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-sl-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sl-intra-label-sep))) + (sep (assoc name (sl-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-sl-label-title-sep) + (list)) + +(define (sl-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-sl-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sl-label-title-sep))) + (sep (assoc name (sl-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (sl-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (sl-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (sl-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (sl-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-sl$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (sl-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-sl-start-quote% (dingbat "ldquo")) + +(define %gentext-sl-end-quote% (dingbat "rdquo")) + +(define %gentext-sl-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-sl-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-sl-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-sl-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-sl-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-sl-page% "") + +(define %gentext-sl-and% "∧") + +(define %gentext-sl-listcomma% "&listcomma;") + +(define %gentext-sl-lastlistcomma% "&lastlistcomma;") + +(define %gentext-sl-bibl-pages% "&Pgs;") + +(define %gentext-sl-endnotes% "&Notes;") + +(define %gentext-sl-table-endnotes% "&TableNotes;:") + +(define %gentext-sl-index-see% "&See;") + +(define %gentext-sl-index-seealso% "&SeeAlso;") + + +(define (gentext-sl-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-sl-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-sl-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-sl-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-sl-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-sl-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1sl.ent b/common/dbl1sl.ent new file mode 100644 index 0000000..18d61f8 --- /dev/null +++ b/common/dbl1sl.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Povzetek"> +<!ENTITY abstract "Povzetek"> +<!ENTITY Answer "O:"> +<!ENTITY answer "O:"> +<!ENTITY Appendix "Dodatek"> +<!ENTITY appendix "dodatek"> +<!ENTITY Article "\U-010C;lanek"> +<!ENTITY article "\U-010C;lanek"> +<!ENTITY Bibliography "Literatura"> +<!ENTITY bibliography "Literatura"> +<!ENTITY Book "Knjiga"> +<!ENTITY book "Knjiga"> +<!ENTITY Caution "Opozorilo"> +<!ENTITY caution "Opozorilo"> +<!ENTITY CAUTION "OPOZORILO"> +<!ENTITY Chapter "Poglavje"> +<!ENTITY chapter "poglavje"> +<!ENTITY Colophon "Kolofon"> +<!ENTITY colophon "Kolofon"> +<!ENTITY Copyright "Pravna za\U-0161;\U-010D;ita"> +<!ENTITY copyright "Pravna za\U-0161;\U-010D;ita"> +<!ENTITY Dedication "Posvetilo"> +<!ENTITY dedication "Posvetilo"> +<!ENTITY Edition "Izdaja"> +<!ENTITY edition "Izdaja"> +<!ENTITY Equation "Ena\U-010D;ba"> +<!ENTITY equation "Ena\U-010D;ba"> +<!ENTITY Example "Primer"> +<!ENTITY example "Primer"> +<!ENTITY Figure "Slika"> +<!ENTITY figure "Slika"> +<!ENTITY Glossary "Slovar\U-010D;ek"> +<!ENTITY glossary "Slovar\U-010D;ek"> +<!ENTITY GlossSee "glej"> +<!ENTITY glosssee "glej"> +<!ENTITY GlossSeeAlso "glej tudi"> +<!ENTITY glossseealso "glej tudi"> +<!ENTITY IMPORTANT "POMEMBNO"> +<!ENTITY Important "Pomembno"> +<!ENTITY important "Pomembno"> +<!ENTITY Index "Stvarno kazalo"> +<!ENTITY index "Stvarno kazalo"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Pravno sporo\U-010D;ilo"> +<!ENTITY legalnotice "Pravno sporo\U-010D;ilo"> +<!ENTITY MsgAud "Ob\U-010D;instvo"> +<!ENTITY msgaud "Ob\U-010D;instvo"> +<!ENTITY MsgLevel "Raven"> +<!ENTITY msglevel "Raven"> +<!ENTITY MsgOrig "Izvor"> +<!ENTITY msgorig "Izvor"> +<!ENTITY note "Opomba"> +<!ENTITY NOTE "OPOMBA"> +<!ENTITY Note "Opomba"> +<!ENTITY Part "Del"> +<!ENTITY part "Del"> +<!ENTITY Preface "Predgovor"> +<!ENTITY preface "Predgovor"> +<!ENTITY Procedure "Postopek"> +<!ENTITY procedure "Postopek"> +<!ENTITY ProductionSet "Izdelava"> +<!ENTITY Published "Izdano"> +<!ENTITY published "Izdano"> +<!ENTITY Question "V:"> +<!ENTITY question "V:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Sklic"> +<!ENTITY reference "Sklic"> +<!ENTITY RefName "Ime"> +<!ENTITY refname "Ime"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Sinopsis"> +<!ENTITY refsynopsisdiv "Sinopsis"> +<!ENTITY RevHistory "Zgodovina razli\U-010D;ic"> +<!ENTITY revhistory "Zgodovina razli\U-010D;ic"> +<!ENTITY Revision "Razli\U-010D;ica"> +<!ENTITY revision "Razli\U-010D;ica"> +<!ENTITY sect1 "Razdelek"> +<!ENTITY sect2 "Razdelek"> +<!ENTITY sect3 "Razdelek"> +<!ENTITY sect4 "Razdelek"> +<!ENTITY sect5 "Razdelek"> +<!ENTITY Section "Razdelek"> +<!ENTITY section "razdelek"> +<!ENTITY see "glej"> +<!ENTITY See "glej"> +<!ENTITY Seealso "Glej tudi"> +<!ENTITY seealso "glej tudi"> +<!ENTITY SeeAlso "glej tudi"> +<!ENTITY Set "Postavi"> +<!ENTITY set "Postavi"> +<!ENTITY SetIndex "Postavi stvarno kazalo"> +<!ENTITY setindex "Postavi stvarno kazalo"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY step "korak"> +<!ENTITY Step "Korak"> +<!ENTITY table "Tabela"> +<!ENTITY Table "Tabela"> +<!ENTITY TIP "NAMIG"> +<!ENTITY Tip "Namig"> +<!ENTITY tip "Namig"> +<!ENTITY WARNING "POZOR"> +<!ENTITY Warning "Pozor"> +<!ENTITY warning "Pozor"> +<!ENTITY and "in"> +<!ENTITY by "od"> +<!ENTITY Edited "Urejeno"> +<!ENTITY edited "Urejeno"> +<!ENTITY Editedby "Uredil"> +<!ENTITY editedby "Uredil"> +<!ENTITY in "v"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "neobstoje\U-010D;i element"> +<!ENTITY Notes "Notes"> +<!ENTITY notes "Notes"> +<!ENTITY Pgs "Str."> +<!ENTITY pgs "Str."> +<!ENTITY Revisedby "Pregledal: "> +<!ENTITY revisedby "Pregledal: "> +<!ENTITY TableNotes "Notes"> +<!ENTITY tablenotes "Notes"> +<!ENTITY TableofContents "Kazalo"> +<!ENTITY tableofcontents "Kazalo"> +<!ENTITY unexpectedelementname "Nepri\U-010D;akovano ime elementa"> +<!ENTITY unsupported "nepodprto"> +<!ENTITY xrefto "xref na"> +<!ENTITY listofequations "Seznam ena\U-010D;b"> +<!ENTITY ListofEquations "Seznam ena\U-010D;b"> +<!ENTITY ListofExamples "Seznam primerov"> +<!ENTITY listofexamples "Seznam primerov"> +<!ENTITY ListofFigures "Seznam slik"> +<!ENTITY listoffigures "Seznam slik"> +<!ENTITY listoftables "Seznam tabel"> +<!ENTITY ListofTables "Seznam tabel"> +<!ENTITY ListofUnknown "Seznam neznanih stvari"> +<!ENTITY listofunknown "Seznam neznanih stvari"> +<!ENTITY nav-home "Domov"> +<!ENTITY nav-next "Naprej"> +<!ENTITY nav-next-sibling "Hitro naprej"> +<!ENTITY nav-prev "Nazaj"> +<!ENTITY nav-prev-sibling "Hitro nazaj"> +<!ENTITY nav-up "Gor"> +<!ENTITY sectioncalled "razdelek, imenovan"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abc\U-010D;defghijklmnopqrs\U-0161;tuvwxyz\U-017E;"> +<!ENTITY uppercase.alpha "ABC\U-010C;DEFGHIJKLMNOPQRS\U-0160;TUVWXYZ\U-017D;"> diff --git a/common/dbl1sr.dsl b/common/dbl1sr.dsl new file mode 100644 index 0000000..8879bf7 --- /dev/null +++ b/common/dbl1sr.dsl @@ -0,0 +1,446 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % lat2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"> +%lat2; +<!ENTITY % sr.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SR" + "dbl1sr.ent"> +%sr.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-sr"> +<style-specification-body> + +;; $Id: dbl1sr.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (sr-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (sr-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-sr-start-quote% + "%t" + %gentext-sr-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-sr-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (sr-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (sr-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-sr-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (sr-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&ISBN;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-sr-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (sr-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-sr-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-sr-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-sr-intra-label-sep) + (list)) + +(define (sr-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-sr-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sr-intra-label-sep))) + (sep (assoc name (sr-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-sr-label-title-sep) + (list)) + +(define (sr-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-sr-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sr-label-title-sep))) + (sep (assoc name (sr-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (sr-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (sr-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (sr-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (sr-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-sr$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (sr-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-sr-start-quote% (dingbat "ldquo")) + +(define %gentext-sr-end-quote% (dingbat "rdquo")) + +(define %gentext-sr-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-sr-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-sr-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-sr-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-sr-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-sr-page% "") + +(define %gentext-sr-and% "∧") + +(define %gentext-sr-listcomma% "&listcomma;") + +(define %gentext-sr-lastlistcomma% "&lastlistcomma;") + +(define %gentext-sr-bibl-pages% "&Pgs;") + +(define %gentext-sr-endnotes% "&Notes;") + +(define %gentext-sr-table-endnotes% "&TableNotes;:") + +(define %gentext-sr-index-see% "&See;") + +(define %gentext-sr-index-seealso% "&SeeAlso;") + + +(define (gentext-sr-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-sr-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-sr-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-sr-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-sr-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-sr-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1sr.ent b/common/dbl1sr.ent new file mode 100644 index 0000000..0a24815 --- /dev/null +++ b/common/dbl1sr.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-041F;\U-0440;\U-0435;\U-0433;\U-043B;\U-0435;\U-0434;"> +<!ENTITY abstract "\U-043F;\U-0440;\U-0435;\U-0433;\U-043B;\U-0435;\U-0434;"> +<!ENTITY Answer "\U-041E;:"> +<!ENTITY answer "\U-043E;:"> +<!ENTITY Appendix "\U-0414;\U-043E;\U-0434;\U-0430;\U-0442;\U-0430;\U-043A;"> +<!ENTITY appendix "\U-0434;\U-043E;\U-0434;\U-0430;\U-0442;\U-0430;\U-043A;"> +<!ENTITY Article "\U-0427;\U-043B;\U-0430;\U-043D;\U-0430;\U-043A;"> +<!ENTITY article "\U-0447;\U-043B;\U-0430;\U-043D;\U-0430;\U-043A;"> +<!ENTITY Bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY bibliography "\U-043B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Book "\U-041A;\U-045A;\U-0438;\U-0433;\U-0430;"> +<!ENTITY book "\U-043A;\U-045A;\U-0438;\U-0433;\U-0430;"> +<!ENTITY CAUTION "\U-0423;\U-041F;\U-041E;\U-0417;\U-041E;\U-0420;\U-0415;\U-040A;\U-0415;"> +<!ENTITY Caution "\U-0423;\U-043F;\U-043E;\U-0437;\U-043E;\U-0440;\U-0435;\U-045A;\U-0435;"> +<!ENTITY caution "\U-0443;\U-043F;\U-043E;\U-0437;\U-043E;\U-0440;\U-0435;\U-045A;\U-0435;"> +<!ENTITY Chapter "\U-041F;\U-043E;\U-0433;\U-043B;\U-0430;\U-0432;\U-0459;\U-0435;"> +<!ENTITY chapter "\U-043F;\U-043E;\U-0433;\U-043B;\U-0430;\U-0432;\U-0459;\U-0435;"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "\U-041F;\U-043E;\U-0441;\U-0432;\U-0435;\U-0442;\U-0430;"> +<!ENTITY dedication "\U-043F;\U-043E;\U-0441;\U-0432;\U-0435;\U-0442;\U-0430;"> +<!ENTITY Edition "\U-0418;\U-0437;\U-0434;\U-0430;\U-045A;\U-0435;"> +<!ENTITY edition "\U-0438;\U-0437;\U-0434;\U-0430;\U-045A;\U-0435;"> +<!ENTITY Equation "\U-0408;\U-0435;\U-0434;\U-043D;\U-0430;\U-0447;\U-0438;\U-043D;\U-0430;"> +<!ENTITY equation "\U-0458;\U-0435;\U-0434;\U-043D;\U-0430;\U-0447;\U-0438;\U-043D;\U-0430;"> +<!ENTITY Example "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY example "\U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;"> +<!ENTITY Figure "\U-0424;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY figure "\U-0444;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Glossary "\U-0420;\U-0435;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY glossary "\U-0440;\U-0435;\U-0447;\U-043D;\U-0438;\U-043A;"> +<!ENTITY GlossSee "\U-0412;\U-0438;\U-0434;\U-0438;"> +<!ENTITY glosssee "\U-0432;\U-0438;\U-0434;\U-0438;"> +<!ENTITY GlossSeeAlso "\U-0412;\U-0438;\U-0434;\U-0438; \U-0442;\U-0430;\U-043A;\U-043E;\U-0452;\U-0435;"> +<!ENTITY glossseealso "\U-0432;\U-0438;\U-0434;\U-0438; \U-0442;\U-0430;\U-043A;\U-043E;\U-0452;\U-0435;"> +<!ENTITY IMPORTANT "\U-0412;\U-0410;\U-0416;\U-041D;\U-041E;"> +<!ENTITY important "\U-0432;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY Important "\U-0412;\U-0430;\U-0436;\U-043D;\U-043E;"> +<!ENTITY Index "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441;"> +<!ENTITY index "\U-0438;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Legal Notice"> +<!ENTITY legalnotice "Legal Notice"> +<!ENTITY MsgAud "\U-041F;\U-0443;\U-0431;\U-043B;\U-0438;\U-043A;\U-0430;"> +<!ENTITY msgaud "\U-043F;\U-0443;\U-0431;\U-043B;\U-0438;\U-043A;\U-0430;"> +<!ENTITY MsgLevel "\U-041D;\U-0438;\U-0432;\U-043E;"> +<!ENTITY msglevel "\U-043D;\U-0438;\U-0432;\U-043E;"> +<!ENTITY MsgOrig "\U-0418;\U-0437;\U-0432;\U-043E;\U-0440;"> +<!ENTITY msgorig "\U-0438;\U-0437;\U-0432;\U-043E;\U-0440;"> +<!ENTITY NOTE "\U-041F;\U-0420;\U-0418;\U-041C;\U-0415;\U-0414;\U-0411;\U-0410;"> +<!ENTITY Note "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0430;"> +<!ENTITY note "\U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0430;"> +<!ENTITY Part "\U-0414;\U-0435;\U-043E;"> +<!ENTITY part "\U-0434;\U-0435;\U-043E;"> +<!ENTITY Preface "\U-041F;\U-0440;\U-0435;\U-0434;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;"> +<!ENTITY preface "\U-043F;\U-0440;\U-0435;\U-0434;\U-0433;\U-043E;\U-0432;\U-043E;\U-0440;"> +<!ENTITY Procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY procedure "\U-043F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "\U-0414;\U-0430;\U-0442;\U-0443;\U-043C; \U-0438;\U-0437;\U-0434;\U-0430;\U-0432;\U-0430;\U-045A;\U-0430;"> +<!ENTITY pubdate "\U-0434;\U-0430;\U-0442;\U-0443;\U-043C; \U-0438;\U-0437;\U-0434;\U-0430;\U-0432;\U-0430;\U-045A;\U-0430;"> +<!ENTITY Published "\U-0418;\U-0437;\U-0434;\U-0430;\U-043D;\U-043E;"> +<!ENTITY published "\U-0438;\U-0437;\U-0434;\U-0430;\U-043D;\U-043E;"> +<!ENTITY Qandadiv "\U-041F; \U-0438; \U-041E;"> +<!ENTITY qandadiv "\U-043F; \U-0438; \U-043E;"> +<!ENTITY Question "\U-041F;:"> +<!ENTITY question "\U-043F;:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-0420;\U-0435;\U-0444;\U-0435;\U-0440;\U-0435;\U-043D;\U-0446;\U-0430;"> +<!ENTITY reference "\U-0440;\U-0435;\U-0444;\U-0435;\U-0440;\U-0435;\U-043D;\U-0446;\U-0430;"> +<!ENTITY RefName "\U-0418;\U-043C;\U-0435;"> +<!ENTITY refname "\U-0438;\U-043C;\U-0435;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-041A;\U-0440;\U-0430;\U-0442;\U-0430;\U-043A; \U-0441;\U-0430;\U-0434;\U-0440;\U-0436;\U-0430;\U-0458;"> +<!ENTITY refsynopsisdiv "\U-043A;\U-0440;\U-0430;\U-0442;\U-0430;\U-043A; \U-0441;\U-0430;\U-0434;\U-0440;\U-0436;\U-0430;\U-0458;"> +<!ENTITY RevHistory "\U-0418;\U-0441;\U-0442;\U-043E;\U-0440;\U-0438;\U-0458;\U-0430; \U-0440;\U-0435;\U-0432;\U-0438;\U-0437;\U-0438;\U-0458;\U-0430;"> +<!ENTITY revhistory "\U-0438;\U-0441;\U-0442;\U-043E;\U-0440;\U-0438;\U-0458;\U-0430; \U-0440;\U-0435;\U-0432;\U-0438;\U-0437;\U-0438;\U-0458;\U-0430;"> +<!ENTITY revision "\U-0440;\U-0435;\U-0432;\U-0438;\U-0437;\U-0438;\U-0458;\U-0430;"> +<!ENTITY Revision "\U-0420;\U-0435;\U-0432;\U-0438;\U-0437;\U-0438;\U-0458;\U-0430;"> +<!ENTITY sect1 "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY sect2 "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY sect3 "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY sect4 "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY sect5 "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY section "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY Section "\U-041E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A;"> +<!ENTITY see "\U-0432;\U-0438;\U-0434;\U-0438;"> +<!ENTITY See "\U-0412;\U-0438;\U-0434;\U-0438;"> +<!ENTITY seealso "\U-0432;\U-0438;\U-0434;\U-0438; \U-0442;\U-0430;\U-043A;\U-043E;\U-0452;\U-0435;"> +<!ENTITY Seealso "\U-0412;\U-0438;\U-0434;\U-0438; \U-0442;\U-0430;\U-043A;\U-043E;\U-0452;\U-0435;"> +<!ENTITY SeeAlso "\U-0412;\U-0438;\U-0434;\U-0438; \U-0442;\U-0430;\U-043A;\U-043E;\U-0452;\U-0435;"> +<!ENTITY set "\U-0441;\U-043A;\U-0443;\U-043F;"> +<!ENTITY Set "\U-0421;\U-043A;\U-0443;\U-043F;"> +<!ENTITY setindex "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-0441;\U-043A;\U-0443;\U-043F;\U-0430;"> +<!ENTITY SetIndex "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-0441;\U-043A;\U-0443;\U-043F;\U-0430;"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "\U-043F;\U-043E;\U-0432;\U-0440;\U-0448; \U-043F;\U-043E;\U-0441;\U-0442;\U-0440;\U-0430;\U-043D;\U-0446;\U-0435;"> +<!ENTITY step "\U-043A;\U-043E;\U-0440;\U-0430;\U-043A;"> +<!ENTITY Step "\U-041A;\U-043E;\U-0440;\U-0430;\U-043A;"> +<!ENTITY Table "\U-0422;\U-0430;\U-0431;\U-0435;\U-043B;\U-0430;"> +<!ENTITY table "\U-0442;\U-0430;\U-0431;\U-0435;\U-043B;\U-0430;"> +<!ENTITY tip "\U-0441;\U-0430;\U-0432;\U-0435;\U-0442;"> +<!ENTITY TIP "\U-0421;\U-0410;\U-0412;\U-0415;\U-0422;"> +<!ENTITY Tip "\U-0421;\U-0430;\U-0432;\U-0435;\U-0442;"> +<!ENTITY Warning "\U-0423;\U-043F;\U-043E;\U-0437;\U-043E;\U-0440;\U-0435;\U-045A;\U-0435;"> +<!ENTITY warning "\U-0443;\U-043F;\U-043E;\U-0437;\U-043E;\U-0440;\U-0435;\U-045A;\U-0435;"> +<!ENTITY WARNING "\U-0423;\U-041F;\U-041E;\U-0417;\U-041E;\U-0420;\U-0415;\U-040A;\U-0415;"> +<!ENTITY and "\U-0438;"> +<!ENTITY by "\U-043E;\U-0434;"> +<!ENTITY called "\U-043F;\U-043E;\U-0434; \U-0438;\U-043C;\U-0435;\U-043D;\U-043E;\U-043C;"> +<!ENTITY Edited "\U-0423;\U-0440;\U-0435;\U-0452;\U-0435;\U-043D;\U-043E;"> +<!ENTITY edited "\U-0443;\U-0440;\U-0435;\U-0452;\U-0435;\U-043D;\U-043E;"> +<!ENTITY Editedby "\U-0423;\U-0440;\U-0435;\U-0434;\U-0438;\U-043E;(\U-043B;\U-0430;)"> +<!ENTITY editedby "\U-0423;\U-0440;\U-0435;\U-0434;\U-0438;\U-043E;(\U-043B;\U-0430;)"> +<!ENTITY in "\U-0443;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-043D;\U-0435;\U-043F;\U-043E;\U-0441;\U-0442;\U-043E;\U-0458;\U-0435;\U-045B;\U-0438; \U-0435;\U-043B;\U-0435;\U-043C;\U-0435;\U-043D;\U-0442;"> +<!ENTITY notes "\U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0435;"> +<!ENTITY Notes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0435;"> +<!ENTITY Pgs "\U-0421;\U-0442;\U-0440;."> +<!ENTITY pgs "\U-0441;\U-0442;\U-0440;."> +<!ENTITY Revisedby "\U-041F;\U-0440;\U-0435;\U-0433;\U-043B;\U-0435;\U-0434;\U-0430;\U-043E;(\U-043B;\U-0430;): "> +<!ENTITY revisedby "\U-043F;\U-0440;\U-0435;\U-0433;\U-043B;\U-0435;\U-0434;\U-0430;\U-043E;(\U-043B;\U-0430;): "> +<!ENTITY TableNotes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0435;"> +<!ENTITY tablenotes "\U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0434;\U-0431;\U-0435;"> +<!ENTITY TableofContents "\U-0421;\U-0430;\U-0434;\U-0440;\U-0436;\U-0430;\U-0458;"> +<!ENTITY tableofcontents "\U-0441;\U-0430;\U-0434;\U-0440;\U-0436;\U-0430;\U-0458;"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "\U-043D;\U-0435;\U-043E;\U-0447;\U-0435;\U-043A;\U-0438;\U-0432;\U-0430;\U-043D;\U-043E; \U-0438;\U-043C;\U-0435; \U-0435;\U-043B;\U-0435;\U-043C;\U-0435;\U-043D;\U-0442;\U-0430;"> +<!ENTITY unsupported "\U-043D;\U-0438;\U-0458;\U-0435; \U-043F;\U-043E;\U-0434;\U-0440;\U-0436;\U-0430;\U-043D;\U-043E;"> +<!ENTITY xrefto "\U-0443;\U-043D;\U-0430;\U-043A;\U-0440;\U-0441;\U-043D;\U-0430; \U-0440;\U-0435;\U-0444;\U-0435;\U-0440;\U-0435;\U-043D;\U-0446;\U-0430; \U-043D;\U-0430;"> +<!ENTITY listofequations "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0458;\U-0435;\U-0434;\U-043D;\U-0430;\U-0447;\U-0438;\U-043D;\U-0430;"> +<!ENTITY ListofEquations "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0458;\U-0435;\U-0434;\U-043D;\U-0430;\U-0447;\U-0438;\U-043D;\U-0430;"> +<!ENTITY ListofExamples "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-0430;"> +<!ENTITY listofexamples "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0435;\U-0440;\U-0430;"> +<!ENTITY ListofFigures "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0444;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY listoffigures "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0444;\U-0438;\U-0433;\U-0443;\U-0440;\U-0430;"> +<!ENTITY ListofProcedures "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY listofprocedures "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY listoftables "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0442;\U-0430;\U-0431;\U-0435;\U-043B;\U-0430;"> +<!ENTITY ListofTables "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-0442;\U-0430;\U-0431;\U-0435;\U-043B;\U-0430;"> +<!ENTITY ListofUnknown "\U-041B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043D;\U-0435;\U-043F;\U-043E;\U-0437;\U-043D;\U-0430;\U-0442;\U-0438;\U-0445;"> +<!ENTITY listofunknown "\U-043B;\U-0438;\U-0441;\U-0442;\U-0430; \U-043D;\U-0435;\U-043F;\U-043E;\U-0437;\U-043D;\U-0430;\U-0442;\U-0438;\U-0445;"> +<!ENTITY nav-home "\U-041F;\U-043E;\U-0447;\U-0435;\U-0442;\U-0430;\U-043A;"> +<!ENTITY nav-next "\U-0421;\U-043B;\U-0435;\U-0434;\U-0435;\U-045B;\U-0435;"> +<!ENTITY nav-next-sibling "\U-0411;\U-0440;\U-0437;\U-043E; \U-043D;\U-0430;\U-043F;\U-0440;\U-0435;\U-0434;"> +<!ENTITY nav-prev "\U-041F;\U-0440;\U-0435;\U-0442;\U-0445;\U-043E;\U-0434;\U-043D;\U-043E;"> +<!ENTITY nav-prev-sibling "\U-0411;\U-0440;\U-0437;\U-043E; \U-043D;\U-0430;\U-0437;\U-0430;\U-0434;"> +<!ENTITY nav-up "\U-0412;\U-0440;\U-0445;"> +<!ENTITY nav-toc "\U-0421;\U-0430;\U-0434;\U-0440;."> +<!ENTITY Draft "\U-041D;\U-0430;\U-0446;\U-0440;\U-0442;"> +<!ENTITY above "\U-0438;\U-0437;\U-043D;\U-0430;\U-0434;"> +<!ENTITY below "\U-0438;\U-0441;\U-043F;\U-043E;\U-0434;"> +<!ENTITY sectioncalled "\U-043E;\U-0434;\U-0435;\U-0459;\U-0430;\U-043A; \U-043F;\U-043E;\U-0434; \U-0438;\U-043C;\U-0435;\U-043D;\U-043E;\U-043C;"> +<!ENTITY lowercase.alpha "\U-0430;\U-0431;\U-0432;\U-0433;\U-0434;\U-0452;\U-0435;\U-0436;\U-0437;\U-0438;\U-0458;\U-043A;\U-043B;\U-0459;\U-043C;\U-043D;\U-045A;\U-043E;\U-043F;\U-0440;\U-0441;\U-0442;\U-045B;\U-0443;\U-0444;\U-0445;\U-0446;\U-0447;\U-045F;\U-0448;"> +<!ENTITY uppercase.alpha "\U-0410;\U-0411;\U-0412;\U-0413;\U-0414;\U-0402;\U-0415;\U-0416;\U-0417;\U-0418;\U-0408;\U-041A;\U-041B;\U-0409;\U-041C;\U-041D;\U-040A;\U-041E;\U-041F;\U-0420;\U-0421;\U-0422;\U-040B;\U-0423;\U-0424;\U-0425;\U-0426;\U-0427;\U-040F;\U-0428;"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1sv.dsl b/common/dbl1sv.dsl new file mode 100644 index 0000000..cb5df12 --- /dev/null +++ b/common/dbl1sv.dsl @@ -0,0 +1,448 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % sv.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//SV" + "dbl1sv.ent"> +%sv.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-sv"> +<style-specification-body> + +;; $Id: dbl1sv.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Marcus Better, marcus@dactylis.se +;; + +(define (sv-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (sv-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "&Appendix; som &called; %t")) + (list (normalize "article") (string-append %gentext-sv-start-quote% + "%t" + %gentext-sv-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "&Chapter; som &called; %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "&Section; som &called; %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-sv-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (sv-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (sv-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " in ")) + ((equal? (gi before) (normalize "chapter")) + (literal " in ")) + ((equal? (gi before) (normalize "sect1")) + (literal " in ")) + (else + (literal " in ")))) + +;; Should the TOC come first or last? +;; +(define %generate-sv-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (sv-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-sv-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (sv-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-sv-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-sv-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-sv-intra-label-sep) + (list)) + +(define (sv-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-sv-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sv-intra-label-sep))) + (sep (assoc name (sv-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-sv-label-title-sep) + (list)) + +(define (sv-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-sv-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-sv-label-title-sep))) + (sep (assoc name (sv-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (sv-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (sv-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (sv-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (sv-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-sv$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (sv-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-sv-start-quote% (dingbat "ldquo")) + +(define %gentext-sv-end-quote% (dingbat "rdquo")) + +(define %gentext-sv-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-sv-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-sv-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-sv-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-sv-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-sv-page% "") + +(define %gentext-sv-and% "∧") + +(define %gentext-sv-listcomma% "&listcomma;") + +(define %gentext-sv-lastlistcomma% "&lastlistcomma;") + +(define %gentext-sv-bibl-pages% "&Pgs;") + +(define %gentext-sv-endnotes% "&Notes;") + +(define %gentext-sv-table-endnotes% "&TableNotes;:") + +(define %gentext-sv-index-see% "&See;") + +(define %gentext-sv-index-seealso% "&SeeAlso;") + + +(define (gentext-sv-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-sv-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-sv-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-sv-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-sv-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-sv-nav-home home) + (make sequence (literal "&nav-home;"))) + + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1sv.ent b/common/dbl1sv.ent new file mode 100644 index 0000000..16232b6 --- /dev/null +++ b/common/dbl1sv.ent @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Sammanfattning"> +<!ENTITY abstract "Sammanfattning"> +<!ENTITY Answer "A:"> +<!ENTITY answer "A:"> +<!ENTITY Appendix "Appendix"> +<!ENTITY appendix "appendix"> +<!ENTITY Article "Artikel"> +<!ENTITY article "Artikel"> +<!ENTITY Bibliography "Bibliografi"> +<!ENTITY bibliography "Bibliografi"> +<!ENTITY Book "Bok"> +<!ENTITY book "Bok"> +<!ENTITY CAUTION "OBSERVERA"> +<!ENTITY Caution "Observera"> +<!ENTITY caution "Observera"> +<!ENTITY Chapter "Kapitel"> +<!ENTITY chapter "kapitel"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "Copyright"> +<!ENTITY copyright "Copyright"> +<!ENTITY Dedication "Dedikation"> +<!ENTITY dedication "Dedikation"> +<!ENTITY Edition "Utg\U-00E5;va"> +<!ENTITY edition "Utg\U-00E5;va"> +<!ENTITY Equation "Ekvation"> +<!ENTITY equation "Ekvation"> +<!ENTITY Example "Exempel"> +<!ENTITY example "Exempel"> +<!ENTITY Figure "Figur"> +<!ENTITY figure "Figur"> +<!ENTITY Glossary "Gloslista"> +<!ENTITY glossary "Gloslista"> +<!ENTITY GlossSee "Se"> +<!ENTITY glosssee "Se"> +<!ENTITY GlossSeeAlso "Se \U-00C4;ven"> +<!ENTITY glossseealso "Se \U-00C4;ven"> +<!ENTITY IMPORTANT "VIKTIGT"> +<!ENTITY Important "Viktigt"> +<!ENTITY important "Viktigt"> +<!ENTITY Index "Index"> +<!ENTITY index "Index"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Legal Notice"> +<!ENTITY legalnotice "Legal Notice"> +<!ENTITY MsgAud "M\U-00E5;lgrupp"> +<!ENTITY msgaud "M\U-00E5;lgrupp"> +<!ENTITY MsgLevel "Niv\U-00E5;"> +<!ENTITY msglevel "Niv\U-00E5;"> +<!ENTITY MsgOrig "Ursprung"> +<!ENTITY msgorig "Ursprung"> +<!ENTITY NOTE "NOTERA"> +<!ENTITY Note "Notera"> +<!ENTITY note "Notera"> +<!ENTITY Part "Del"> +<!ENTITY part "Del"> +<!ENTITY Preface "F\U-00F6;retal"> +<!ENTITY preface "F\U-00F6;retal"> +<!ENTITY Procedure "Procedur"> +<!ENTITY procedure "Procedur"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "Publicerad"> +<!ENTITY published "Publicerad"> +<!ENTITY Question "Fr\U-00E5;ga:"> +<!ENTITY question "Fr\U-00E5;ga:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referens"> +<!ENTITY reference "Referens"> +<!ENTITY RefName "Namn"> +<!ENTITY refname "Namn"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Revisionshistorik"> +<!ENTITY revhistory "Revisionshistorik"> +<!ENTITY Revision "Revision"> +<!ENTITY revision "Revision"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "Avsnitt"> +<!ENTITY section "avsnitt"> +<!ENTITY See "Se"> +<!ENTITY see "se"> +<!ENTITY SeeAlso "Se \U-00C4;ven"> +<!ENTITY seealso "se \U-00E4;ven"> +<!ENTITY Seealso "Se \U-00E4;ven"> +<!ENTITY Set "Set"> +<!ENTITY set "Set"> +<!ENTITY SetIndex "Set Index"> +<!ENTITY setindex "Set Index"> +<!ENTITY Sidebar "Sidebar"> +<!ENTITY sidebar "sidebar"> +<!ENTITY Step "Steg"> +<!ENTITY step "steg"> +<!ENTITY Table "Tabell"> +<!ENTITY table "Tabell"> +<!ENTITY TIP "TIPS"> +<!ENTITY Tip "Tips"> +<!ENTITY tip "Tips"> +<!ENTITY WARNING "VARNING"> +<!ENTITY Warning "Varning"> +<!ENTITY warning "Varning"> +<!ENTITY and "och"> +<!ENTITY by "av"> +<!ENTITY called "kallas"> +<!ENTITY Edited "Redigerad"> +<!ENTITY edited "Redigerad"> +<!ENTITY Editedby "Redigerad av"> +<!ENTITY editedby "Redigerad av"> +<!ENTITY in "i"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "icke-existerande element"> +<!ENTITY Notes "Noter"> +<!ENTITY notes "Noter"> +<!ENTITY Pgs "Sid."> +<!ENTITY pgs "Sid."> +<!ENTITY Revisedby "Reviderad av: "> +<!ENTITY revisedby "Reviderad av: "> +<!ENTITY TableNotes "Noter"> +<!ENTITY tablenotes "Noter"> +<!ENTITY TableofContents "Inneh\U-00E5;llsf\U-00F6;rteckning"> +<!ENTITY tableofcontents "Inneh\U-00E5;llsf\U-00F6;rteckning"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "Ov\U-00E4;ntat elementnamn"> +<!ENTITY unsupported "unsupported"> +<!ENTITY xrefto "korsreferens till"> +<!ENTITY ListofEquations "Ekvationsf\U-00F6;rteckning"> +<!ENTITY listofequations "Ekvationsf\U-00F6;rteckning"> +<!ENTITY ListofExamples "Exempelf\U-00F6;rteckning"> +<!ENTITY listofexamples "Exempelf\U-00F6;rteckning"> +<!ENTITY ListofFigures "Figurf\U-00F6;rteckning"> +<!ENTITY listoffigures "Figurf\U-00F6;rteckning"> +<!ENTITY ListofTables "Tabellf\U-00F6;rteckning"> +<!ENTITY listoftables "Tabellf\U-00F6;rteckning"> +<!ENTITY ListofUnknown "F\U-00F6;rteckning av ok\U-00E4;nda"> +<!ENTITY listofunknown "F\U-00F6;rteckning av ok\U-00E4;nda"> +<!ENTITY nav-home "Hem"> +<!ENTITY nav-next "N\U-00E4;sta"> +<!ENTITY nav-next-sibling "Snabbt fram\U-00E5;t"> +<!ENTITY nav-prev "F\U-00F6;reg\U-00E5;ende"> +<!ENTITY nav-prev-sibling "Snabbt bak\U-00E5;t"> +<!ENTITY nav-up "Upp"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1th.ent b/common/dbl1th.ent new file mode 100644 index 0000000..54d5ad2 --- /dev/null +++ b/common/dbl1th.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-0E1A;\U-0E17;\U-0E04;\U-0E31;\U-0E14;\U-0E22;\U-0E48;\U-0E2D;"> +<!ENTITY abstract "\U-0E1A;\U-0E17;\U-0E04;\U-0E31;\U-0E14;\U-0E22;\U-0E48;\U-0E2D;"> +<!ENTITY Answer "\U-0E15;\U-0E2D;\U-0E1A;:"> +<!ENTITY answer "\U-0E15;\U-0E2D;\U-0E1A;:"> +<!ENTITY Appendix "\U-0E20;\U-0E32;\U-0E04;\U-0E1C;\U-0E19;\U-0E27;\U-0E01;"> +<!ENTITY appendix "\U-0E20;\U-0E32;\U-0E04;\U-0E1C;\U-0E19;\U-0E27;\U-0E01;"> +<!ENTITY Article "\U-0E1A;\U-0E17;\U-0E04;\U-0E27;\U-0E32;\U-0E21;"> +<!ENTITY article "\U-0E1A;\U-0E17;\U-0E04;\U-0E27;\U-0E32;\U-0E21;"> +<!ENTITY Bibliography "\U-0E1A;\U-0E23;\U-0E23;\U-0E13;\U-0E32;\U-0E19;\U-0E38;\U-0E01;\U-0E23;\U-0E21;"> +<!ENTITY bibliography "\U-0E1A;\U-0E23;\U-0E23;\U-0E13;\U-0E32;\U-0E19;\U-0E38;\U-0E01;\U-0E23;\U-0E21;"> +<!ENTITY Book "\U-0E2B;\U-0E19;\U-0E31;\U-0E07;\U-0E2A;\U-0E37;\U-0E2D;"> +<!ENTITY book "\U-0E2B;\U-0E19;\U-0E31;\U-0E07;\U-0E2A;\U-0E37;\U-0E2D;"> +<!ENTITY CAUTION "\U-0E04;\U-0E33;\U-0E40;\U-0E15;\U-0E37;\U-0E2D;\U-0E19;"> +<!ENTITY Caution "\U-0E04;\U-0E33;\U-0E40;\U-0E15;\U-0E37;\U-0E2D;\U-0E19;"> +<!ENTITY caution "\U-0E04;\U-0E33;\U-0E40;\U-0E15;\U-0E37;\U-0E2D;\U-0E19;"> +<!ENTITY Chapter "\U-0E1A;\U-0E17;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY chapter "\U-0E1A;\U-0E17;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY Colophon "\U-0E40;\U-0E1A;\U-0E37;\U-0E49;\U-0E2D;\U-0E07;\U-0E2B;\U-0E25;\U-0E31;\U-0E07;"> +<!ENTITY colophon "\U-0E40;\U-0E1A;\U-0E37;\U-0E49;\U-0E2D;\U-0E07;\U-0E2B;\U-0E25;\U-0E31;\U-0E07;"> +<!ENTITY Copyright "\U-0E2A;\U-0E07;\U-0E27;\U-0E19;\U-0E2A;\U-0E34;\U-0E02;\U-0E2A;\U-0E34;\U-0E17;\U-0E18;\U-0E34;\U-0E4C;"> +<!ENTITY copyright "\U-0E2A;\U-0E07;\U-0E27;\U-0E19;\U-0E2A;\U-0E34;\U-0E02;\U-0E2A;\U-0E34;\U-0E17;\U-0E18;\U-0E34;\U-0E4C;"> +<!ENTITY Dedication "\U-0E04;\U-0E33;\U-0E2D;\U-0E38;\U-0E17;\U-0E34;\U-0E28;"> +<!ENTITY dedication "\U-0E04;\U-0E33;\U-0E2D;\U-0E38;\U-0E17;\U-0E34;\U-0E28;"> +<!ENTITY Edition "\U-0E09;\U-0E1A;\U-0E31;\U-0E1A;"> +<!ENTITY edition "\U-0E09;\U-0E1A;\U-0E31;\U-0E1A;"> +<!ENTITY Equation "\U-0E2A;\U-0E21;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY equation "\U-0E2A;\U-0E21;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY Example "\U-0E15;\U-0E31;\U-0E27;\U-0E2D;\U-0E22;\U-0E48;\U-0E32;\U-0E07;"> +<!ENTITY example "\U-0E15;\U-0E31;\U-0E27;\U-0E2D;\U-0E22;\U-0E48;\U-0E32;\U-0E07;"> +<!ENTITY Figure "\U-0E23;\U-0E39;\U-0E1B;"> +<!ENTITY figure "\U-0E23;\U-0E39;\U-0E1B;"> +<!ENTITY Glossary "\U-0E2D;\U-0E20;\U-0E34;\U-0E17;\U-0E32;\U-0E19;\U-0E28;\U-0E31;\U-0E1E;\U-0E17;\U-0E4C;"> +<!ENTITY glossary "\U-0E2D;\U-0E20;\U-0E34;\U-0E17;\U-0E32;\U-0E19;\U-0E28;\U-0E31;\U-0E1E;\U-0E17;\U-0E4C;"> +<!ENTITY GlossSee "\U-0E14;\U-0E39;"> +<!ENTITY glosssee "\U-0E14;\U-0E39;"> +<!ENTITY GlossSeeAlso "\U-0E14;\U-0E39;\U-0E40;\U-0E1E;\U-0E34;\U-0E48;\U-0E21;\U-0E40;\U-0E15;\U-0E34;\U-0E21;"> +<!ENTITY glossseealso "\U-0E14;\U-0E39;\U-0E40;\U-0E1E;\U-0E34;\U-0E48;\U-0E21;\U-0E40;\U-0E15;\U-0E34;\U-0E21;"> +<!ENTITY IMPORTANT "\U-0E02;\U-0E49;\U-0E2D;\U-0E04;\U-0E27;\U-0E23;\U-0E08;\U-0E33;"> +<!ENTITY important "\U-0E02;\U-0E49;\U-0E2D;\U-0E04;\U-0E27;\U-0E23;\U-0E08;\U-0E33;"> +<!ENTITY Important "\U-0E02;\U-0E49;\U-0E2D;\U-0E04;\U-0E27;\U-0E23;\U-0E08;\U-0E33;"> +<!ENTITY Index "\U-0E14;\U-0E23;\U-0E23;\U-0E0A;\U-0E19;\U-0E35;"> +<!ENTITY index "\U-0E14;\U-0E23;\U-0E23;\U-0E0A;\U-0E19;\U-0E35;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-0E02;\U-0E49;\U-0E2D;\U-0E1C;\U-0E39;\U-0E01;\U-0E1E;\U-0E31;\U-0E19;\U-0E15;\U-0E32;\U-0E21;\U-0E01;\U-0E0E;\U-0E2B;\U-0E21;\U-0E32;\U-0E22;"> +<!ENTITY legalnotice "\U-0E02;\U-0E49;\U-0E2D;\U-0E1C;\U-0E39;\U-0E01;\U-0E1E;\U-0E31;\U-0E19;\U-0E15;\U-0E32;\U-0E21;\U-0E01;\U-0E0E;\U-0E2B;\U-0E21;\U-0E32;\U-0E22;"> +<!ENTITY MsgAud "\U-0E1C;\U-0E39;\U-0E49;\U-0E2D;\U-0E48;\U-0E32;\U-0E19;"> +<!ENTITY msgaud "\U-0E1C;\U-0E39;\U-0E49;\U-0E2D;\U-0E48;\U-0E32;\U-0E19;"> +<!ENTITY MsgLevel "\U-0E23;\U-0E30;\U-0E14;\U-0E31;\U-0E1A;"> +<!ENTITY msglevel "\U-0E23;\U-0E30;\U-0E14;\U-0E31;\U-0E1A;"> +<!ENTITY MsgOrig "\U-0E17;\U-0E35;\U-0E48;\U-0E21;\U-0E32;"> +<!ENTITY msgorig "\U-0E17;\U-0E35;\U-0E48;\U-0E21;\U-0E32;"> +<!ENTITY NOTE "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY Note "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY note "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY Part "\U-0E20;\U-0E32;\U-0E04;"> +<!ENTITY part "\U-0E20;\U-0E32;\U-0E04;"> +<!ENTITY Preface "\U-0E04;\U-0E33;\U-0E19;\U-0E33;"> +<!ENTITY preface "\U-0E04;\U-0E33;\U-0E19;\U-0E33;"> +<!ENTITY Procedure "\U-0E23;\U-0E30;\U-0E40;\U-0E1A;\U-0E35;\U-0E22;\U-0E1A;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY procedure "\U-0E23;\U-0E30;\U-0E40;\U-0E1A;\U-0E35;\U-0E22;\U-0E1A;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY ProductionSet "\U-0E1C;\U-0E25;\U-0E34;\U-0E15;"> +<!ENTITY Published "\U-0E15;\U-0E35;\U-0E1E;\U-0E34;\U-0E21;\U-0E1E;\U-0E4C;"> +<!ENTITY published "\U-0E15;\U-0E35;\U-0E1E;\U-0E34;\U-0E21;\U-0E1E;\U-0E4C;"> +<!ENTITY Question "\U-0E16;\U-0E32;\U-0E21;:"> +<!ENTITY question "\U-0E16;\U-0E32;\U-0E21;:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-0E2B;\U-0E19;\U-0E31;\U-0E07;\U-0E2A;\U-0E37;\U-0E2D;\U-0E2D;\U-0E49;\U-0E32;\U-0E07;\U-0E2D;\U-0E34;\U-0E07;"> +<!ENTITY reference "\U-0E2B;\U-0E19;\U-0E31;\U-0E07;\U-0E2A;\U-0E37;\U-0E2D;\U-0E2D;\U-0E49;\U-0E32;\U-0E07;\U-0E2D;\U-0E34;\U-0E07;"> +<!ENTITY RefName "\U-0E0A;\U-0E37;\U-0E48;\U-0E2D;"> +<!ENTITY refname "\U-0E0A;\U-0E37;\U-0E48;\U-0E2D;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-0E2A;\U-0E32;\U-0E23;\U-0E30;\U-0E2A;\U-0E33;\U-0E04;\U-0E31;\U-0E0D;"> +<!ENTITY refsynopsisdiv "\U-0E2A;\U-0E32;\U-0E23;\U-0E30;\U-0E2A;\U-0E33;\U-0E04;\U-0E31;\U-0E0D;"> +<!ENTITY RevHistory "\U-0E1A;\U-0E31;\U-0E19;\U-0E17;\U-0E36;\U-0E01;\U-0E23;\U-0E38;\U-0E48;\U-0E19;"> +<!ENTITY revhistory "\U-0E1A;\U-0E31;\U-0E19;\U-0E17;\U-0E36;\U-0E01;\U-0E23;\U-0E38;\U-0E48;\U-0E19;"> +<!ENTITY revision "\U-0E23;\U-0E38;\U-0E48;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY Revision "\U-0E23;\U-0E38;\U-0E48;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY sect1 "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY sect2 "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY sect3 "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY sect4 "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY sect5 "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY section "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY Section "\U-0E15;\U-0E2D;\U-0E19;\U-0E17;\U-0E35;\U-0E48;"> +<!ENTITY See "\U-0E14;\U-0E39;"> +<!ENTITY see "\U-0E14;\U-0E39;"> +<!ENTITY SeeAlso "\U-0E14;\U-0E39;\U-0E40;\U-0E1E;\U-0E34;\U-0E48;\U-0E21;\U-0E40;\U-0E15;\U-0E34;\U-0E21;"> +<!ENTITY seealso "\U-0E14;\U-0E39;\U-0E40;\U-0E1E;\U-0E34;\U-0E48;\U-0E21;\U-0E40;\U-0E15;\U-0E34;\U-0E21;"> +<!ENTITY Seealso "\U-0E14;\U-0E39;\U-0E40;\U-0E1E;\U-0E34;\U-0E48;\U-0E21;\U-0E40;\U-0E15;\U-0E34;\U-0E21;"> +<!ENTITY set "\U-0E0A;\U-0E38;\U-0E14;"> +<!ENTITY Set "\U-0E0A;\U-0E38;\U-0E14;"> +<!ENTITY setindex "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E0A;\U-0E38;\U-0E14;"> +<!ENTITY SetIndex "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E0A;\U-0E38;\U-0E14;"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY step "\U-0E25;\U-0E33;\U-0E14;\U-0E31;\U-0E1A;"> +<!ENTITY Step "\U-0E25;\U-0E33;\U-0E14;\U-0E31;\U-0E1A;"> +<!ENTITY Table "\U-0E15;\U-0E32;\U-0E23;\U-0E32;\U-0E07;"> +<!ENTITY table "\U-0E15;\U-0E32;\U-0E23;\U-0E32;\U-0E07;"> +<!ENTITY tip "\U-0E04;\U-0E33;\U-0E41;\U-0E19;\U-0E30;\U-0E19;\U-0E33;"> +<!ENTITY TIP "\U-0E04;\U-0E33;\U-0E41;\U-0E19;\U-0E30;\U-0E19;\U-0E33;"> +<!ENTITY Tip "\U-0E04;\U-0E33;\U-0E41;\U-0E19;\U-0E30;\U-0E19;\U-0E33;"> +<!ENTITY Warning "\U-0E42;\U-0E1B;\U-0E23;\U-0E14;\U-0E23;\U-0E30;\U-0E27;\U-0E31;\U-0E07;"> +<!ENTITY warning "\U-0E42;\U-0E1B;\U-0E23;\U-0E14;\U-0E23;\U-0E30;\U-0E27;\U-0E31;\U-0E07;"> +<!ENTITY WARNING "\U-0E42;\U-0E1B;\U-0E23;\U-0E14;\U-0E23;\U-0E30;\U-0E27;\U-0E31;\U-0E07;"> +<!ENTITY and "\U-0E41;\U-0E25;\U-0E30;"> +<!ENTITY by "\U-0E42;\U-0E14;\U-0E22;"> +<!ENTITY Edited "\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E1A;\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E07;"> +<!ENTITY edited "\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E1A;\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E07;"> +<!ENTITY Editedby "\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E1A;\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E07;\U-0E42;\U-0E14;\U-0E1A;"> +<!ENTITY editedby "\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E1A;\U-0E40;\U-0E23;\U-0E35;\U-0E22;\U-0E07;\U-0E42;\U-0E14;\U-0E1A;"> +<!ENTITY in "\U-0E43;\U-0E19;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-0E44;\U-0E21;\U-0E48;\U-0E1E;\U-0E1A;\U-0E2A;\U-0E48;\U-0E27;\U-0E19;\U-0E17;\U-0E35;\U-0E48;\U-0E15;\U-0E49;\U-0E2D;\U-0E07;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY notes "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY Notes "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY Pgs "\U-0E2B;\U-0E19;\U-0E49;\U-0E32;"> +<!ENTITY pgs "\U-0E2B;\U-0E19;\U-0E49;\U-0E32;"> +<!ENTITY Revisedby "\U-0E41;\U-0E01;\U-0E49;\U-0E44;\U-0E02;\U-0E1B;\U-0E23;\U-0E31;\U-0E1A;\U-0E1B;\U-0E23;\U-0E38;\U-0E07;\U-0E42;\U-0E14;\U-0E22;: "> +<!ENTITY revisedby "\U-0E41;\U-0E01;\U-0E49;\U-0E44;\U-0E02;\U-0E1B;\U-0E23;\U-0E31;\U-0E1A;\U-0E1B;\U-0E23;\U-0E38;\U-0E07;\U-0E42;\U-0E14;\U-0E22;: "> +<!ENTITY TableNotes "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY tablenotes "\U-0E2B;\U-0E21;\U-0E32;\U-0E22;\U-0E40;\U-0E2B;\U-0E15;\U-0E38;"> +<!ENTITY TableofContents "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;"> +<!ENTITY tableofcontents "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;"> +<!ENTITY unexpectedelementname "\U-0E1E;\U-0E1A;\U-0E2A;\U-0E48;\U-0E27;\U-0E19;\U-0E17;\U-0E35;\U-0E48;\U-0E44;\U-0E21;\U-0E48;\U-0E15;\U-0E49;\U-0E2D;\U-0E07;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY unsupported "\U-0E44;\U-0E21;\U-0E48;\U-0E2A;\U-0E19;\U-0E31;\U-0E1A;\U-0E2A;\U-0E19;\U-0E38;\U-0E19;"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E2A;\U-0E21;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY ListofEquations "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E2A;\U-0E21;\U-0E01;\U-0E32;\U-0E23;"> +<!ENTITY ListofExamples "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E15;\U-0E31;\U-0E27;\U-0E2D;\U-0E22;\U-0E48;\U-0E32;\U-0E07;"> +<!ENTITY listofexamples "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E15;\U-0E31;\U-0E27;\U-0E2D;\U-0E22;\U-0E48;\U-0E32;\U-0E07;"> +<!ENTITY ListofFigures "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E23;\U-0E39;\U-0E1B;"> +<!ENTITY listoffigures "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E23;\U-0E39;\U-0E1B;"> +<!ENTITY listoftables "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E15;\U-0E32;\U-0E23;\U-0E32;\U-0E07;"> +<!ENTITY ListofTables "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E15;\U-0E32;\U-0E23;\U-0E32;\U-0E07;"> +<!ENTITY ListofUnknown "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E2D;\U-0E37;\U-0E48;\U-0E19; \U-0E46;"> +<!ENTITY listofunknown "\U-0E2A;\U-0E32;\U-0E23;\U-0E1A;\U-0E31;\U-0E0D;\U-0E2D;\U-0E37;\U-0E48;\U-0E19; \U-0E46;"> +<!ENTITY nav-home "\U-0E2B;\U-0E19;\U-0E49;\U-0E32;\U-0E41;\U-0E23;\U-0E01;"> +<!ENTITY nav-next "\U-0E15;\U-0E48;\U-0E2D;\U-0E44;\U-0E1B;"> +<!ENTITY nav-next-sibling "\U-0E15;\U-0E48;\U-0E2D;\U-0E44;\U-0E1B;"> +<!ENTITY nav-prev "\U-0E01;\U-0E48;\U-0E2D;\U-0E19;\U-0E2B;\U-0E19;\U-0E49;\U-0E32;"> +<!ENTITY nav-prev-sibling "\U-0E01;\U-0E48;\U-0E2D;\U-0E19;\U-0E2B;\U-0E19;\U-0E49;\U-0E32;"> +<!ENTITY nav-up "\U-0E01;\U-0E25;\U-0E31;\U-0E1A;"> +<!ENTITY sectioncalled "\U-0E15;\U-0E2D;\U-0E19;\U-0E19;\U-0E35;\U-0E49;\U-0E40;\U-0E49;\U-0E23;\U-0E35;\U-0E22;\U-0E01;\U-0E27;\U-0E48;\U-0E32;"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1tr.dsl b/common/dbl1tr.dsl new file mode 100644 index 0000000..8351218 --- /dev/null +++ b/common/dbl1tr.dsl @@ -0,0 +1,443 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % tr.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//TR" + "dbl1tr.ent"> +%tr.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-tr"> +<style-specification-body> + +;; $Id: dbl1tr.dsl,v 1.2 2002/06/06 13:19:30 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; Modified for Turkish by Baurjan Ismagulov, ibr@gantek.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (tr-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (tr-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-tr-start-quote% + "%t" + %gentext-tr-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-tr-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (tr-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (tr-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-tr-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (tr-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&ISBN;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-tr-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (tr-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-tr-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-tr-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the separator to be inserted +;; between multiple occurrences of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-tr-intra-label-sep) + (list)) + +(define (tr-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-tr-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-tr-intra-label-sep))) + (sep (assoc name (tr-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the separator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-tr-label-title-sep) + (list)) + +(define (tr-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-tr-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (sep (assoc name (tr-label-title-sep)))) + (if sep + (car (cdr sep)) + ""))) + +(define (tr-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (tr-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (tr-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (tr-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-tr$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (tr-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-tr-start-quote% (dingbat "ldquo")) + +(define %gentext-tr-end-quote% (dingbat "rdquo")) + +(define %gentext-tr-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-tr-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-tr-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-tr-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-tr-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-tr-page% "") + +(define %gentext-tr-and% "∧") + +(define %gentext-tr-listcomma% "&listcomma;") + +(define %gentext-tr-lastlistcomma% "&lastlistcomma;") + +(define %gentext-tr-bibl-pages% "&Pgs;") + +(define %gentext-tr-endnotes% "&Notes;") + +(define %gentext-tr-table-endnotes% "&TableNotes;:") + +(define %gentext-tr-index-see% "&See;") + +(define %gentext-tr-index-seealso% "&SeeAlso;") + + +(define (gentext-tr-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-tr-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-tr-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-tr-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-tr-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-tr-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1tr.ent b/common/dbl1tr.ent new file mode 100644 index 0000000..a8c79f8 --- /dev/null +++ b/common/dbl1tr.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-00D6;zet"> +<!ENTITY abstract "\U-00D6;zet"> +<!ENTITY Answer "Cevap:"> +<!ENTITY answer "Cevap:"> +<!ENTITY Appendix "Ek"> +<!ENTITY appendix "ek"> +<!ENTITY Article "Makale"> +<!ENTITY article "Makale"> +<!ENTITY Bibliography "Kaynak\U-00E7;a"> +<!ENTITY bibliography "Kaynak\U-00E7;a"> +<!ENTITY Book "Kitap"> +<!ENTITY book "Kitap"> +<!ENTITY CAUTION "D\U-0130;KKAT"> +<!ENTITY Caution "Dikkat"> +<!ENTITY caution "Dikkat"> +<!ENTITY Chapter "B\U-00F6;l\U-00FC;m"> +<!ENTITY chapter "b\U-00F6;l\U-00FC;m"> +<!ENTITY Colophon "Kitap hakk\U-0131;nda"> +<!ENTITY colophon "Kitap hakk\U-0131;nda"> +<!ENTITY Copyright "Telif Hakk\U-0131;"> +<!ENTITY copyright "Telif Hakk\U-0131;"> +<!ENTITY Dedication "\U-0130;thaf"> +<!ENTITY dedication "\U-0130;thaf"> +<!ENTITY Edition "Bask\U-0131;"> +<!ENTITY edition "Bask\U-0131;"> +<!ENTITY Equation "Denklem"> +<!ENTITY equation "Denklem"> +<!ENTITY Example "\U-00D6;rnek"> +<!ENTITY example "\U-00D6;rnek"> +<!ENTITY Figure "\U-015E;ekil"> +<!ENTITY figure "\U-015E;ekil"> +<!ENTITY Glossary "S\U-00F6;zl\U-00FC;k"> +<!ENTITY glossary "S\U-00F6;zl\U-00FC;k"> +<!ENTITY GlossSee "Bkz."> +<!ENTITY glosssee "Bkz."> +<!ENTITY GlossSeeAlso "Bkz."> +<!ENTITY glossseealso "Bkz."> +<!ENTITY IMPORTANT "\U-00D6;NEML\U-0130;"> +<!ENTITY important "\U-00D6;nemli"> +<!ENTITY Important "\U-00D6;nemli"> +<!ENTITY Index "Dizin"> +<!ENTITY index "Dizin"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "Yasal Uyar\U-0131;"> +<!ENTITY legalnotice "Yasal Uyar\U-0131;"> +<!ENTITY MsgAud "Hedef Okuyucu"> +<!ENTITY msgaud "Hedef Okuyucu"> +<!ENTITY MsgLevel "Level"> +<!ENTITY msglevel "D\U-00FC;zey"> +<!ENTITY MsgOrig "D\U-00FC;zey"> +<!ENTITY msgorig "Kaynak"> +<!ENTITY NOTE "NOT"> +<!ENTITY Note "Not"> +<!ENTITY note "Not"> +<!ENTITY Part "K\U-0131;s\U-0131;m"> +<!ENTITY part "K\U-0131;s\U-0131;m"> +<!ENTITY Preface "\U-00D6;ns\U-00F6;z"> +<!ENTITY preface "\U-00D6;ns\U-00F6;z"> +<!ENTITY Procedure "Y\U-00F6;nerge"> +<!ENTITY procedure "Y\U-00F6;nerge"> +<!ENTITY ProductionSet "Prod\U-00FC;ksiyon"> +<!ENTITY PubDate "Yay\U-0131;mlanma Tarihi"> +<!ENTITY pubdate "Yay\U-0131;mlanma Tarihi"> +<!ENTITY Published "Yay\U-0131;mlanma"> +<!ENTITY published "Yay\U-0131;mlanma"> +<!ENTITY Qandadiv "S ve C"> +<!ENTITY qandadiv "S ve C"> +<!ENTITY Question "Soru:"> +<!ENTITY question "Soru:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Referans"> +<!ENTITY reference "Referans"> +<!ENTITY RefName "Referans Ad\U-0131;"> +<!ENTITY refname "Referans Ad\U-0131;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Synopsis"> +<!ENTITY refsynopsisdiv "Synopsis"> +<!ENTITY RevHistory "Bask\U-0131; Tarih\U-00E7;esi"> +<!ENTITY revhistory "Bask\U-0131; Tarih\U-00E7;esi"> +<!ENTITY revision "Bask\U-0131;"> +<!ENTITY Revision "Bask\U-0131;"> +<!ENTITY sect1 "K\U-0131;s\U-0131;m"> +<!ENTITY sect2 "K\U-0131;s\U-0131;m"> +<!ENTITY sect3 "K\U-0131;s\U-0131;m"> +<!ENTITY sect4 "K\U-0131;s\U-0131;m"> +<!ENTITY sect5 "K\U-0131;s\U-0131;m"> +<!ENTITY section "K\U-0131;s\U-0131;m"> +<!ENTITY Section "K\U-0131;s\U-0131;m"> +<!ENTITY see "Bkz."> +<!ENTITY See "Bkz."> +<!ENTITY seealso "Bkz."> +<!ENTITY Seealso "Bak\U-0131;n\U-0131;z"> +<!ENTITY SeeAlso "Bak\U-0131;n\U-0131;z"> +<!ENTITY set "Tak\U-0131;m"> +<!ENTITY Set "Tak\U-0131;m"> +<!ENTITY setindex "Tak\U-0131;m Dizini"> +<!ENTITY SetIndex "Tak\U-0131;m Dizini"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar ""> +<!ENTITY step "ad\U-0131;m"> +<!ENTITY Step "Ad\U-0131;m"> +<!ENTITY Table "Tablo"> +<!ENTITY table "Tablo"> +<!ENTITY tip "\U-0130;pucu"> +<!ENTITY TIP "\U-0130;PUCU"> +<!ENTITY Tip "\U-0130;pucu"> +<!ENTITY Warning "Uyar\U-0131;"> +<!ENTITY warning "Uyar\U-0131;"> +<!ENTITY WARNING "UYARI"> +<!ENTITY and "ve"> +<!ENTITY by ""> +<!ENTITY called ""> +<!ENTITY Edited "Yay\U-0131;na haz\U-0131;rlayan"> +<!ENTITY edited "yay\U-0131;na haz\U-0131;rlayan"> +<!ENTITY Editedby "Yay\U-0131;na haz\U-0131;rlayan"> +<!ENTITY editedby "yay\U-0131;na haz\U-0131;rlayan"> +<!ENTITY in ""> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "varolmayan eleman"> +<!ENTITY notes "Notlar"> +<!ENTITY Notes "Notlar"> +<!ENTITY Pgs "Sayfa"> +<!ENTITY pgs "Sayfa"> +<!ENTITY Revisedby "D\U-00FC;zeltmeler: "> +<!ENTITY revisedby "D\U-00FC;zeltmeler: "> +<!ENTITY TableNotes "Notlar"> +<!ENTITY tablenotes "Notlar"> +<!ENTITY the ""> +<!ENTITY TableofContents "\U-0130;\U-00E7;indekiler"> +<!ENTITY tableofcontents "\U-0130;\U-00E7;indekiler"> +<!ENTITY unexpectedelementname "Beklenmeyen eleman ad\U-0131;"> +<!ENTITY unsupported "desteklenmiyor"> +<!ENTITY xrefto ""> +<!ENTITY listofequations "Denklemler"> +<!ENTITY ListofEquations "Denklemler"> +<!ENTITY ListofExamples "\U-00D6;rnekler"> +<!ENTITY listofexamples "\U-00D6;rnekler"> +<!ENTITY ListofFigures "\U-015E;ekiller"> +<!ENTITY listoffigures "\U-015E;ekiller"> +<!ENTITY listoftables "Tablolar"> +<!ENTITY ListofTables "Tablolar"> +<!ENTITY ListofProcedures "Y\U-00F6;nergeler"> +<!ENTITY listofprocedures "Y\U-00F6;nergeler"> +<!ENTITY ListofUnknown "Bilinmeyenler"> +<!ENTITY listofunknown "Bilinmeyenler"> +<!ENTITY nav-home "Ba\U-015F;lang\U-0131;\U-00E7;"> +<!ENTITY nav-next "Sonraki"> +<!ENTITY nav-next-sibling "Sonraki B\U-00F6;l\U-00FC;m"> +<!ENTITY nav-prev "\U-00D6;nceki"> +<!ENTITY nav-prev-sibling "\U-00D6;nceki B\U-00F6;l\U-00FC;m"> +<!ENTITY nav-up "Yukar\U-0131;"> +<!ENTITY nav-toc "\U-0130;\U-00E7;indekiler"> +<!ENTITY sectioncalled ""> +<!ENTITY Draft "Taslak"> +<!ENTITY above "\U-00FC;st\U-00FC;nde"> +<!ENTITY below "alt\U-0131;nda"> +<!ENTITY lowercase.alpha "abc\U-00E7;defg\U-011F;h\U-0131;ijklmno\U-00F6;prs\U-015F;tu\U-00FC;vyz"> +<!ENTITY uppercase.alpha "ABC\U-00C7;DEFG\U-011E;HI\U-0130;JKLMNO\U-00D6;PRS\U-015E;TU\U-00DC;VYZ"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "3"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1uk.dsl b/common/dbl1uk.dsl new file mode 100644 index 0000000..2c92f2c --- /dev/null +++ b/common/dbl1uk.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % uk.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//UK" + "dbl1uk.ent"> +%uk.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-uk"> +<style-specification-body> + +;; $Id: dbl1uk.dsl,v 1.1 2001/11/14 20:57:53 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (uk-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (uk-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-uk-start-quote% + "%t" + %gentext-uk-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-uk-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (uk-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (uk-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-uk-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (uk-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-uk-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (uk-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-uk-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-uk-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-uk-intra-label-sep) + (list)) + +(define (uk-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-uk-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-uk-intra-label-sep))) + (sep (assoc name (uk-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-uk-label-title-sep) + (list)) + +(define (uk-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-uk-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-uk-label-title-sep))) + (sep (assoc name (uk-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (uk-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (uk-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (uk-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (uk-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-uk$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (uk-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-uk-start-quote% (dingbat "ldquo")) + +(define %gentext-uk-end-quote% (dingbat "rdquo")) + +(define %gentext-uk-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-uk-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-uk-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-uk-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-uk-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-uk-page% "") + +(define %gentext-uk-and% "∧") + +(define %gentext-uk-listcomma% "&listcomma;") + +(define %gentext-uk-lastlistcomma% "&lastlistcomma;") + +(define %gentext-uk-bibl-pages% "&Pgs;") + +(define %gentext-uk-endnotes% "&Notes;") + +(define %gentext-uk-table-endnotes% "&TableNotes;:") + +(define %gentext-uk-index-see% "&See;") + +(define %gentext-uk-index-seealso% "&SeeAlso;") + + +(define (gentext-uk-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-uk-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-uk-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-uk-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-uk-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-uk-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1uk.ent b/common/dbl1uk.ent new file mode 100644 index 0000000..330357e --- /dev/null +++ b/common/dbl1uk.ent @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-0410;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0456;\U-044F;"> +<!ENTITY abstract "\U-0410;\U-043D;\U-043E;\U-0442;\U-0430;\U-0446;\U-0456;\U-044F;"> +<!ENTITY Answer "\U-0412;:"> +<!ENTITY answer "\U-0432;:"> +<!ENTITY Appendix "\U-0414;\U-043E;\U-0434;\U-0430;\U-0442;\U-043E;\U-043A;"> +<!ENTITY appendix "\U-0434;\U-043E;\U-0434;\U-0430;\U-0442;\U-043E;\U-043A;"> +<!ENTITY Appendix.abr "\U-0414;\U-043E;\U-0434;."> +<!ENTITY appendix.abr "\U-0434;\U-043E;\U-0434;."> +<!ENTITY Article "\U-0421;\U-0442;\U-0430;\U-0442;\U-0442;\U-044F;"> +<!ENTITY article "\U-0441;\U-0442;\U-0430;\U-0442;\U-0442;\U-044F;"> +<!ENTITY Audience "\U-0410;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0456;\U-044F;"> +<!ENTITY audience "\U-0410;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0456;\U-044F;"> +<!ENTITY Bibliography "\U-041B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY bibliography "\U-043B;\U-0438;\U-0442;\U-0435;\U-0440;\U-0430;\U-0442;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Book "\U-041A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY book "\U-043A;\U-043D;\U-0438;\U-0433;\U-0430;"> +<!ENTITY CAUTION "\U-0417;\U-0410;\U-0421;\U-0422;\U-0415;\U-0420;\U-0415;\U-0416;\U-0415;\U-041D;\U-041D;\U-042F;"> +<!ENTITY Caution "\U-0417;\U-0430;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY caution "\U-0437;\U-0430;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY Chapter "\U-0420;\U-043E;\U-0437;\U-0434;\U-0456;\U-043B;"> +<!ENTITY chapter "\U-0440;\U-043E;\U-0437;\U-0434;\U-0456;\U-043B;"> +<!ENTITY Chapter.abr "\U-0420;\U-043E;\U-0437;\U-0434;."> +<!ENTITY chapter.abr "\U-0440;\U-043E;\U-0437;\U-0434;."> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "\U-0410;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-044C;\U-043A;\U-0435; \U-043F;\U-0440;\U-0430;\U-0432;\U-043E;"> +<!ENTITY copyright "\U-0430;\U-0432;\U-0442;\U-043E;\U-0440;\U-0441;\U-044C;\U-043A;\U-0435; \U-043F;\U-0440;\U-0430;\U-0432;\U-043E;"> +<!ENTITY Dedication "\U-041F;\U-0440;\U-0438;\U-0441;\U-0432;\U-044F;\U-0447;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY dedication "\U-043F;\U-0440;\U-0438;\U-0441;\U-0432;\U-044F;\U-0447;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY Edition "\U-0412;\U-0438;\U-0434;\U-0430;\U-043D;\U-043D;\U-044F;"> +<!ENTITY edition "\U-0432;\U-0438;\U-0434;\U-0430;\U-043D;\U-043D;\U-044F;"> +<!ENTITY Equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY equation "\U-0424;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;\U-0430;"> +<!ENTITY Equation.abr "\U-0424;."> +<!ENTITY equation.abr "\U-0424;."> +<!ENTITY Example "\U-041F;\U-0440;\U-0438;\U-043A;\U-043B;\U-0430;\U-0434;"> +<!ENTITY example "\U-043F;\U-0440;\U-0438;\U-043A;\U-043B;\U-0430;\U-0434;"> +<!ENTITY Example.abr "\U-041F;\U-0440;\U-0438;\U-043A;\U-043B;."> +<!ENTITY example.abr "\U-043F;\U-0440;\U-0438;\U-043A;\U-043B;."> +<!ENTITY Figure "\U-0420;\U-0438;\U-0441;\U-0443;\U-043D;\U-043E;\U-043A;"> +<!ENTITY figure "\U-0420;\U-0438;\U-0441;\U-0443;\U-043D;\U-043E;\U-043A;"> +<!ENTITY Figure.abr "\U-0420;\U-0438;\U-0441;."> +<!ENTITY figure.abr "\U-0420;\U-0438;\U-0441;."> +<!ENTITY Glossary "\U-0413;\U-043B;\U-043E;\U-0441;\U-0430;\U-0440;\U-0456;\U-0439;"> +<!ENTITY glossary "\U-0433;\U-043B;\U-043E;\U-0441;\U-0430;\U-0440;\U-0456;\U-0439;"> +<!ENTITY GlossSee "\U-0414;\U-0438;\U-0432;."> +<!ENTITY glosssee "\U-0434;\U-0438;\U-0432;."> +<!ENTITY GlossSeeAlso "\U-0414;\U-0438;\U-0432;. \U-0442;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY glossSeeAlso "\U-0434;\U-0438;\U-0432;. \U-0442;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY glossseealso "\U-0434;\U-0438;\U-0432;. \U-0442;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY IMPORTANT "\U-0412;\U-0410;\U-0416;\U-041B;\U-0418;\U-0412;\U-041E;"> +<!ENTITY Important "\U-0412;\U-0430;\U-0436;\U-043B;\U-0438;\U-0432;\U-043E;"> +<!ENTITY important "\U-0432;\U-0430;\U-0436;\U-043B;\U-0438;\U-0432;\U-043E;"> +<!ENTITY Index "\U-041F;\U-0440;\U-0435;\U-0434;\U-043C;\U-0435;\U-0442;\U-043D;\U-044B;\U-0439; \U-043F;\U-043E;\U-043A;\U-0430;\U-0436;chcy;\U-0438;\U-043A;"> +<!ENTITY index "\U-043F;\U-0440;\U-0435;\U-0434;\U-043C;\U-0435;\U-0442;\U-043D;\U-044B;\U-0439; \U-043F;\U-043E;\U-043A;\U-0430;\U-0436;chcy;\U-0438;\U-043A;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-041F;\U-0440;\U-0430;\U-0432;\U-043E;\U-0432;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0430;"> +<!ENTITY legalnotice "\U-043F;\U-0440;\U-0430;\U-0432;\U-043E;\U-0432;\U-0430; \U-043F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0430;"> +<!ENTITY Level "\U-0420;\U-0456;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY level "\U-0440;\U-0456;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY MsgAud "\U-0410;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0456;\U-044F;"> +<!ENTITY msgaud "\U-0430;\U-0443;\U-0434;\U-0438;\U-0442;\U-043E;\U-0440;\U-0456;\U-044F;"> +<!ENTITY MsgLevel "\U-0420;\U-0456;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY msglevel "\U-0440;\U-0456;\U-0432;\U-0435;\U-043D;\U-044C;"> +<!ENTITY MsgOrig "\U-0414;\U-0436;\U-0435;\U-0440;\U-0435;\U-043B;\U-043E;"> +<!ENTITY msgorig "\U-0434;\U-0436;\U-0435;\U-0440;\U-0435;\U-043B;\U-043E;"> +<!ENTITY Name "\U-0406;\U-043C;';\U-044F;"> +<!ENTITY name "\U-0456;\U-043C;';\U-044F;"> +<!ENTITY NOTE "\U-041F;\U-0420;\U-0418;\U-041C;\U-0406;\U-0422;\U-041A;\U-0410;"> +<!ENTITY Note "\U-041F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0430;"> +<!ENTITY note "\U-043F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0430;"> +<!ENTITY Origin "\U-0414;\U-0436;\U-0435;\U-0440;\U-0435;\U-043B;\U-043E;"> +<!ENTITY origin "\U-0434;\U-0436;\U-0435;\U-0440;\U-0435;\U-043B;\U-043E;"> +<!ENTITY Part "\U-0427;\U-0430;\U-0441;\U-0442;\U-0438;\U-043D;\U-0430;"> +<!ENTITY part "\U-0447;\U-0430;\U-0441;\U-0442;\U-0438;\U-043D;\U-0430;"> +<!ENTITY Part.abr "\U-0427;."> +<!ENTITY part.abr "\U-0427;."> +<!ENTITY Preface "\U-041F;\U-0435;\U-0440;\U-0435;\U-0434;\U-043C;\U-043E;\U-0432;\U-0430;"> +<!ENTITY preface "\U-043F;\U-0435;\U-0440;\U-0435;\U-0434;\U-043C;\U-043E;\U-0432;\U-0430;"> +<!ENTITY Procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY procedure "\U-041F;\U-0440;\U-043E;\U-0446;\U-0435;\U-0434;\U-0443;\U-0440;\U-0430;"> +<!ENTITY Procedure.abr "\U-041F;\U-0440;\U-043E;\U-0446;."> +<!ENTITY procedure.abr "\U-041F;\U-0440;\U-043E;\U-0446;."> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "\U-041E;\U-043F;\U-0443;\U-0431;\U-043B;\U-0456;\U-043A;\U-043E;\U-0432;\U-0430;\U-043D;\U-043E;"> +<!ENTITY published "\U-043E;\U-043F;\U-0443;\U-0431;\U-043B;\U-0456;\U-043A;\U-043E;\U-0432;\U-0430;\U-043D;\U-043E;"> +<!ENTITY Question "\U-041F;"> +<!ENTITY question "\U-043F;"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-041F;\U-043E;\U-0441;\U-0438;\U-043B;\U-0430;\U-043D;\U-043D;\U-044F;"> +<!ENTITY reference "\U-043F;\U-043E;\U-0441;\U-0438;\U-043B;\U-0430;\U-043D;\U-043D;\U-044F;"> +<!ENTITY RefName "Name"> +<!ENTITY refname "Name"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-041A;\U-043E;\U-0440;\U-043E;\U-0442;\U-043A;\U-0438;\U-0439; \U-043E;\U-0433;\U-043B;\U-044F;\U-0434;"> +<!ENTITY refsynopsisdiv "\U-043A;\U-043E;\U-0440;\U-043E;\U-0442;\U-043A;\U-0438;\U-0439; \U-043E;\U-0433;\U-043B;\U-044F;\U-0434;"> +<!ENTITY RevHistory "\U-041E;\U-043F;\U-0438;\U-0441; zcy;\U-043C;\U-0456;\U-043D;"> +<!ENTITY revhistory "\U-043E;\U-043F;\U-0438;\U-0441; zcy;\U-043C;\U-0456;\U-043D;"> +<!ENTITY Revision "\U-041F;\U-0435;\U-0440;\U-0435;\U-0433;\U-043B;\U-044F;\U-0434;"> +<!ENTITY revision "\U-043F;\U-0435;\U-0440;\U-0435;\U-0433;\U-043B;\U-044F;\U-0434;"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "\U-041F;\U-0430;\U-0440;\U-0430;\U-0433;\U-0440;\U-0430;\U-0444;"> +<!ENTITY section "\U-043F;\U-0430;\U-0440;\U-0430;\U-0433;\U-0440;\U-0430;\U-0444;"> +<!ENTITY Section.abr "\U-041F;\U-0430;\U-0440;."> +<!ENTITY section.abr "\U-043F;\U-0430;\U-0440;."> +<!ENTITY See "\U-0414;\U-0438;\U-0432;."> +<!ENTITY see "\U-0434;\U-0438;\U-0432;."> +<!ENTITY SeeAlso "\U-0414;\U-0438;\U-0432;. tcy;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY Seealso "\U-0414;\U-0438;\U-0432;. tcy;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY seealso "\U-0441;\U-0438;\U-0432;. tcy;\U-0430;\U-043A;\U-043E;\U-0436;"> +<!ENTITY Set "\U-0412;\U-0438;\U-0431;\U-0456;\U-0440;\U-043A;\U-0430;"> +<!ENTITY set "\U-0432;\U-0438;\U-0431;\U-0456;\U-0440;\U-043A;\U-0430;"> +<!ENTITY SetIndex "\U-0418;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-0432;\U-0438;\U-0431;\U-0456;\U-0440;\U-043A;\U-0438;"> +<!ENTITY setindex "\U-0438;\U-043D;\U-0434;\U-0435;\U-043A;\U-0441; \U-0432;\U-0438;\U-0431;\U-0456;\U-0440;\U-043A;\U-0438;"> +<!ENTITY Sidebar "\U-0412;\U-044B;\U-0434;\U-0456;\U-043B;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY sidebar "\U-0432;\U-044B;\U-0434;\U-0456;\U-043B;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY Step "\U-041A;\U-0440;\U-043E;\U-043A;"> +<!ENTITY step "\U-043A;\U-0440;\U-043E;\U-043A;"> +<!ENTITY Table "\U-0422;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-044F;"> +<!ENTITY table "\U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-044F;"> +<!ENTITY Table.abr "\U-0422;\U-0430;\U-0431;\U-043B;."> +<!ENTITY table.abr "\U-0442;\U-0430;\U-0431;\U-043B;."> +<!ENTITY TIP "\U-041F;\U-0406;\U-0414;\U-041A;\U-0410;\U-0417;\U-041A;\U-0410;"> +<!ENTITY Tip "\U-041F;\U-0456;\U-0434;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY tip "\U-043F;\U-0456;\U-0434;\U-043A;\U-0430;\U-0437;\U-043A;\U-0430;"> +<!ENTITY WARNING "\U-0417;\U-0410;\U-0421;\U-0422;\U-0415;\U-0420;\U-0415;\U-0416;\U-0415;\U-041D;\U-041D;\U-042F;"> +<!ENTITY Warning "\U-0417;\U-0430;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY warning "\U-0437;\U-0430;\U-0441;\U-0442;\U-0435;\U-0440;\U-0435;\U-0436;\U-0435;\U-043D;\U-043D;\U-044F;"> +<!ENTITY and ""> +<!ENTITY by ""> +<!ENTITY called ""> +<!ENTITY edited "\U-043F;\U-0438;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0456;\U-0454;\U-044E;"> +<!ENTITY Edited "\U-041F;\U-0438;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0456;\U-0454;\U-044E;"> +<!ENTITY Editedby "\U-041F;\U-0438;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0456;\U-0454;\U-044E;"> +<!ENTITY editedby "\U-043F;\U-0438;\U-0434; \U-0440;\U-0435;\U-0434;\U-0430;\U-043A;\U-0446;\U-0456;\U-0454;\U-044E;"> +<!ENTITY in "\U-0432;"> +<!ENTITY TableofContents "\U-0417;\U-043C;\U-0456;\U-0441;\U-0442;"> +<!ENTITY tableofcontents "\U-0437;\U-043C;\U-0456;\U-0441;\U-0442;"> +<!ENTITY lastlistcomma "."> +<!ENTITY listcomma ","> +<!ENTITY Notes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0438;"> +<!ENTITY notes "\U-043F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0438;"> +<!ENTITY TableNotes "\U-041F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0438;"> +<!ENTITY tablenotes "\U-043F;\U-0440;\U-0438;\U-043C;\U-0456;\U-0442;\U-043A;\U-0438;"> +<!ENTITY nonexistantelement "non-existant element"> +<!ENTITY pgs "\U-0441;\U-0442;\U-043E;\U-0440;."> +<!ENTITY Pgs "\U-0421;\U-0442;\U-043E;\U-0440;."> +<!ENTITY Revisedby "\U-041A;\U-043E;\U-0440;\U-0435;\U-043A;\U-0442;\U-0443;\U-0440;\U-0430;:;"> +<!ENTITY revisedby "\U-043A;\U-043E;\U-0440;\U-0435;\U-043A;\U-0442;\U-0443;\U-0440;\U-0430;:;"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "unexpected element name"> +<!ENTITY unsupported "unsupported"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;"> +<!ENTITY ListofEquations "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0444;\U-043E;\U-0440;\U-043C;\U-0443;\U-043B;"> +<!ENTITY ListofExamples "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-043F;\U-0440;\U-0438;\U-043A;\U-043B;\U-0430;\U-0434;\U-0456;\U-0432;"> +<!ENTITY listofexamples "\U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-043F;\U-0440;\U-0438;\U-043A;\U-043B;\U-0430;\U-0434;\U-0456;\U-0432;"> +<!ENTITY ListofFigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0456;\U-043B;\U-044E;\U-0441;\U-0442;\U-0440;\U-0430;\U-0446;\U-0456;\U-0439;"> +<!ENTITY listoffigures "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0456;\U-043B;\U-044E;\U-0441;\U-0442;\U-0440;\U-0430;\U-0446;\U-0456;\U-0439;"> +<!ENTITY listoftables "\U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;\U-044C;"> +<!ENTITY ListofTables "\U-0421;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A; \U-0442;\U-0430;\U-0431;\U-043B;\U-0438;\U-0446;;\U-044C;"> +<!ENTITY ListofUnknown "\U-041D;\U-0435;\U-0432;\U-0438;\U-0437;\U-043D;\U-0430;\U-0447;\U-0435;\U-043D;\U-0438;\U-0439; \U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A;"> +<!ENTITY listofunknown "\U-043D;\U-0435;\U-0432;\U-0438;\U-0437;\U-043D;\U-0430;\U-0447;\U-0435;\U-043D;\U-0438;\U-0439; \U-0441;\U-043F;\U-0438;\U-0441;\U-043E;\U-043A;"> +<!ENTITY nav-next "\U-0434;\U-0430;\U-043B;\U-0456;"> +<!ENTITY nav-next-sibling "\U-0434;\U-0430;\U-043B;\U-0456; \U-043F;\U-043E; \U-0440;\U-0456;\U-0432;\U-043D;\U-044E;"> +<!ENTITY nav-prev "\U-043D;\U-0430;\U-0437;\U-0430;\U-0434;"> +<!ENTITY nav-prev-sibling "\U-043D;\U-0430;\U-0437;\U-0430;\U-0434; \U-043F;\U-043E; \U-0440;\U-0456;\U-0432;\U-043D;\U-044E;"> +<!ENTITY x-nav-next "\U-0434;\U-0430;\U-043B;\U-0456;"> +<!ENTITY nav-home "\U-041F;\U-043E;\U-0447;\U-0430;\U-0442;\U-043E;\U-043A;"> +<!ENTITY nav-up "\U-0414;\U-043E;\U-0433;\U-043E;\U-0440;\U-0438;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1xh.dsl b/common/dbl1xh.dsl new file mode 100644 index 0000000..7a77b66 --- /dev/null +++ b/common/dbl1xh.dsl @@ -0,0 +1,444 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % xh.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//XH" + "dbl1xh.ent"> +%xh.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-xh"> +<style-specification-body> + +;; $Id: dbl1xh.dsl,v 1.1 2001/11/14 20:57:53 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; + +(define (xh-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (xh-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-xh-start-quote% + "%t" + %gentext-xh-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "&Chapter; %n" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "&Part; %n") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "&Section; %n" + "the §ion; called %t")) + (list (normalize "sidebar") "the &sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-xh-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (xh-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (xh-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-xh-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (xh-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-xh-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (xh-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-xh-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-xh-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-xh-intra-label-sep) + (list)) + +(define (xh-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-xh-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-xh-intra-label-sep))) + (sep (assoc name (xh-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-xh-label-title-sep) + (list)) + +(define (xh-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-xh-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-xh-label-title-sep))) + (sep (assoc name (xh-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (xh-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (xh-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (xh-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (xh-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-xh$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (xh-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-xh-start-quote% (dingbat "ldquo")) + +(define %gentext-xh-end-quote% (dingbat "rdquo")) + +(define %gentext-xh-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-xh-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-xh-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-xh-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-xh-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-xh-page% "") + +(define %gentext-xh-and% "∧") + +(define %gentext-xh-listcomma% "&listcomma;") + +(define %gentext-xh-lastlistcomma% "&lastlistcomma;") + +(define %gentext-xh-bibl-pages% "&Pgs;") + +(define %gentext-xh-endnotes% "&Notes;") + +(define %gentext-xh-table-endnotes% "&TableNotes;:") + +(define %gentext-xh-index-see% "&See;") + +(define %gentext-xh-index-seealso% "&SeeAlso;") + + +(define (gentext-xh-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-xh-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-xh-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-xh-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-xh-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-xh-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1xh.ent b/common/dbl1xh.ent new file mode 100644 index 0000000..e26c10c --- /dev/null +++ b/common/dbl1xh.ent @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "Isiqalo"> +<!ENTITY abstract "Isiqalo"> +<!ENTITY Answer "I:"> +<!ENTITY answer "I:"> +<!ENTITY Appendix "Isivalo"> +<!ENTITY appendix "isivalo"> +<!ENTITY Article "Umba"> +<!ENTITY article "Umba"> +<!ENTITY Bibliography "Ezobunzululwazi"> +<!ENTITY bibliography "Ezobunzululwazi"> +<!ENTITY Book "Incwadi"> +<!ENTITY book "Incwadi"> +<!ENTITY CAUTION "ISILUMKISO"> +<!ENTITY Caution "Isilumkiso"> +<!ENTITY caution "Isilumkiso"> +<!ENTITY Chapter "Isiqendu"> +<!ENTITY chapter "isiqendu"> +<!ENTITY Colophon "Ikolophon"> +<!ENTITY colophon "Ikolophon"> +<!ENTITY Copyright "Ushicilelo olusemthethweni"> +<!ENTITY copyright "Ushicilelo olusemthethweni"> +<!ENTITY Dedication "Ulwaziso"> +<!ENTITY dedication "Ulwaziso"> +<!ENTITY Edition "Uhlelo"> +<!ENTITY edition "Uhlelo"> +<!ENTITY Equation "Ulinganiselo"> +<!ENTITY equation "Ulinganiselo"> +<!ENTITY Example "Umzekelo"> +<!ENTITY example "Umzekelo"> +<!ENTITY Figure "Ulungu"> +<!ENTITY figure "Ulungu"> +<!ENTITY Glossary "Inkcazelo yamagama"> +<!ENTITY glossary "Inkcazelo yamagama"> +<!ENTITY GlossSee "Bona"> +<!ENTITY glosssee "Bona"> +<!ENTITY GlossSeeAlso "Bona Kwakhona"> +<!ENTITY glossseealso "Bona Kwakhona"> +<!ENTITY IMPORTANT "IBALULEKILE"> +<!ENTITY important "Ibalulekile"> +<!ENTITY Important "Ibalulekile"> +<!ENTITY Index "Isalathiso"> +<!ENTITY index "Isalathiso"> +<!ENTITY ISBN "iISBN"> +<!ENTITY isbn "iISBN"> +<!ENTITY LegalNotice "Isaziso Esesimthethweni"> +<!ENTITY legalnotice "Isaziso Esesimthethweni"> +<!ENTITY MsgAud "Ababhali"> +<!ENTITY msgaud "Ababhali"> +<!ENTITY MsgLevel "Umphakamo"> +<!ENTITY msglevel "Umphakamo"> +<!ENTITY MsgOrig "Uqobo"> +<!ENTITY msgorig "Uqobo"> +<!ENTITY NOTE "QAPHELA"> +<!ENTITY Note "Qaphela"> +<!ENTITY note "Qaphela"> +<!ENTITY Part "Inxenye"> +<!ENTITY part "Inxenye"> +<!ENTITY Preface "Isihloko"> +<!ENTITY preface "Isihloko"> +<!ENTITY Procedure "Inkqubo"> +<!ENTITY procedure "Inkqubo"> +<!ENTITY ProductionSet "Imveliso"> +<!ENTITY Published "Ipapashwe"> +<!ENTITY published "Ipapashwe"> +<!ENTITY Question "U:"> +<!ENTITY question "U:"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "Uthelekiso"> +<!ENTITY reference "Uthelekiso"> +<!ENTITY RefName "Igama lothelekiso"> +<!ENTITY refname "Igama lothelekiso"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "Isinopsisi"> +<!ENTITY refsynopsisdiv "Isinopsisi"> +<!ENTITY RevHistory "Imbali yophindo"> +<!ENTITY revhistory "Imbali yophindo"> +<!ENTITY revision "Iphindo"> +<!ENTITY Revision "Iphindo"> +<!ENTITY sect1 "Icandelo"> +<!ENTITY sect2 "Icandelo"> +<!ENTITY sect3 "Icandelo"> +<!ENTITY sect4 "Icandelo"> +<!ENTITY sect5 "Icandelo"> +<!ENTITY section "Icandelo"> +<!ENTITY Section "Icandelo"> +<!ENTITY See "Bona"> +<!ENTITY see "Bona"> +<!ENTITY SeeAlso "Bona Kwakhona"> +<!ENTITY seealso "Bona Kwakhona"> +<!ENTITY Seealso "Bona Kwakhona"> +<!ENTITY set "Cwangcisa"> +<!ENTITY Set "Cwangcisa"> +<!ENTITY setindex "Cwangcisa Isalathiso"> +<!ENTITY SetIndex "Cwangcisa Isalathiso"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "ibar esecaleni"> +<!ENTITY step "inqwanqwa"> +<!ENTITY Step "Inqwanqwa"> +<!ENTITY Table "Indlela Yokwenza Imigca"> +<!ENTITY table "Indlela Yokwenza Imigca"> +<!ENTITY tip "Incam"> +<!ENTITY TIP "INCAM"> +<!ENTITY Tip "Incam"> +<!ENTITY Warning "Isilumkiso"> +<!ENTITY warning "Isilumkiso"> +<!ENTITY WARNING "ISILUMKISO"> +<!ENTITY and "no"> +<!ENTITY by "by"> +<!ENTITY Edited "Ihleliwe"> +<!ENTITY edited "Ihleliwe"> +<!ENTITY Editedby "Ihlelwe"> +<!ENTITY editedby "Ihlelwe"> +<!ENTITY in "in"> +<!ENTITY lastlistcomma ", "> +<!ENTITY listcomma ", "> +<!ENTITY nonexistantelement "isiqalelo esingekhayo"> +<!ENTITY notes "Iziqaphelo"> +<!ENTITY Notes "Iziqaphelo"> +<!ENTITY Pgs "Amaphepha"> +<!ENTITY pgs "Amaphepha"> +<!ENTITY Revisedby "Iphindwe ngu: "> +<!ENTITY revisedby "Iphindwe ngu:"> +<!ENTITY TableNotes "Iziqaphelo"> +<!ENTITY tablenotes "Iziqaphelo"> +<!ENTITY TableofContents "Imigca Yemixholo"> +<!ENTITY tableofcontents "Imigca Yemixholo"> +<!ENTITY unexpectedelementname "Igama lesiqalelo esingalindelwanga"> +<!ENTITY unsupported "ayixhaswanga"> +<!ENTITY xrefto "thelekiso ku"> +<!ENTITY listofequations "Uluhlu Lemilinganiselo"> +<!ENTITY ListofEquations "Uluhlu Lemilinganiselo"> +<!ENTITY ListofExamples "Uluhlu Lemizekelo"> +<!ENTITY listofexamples "Uluhlu Lemizekelo"> +<!ENTITY ListofFigures "Uluhlu Lamalungu"> +<!ENTITY listoffigures "Uluhlu Lamalungu"> +<!ENTITY listoftables "Uluhlu Lendlela Yokwenza Imigca"> +<!ENTITY ListofTables "Uluhlu Lendlela Yokwenza Imigca"> +<!ENTITY ListofUnknown "Uluhlu Lokungaziwayo"> +<!ENTITY listofunknown "Uluhlu Lokungaziwayo"> +<!ENTITY nav-home "Ikhaya"> +<!ENTITY nav-next "Elandelayo"> +<!ENTITY nav-next-sibling "Yisa Phambili"> +<!ENTITY nav-prev "Edlulileyo"> +<!ENTITY nav-prev-sibling "Yisa Emva"> +<!ENTITY nav-up "Phezulu"> +<!ENTITY sectioncalled "icandelo libizwa ngokuba"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> diff --git a/common/dbl1zhcn.dsl b/common/dbl1zhcn.dsl new file mode 100644 index 0000000..1c57574 --- /dev/null +++ b/common/dbl1zhcn.dsl @@ -0,0 +1,447 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % zhcn.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ZHCN" + "dbl1zhcn.ent"> +%zhcn.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-zhcn"> +<style-specification-body> + +;; $Id: dbl1zhcn.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Frederik Fouvry +;; + +(define (zhcn-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (zhcn-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-zhcn-start-quote% + "%t" + %gentext-zhcn-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "µÚ %n &Chapter;" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "µÚ %n &Part;") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-zhcn-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (zhcn-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (zhcn-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-zhcn-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (zhcn-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-zhcn-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (zhcn-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-zhcn-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-zhcn-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-zhcn-intra-label-sep) + (list)) + +(define (zhcn-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-zhcn-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-zhcn-intra-label-sep))) + (sep (assoc name (zhcn-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-zhcn-label-title-sep) + (list)) + +(define (zhcn-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-zhcn-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-zhcn-label-title-sep))) + (sep (assoc name (zhcn-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (zhcn-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (zhcn-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (zhcn-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (zhcn-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-zhcn$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (zhcn-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-zhcn-start-quote% (dingbat "ldquo")) + +(define %gentext-zhcn-end-quote% (dingbat "rdquo")) + +(define %gentext-zhcn-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-zhcn-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-zhcn-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-zhcn-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-zhcn-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-zhcn-page% "") + +(define %gentext-zhcn-and% "∧") + +(define %gentext-zhcn-listcomma% "&listcomma;") + +(define %gentext-zhcn-lastlistcomma% "&lastlistcomma;") + +(define %gentext-zhcn-bibl-pages% "&Pgs;") + +(define %gentext-zhcn-endnotes% "&Notes;") + +(define %gentext-zhcn-table-endnotes% "&TableNotes;:") + +(define %gentext-zhcn-index-see% "&See;") + +(define %gentext-zhcn-index-seealso% "&SeeAlso;") + + +(define (gentext-zhcn-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-zhcn-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-zhcn-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-zhcn-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-zhcn-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-zhcn-nav-home home) + (make sequence (literal "&nav-home;"))) + + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/common/dbl1zhcn.ent b/common/dbl1zhcn.ent new file mode 100644 index 0000000..c2742db --- /dev/null +++ b/common/dbl1zhcn.ent @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-6458;\U-8981;"> +<!ENTITY abstract "\U-6458;\U-8981;"> +<!ENTITY Answer "\U-7B54;\U-FF1A;"> +<!ENTITY answer "\U-7B54;\U-FF1A;"> +<!ENTITY Appendix "\U-9644;\U-5F55;"> +<!ENTITY appendix "\U-9644;\U-5F55;"> +<!ENTITY Article "\U-6587;\U-7AE0;"> +<!ENTITY article "\U-6587;\U-7AE0;"> +<!ENTITY Bibliography "\U-53C2;\U-8003;\U-4E66;\U-76EE;"> +<!ENTITY bibliography "\U-53C2;\U-8003;\U-4E66;\U-76EE;"> +<!ENTITY Book "\U-4E66;"> +<!ENTITY book "\U-4E66;"> +<!ENTITY CAUTION "\U-5C0F;\U-5FC3;"> +<!ENTITY Caution "\U-5C0F;\U-5FC3;"> +<!ENTITY caution "\U-5C0F;\U-5FC3;"> +<!ENTITY Chapter "\U-7AE0;"> +<!ENTITY chapter "\U-7AE0;"> +<!ENTITY Colophon "Colophon"> +<!ENTITY colophon "Colophon"> +<!ENTITY Copyright "\U-7248;\U-6743;"> +<!ENTITY copyright "\U-7248;\U-6743;"> +<!ENTITY Dedication "\U-9898;\U-8BCD;"> +<!ENTITY dedication "\U-9898;\U-8BCD;"> +<!ENTITY Edition "\U-7248;"> +<!ENTITY edition "\U-7248;"> +<!ENTITY Equation "\U-516C;\U-5F0F;"> +<!ENTITY equation "\U-516C;\U-5F0F;"> +<!ENTITY Example "\U-4F8B;"> +<!ENTITY example "\U-4F8B;"> +<!ENTITY Figure "\U-56FE;"> +<!ENTITY figure "\U-56FE;"> +<!ENTITY Glossary "\U-672F;\U-8BED;\U-8868;"> +<!ENTITY glossary "\U-672F;\U-8BED;\U-8868;"> +<!ENTITY GlossSee "\U-89C1;"> +<!ENTITY glosssee "\U-89C1;"> +<!ENTITY GlossSeeAlso "\U-53C2;\U-89C1;"> +<!ENTITY glossseealso "\U-53C2;\U-89C1;"> +<!ENTITY IMPORTANT "\U-91CD;\U-8981;"> +<!ENTITY important "\U-91CD;\U-8981;"> +<!ENTITY Important "\U-91CD;\U-8981;"> +<!ENTITY Index "\U-7D22;\U-5F15;"> +<!ENTITY index "\U-7D22;\U-5F15;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-6CD5;\U-5F8B;\U-901A;\U-544A;"> +<!ENTITY legalnotice "\U-6CD5;\U-5F8B;\U-901A;\U-544A;"> +<!ENTITY MsgAud "\U-53D7;\U-4F17;"> +<!ENTITY msgaud "\U-53D7;\U-4F17;"> +<!ENTITY MsgLevel "\U-7EA7;\U-522B;"> +<!ENTITY msglevel "\U-7EA7;\U-522B;"> +<!ENTITY MsgOrig "\U-51FA;\U-5904;"> +<!ENTITY msgorig "\U-51FA;\U-5904;"> +<!ENTITY NOTE "\U-6CE8;\U-610F;"> +<!ENTITY Note "\U-6CE8;\U-610F;"> +<!ENTITY note "\U-6CE8;\U-610F;"> +<!ENTITY Part "\U-90E8;\U-5206;"> +<!ENTITY part "\U-90E8;\U-5206;"> +<!ENTITY Preface "\U-524D;\U-8A00;"> +<!ENTITY preface "\U-524D;\U-8A00;"> +<!ENTITY Procedure "\U-8FC7;\U-7A0B;"> +<!ENTITY procedure "\U-8FC7;\U-7A0B;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY PubDate "\U-51FA;\U-7248;\U-65E5;\U-671F;"> +<!ENTITY pubdate "\U-51FA;\U-7248;\U-65E5;\U-671F;"> +<!ENTITY Published "\U-51FA;\U-7248;\U-65B9;"> +<!ENTITY published "\U-51FA;\U-7248;\U-65B9;"> +<!ENTITY Qandadiv "\U-8D28;\U-4FDD;"> +<!ENTITY qandadiv "\U-8D28;\U-4FDD;"> +<!ENTITY Question "\U-95EE;\U-FF1A;"> +<!ENTITY question "\U-95EE;\U-FF1A;"> +<!ENTITY RefEntry ""> +<!ENTITY refentry ""> +<!ENTITY Reference "\U-53C2;\U-8003;"> +<!ENTITY reference "\U-53C2;\U-8003;"> +<!ENTITY RefName "\U-540D;\U-79F0;"> +<!ENTITY refname "\U-540D;\U-79F0;"> +<!ENTITY RefSection ""> +<!ENTITY refsection ""> +<!ENTITY RefSynopsisDiv "\U-5927;\U-7EB2;"> +<!ENTITY refsynopsisdiv "\U-5927;\U-7EB2;"> +<!ENTITY RevHistory "\U-4FEE;\U-8BA2;\U-5386;\U-53F2;"> +<!ENTITY revhistory "\U-4FEE;\U-8BA2;\U-5386;\U-53F2;"> +<!ENTITY revision "\U-4FEE;\U-8BA2;"> +<!ENTITY Revision "\U-4FEE;\U-8BA2;"> +<!ENTITY sect1 "\U-8282;"> +<!ENTITY sect2 "\U-8282;"> +<!ENTITY sect3 "\U-8282;"> +<!ENTITY sect4 "\U-8282;"> +<!ENTITY sect5 "\U-8282;"> +<!ENTITY section "\U-8282;"> +<!ENTITY Section "\U-8282;"> +<!ENTITY see "\U-89C1;"> +<!ENTITY See "\U-89C1;"> +<!ENTITY seealso "\U-53C2;\U-89C1;"> +<!ENTITY Seealso "\U-53C2;\U-89C1;"> +<!ENTITY SeeAlso "\U-53C2;\U-89C1;"> +<!ENTITY set "Set"> +<!ENTITY Set "Set"> +<!ENTITY setindex "Set Index"> +<!ENTITY SetIndex "Set Index"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar "sidebar"> +<!ENTITY step "\U-6B65;\U-9AA4;"> +<!ENTITY Step "\U-6B65;\U-9AA4;"> +<!ENTITY Table "\U-8868;"> +<!ENTITY table "\U-8868;"> +<!ENTITY tip "\U-63D0;\U-793A;"> +<!ENTITY TIP "\U-63D0;\U-793A;"> +<!ENTITY Tip "\U-63D0;\U-793A;"> +<!ENTITY Warning "\U-8B66;\U-544A;"> +<!ENTITY warning "\U-8B66;\U-544A;"> +<!ENTITY WARNING "\U-8B66;\U-544A;"> +<!ENTITY and "\U-548C;"> +<!ENTITY by "\U-7531;"> +<!ENTITY called "\U-79F0;\U-4E3A;"> +<!ENTITY Edited "\U-7F16;\U-8F91;\U-65F6;\U-95F4;"> +<!ENTITY edited "\U-7F16;\U-8F91;\U-65F6;\U-95F4;"> +<!ENTITY Editedby "\U-7F16;\U-8F91;\U-8005;"> +<!ENTITY editedby "\U-7F16;\U-8F91;\U-8005;"> +<!ENTITY in "\U-4E8E;"> +<!ENTITY lastlistcomma ""> +<!ENTITY listcomma "\U-3001;"> +<!ENTITY nonexistantelement "\U-4E0D;\U-5B58;\U-5728;\U-7684;\U-5143;\U-7D20;"> +<!ENTITY notes "\U-5907;\U-6CE8;"> +<!ENTITY Notes "\U-5907;\U-6CE8;"> +<!ENTITY Pgs "\U-9875;"> +<!ENTITY pgs "\U-9875;"> +<!ENTITY Revisedby "\U-4FEE;\U-8BA2;\U-8005;\U-FF1A;"> +<!ENTITY revisedby "\U-4FEE;\U-8BA2;\U-8005;\U-FF1A;"> +<!ENTITY TableNotes "\U-8868;\U-6CE8;"> +<!ENTITY tablenotes "\U-8868;\U-6CE8;"> +<!ENTITY TableofContents "\U-76EE;\U-5F55;"> +<!ENTITY tableofcontents "\U-76EE;\U-5F55;"> +<!ENTITY the ""> +<!ENTITY unexpectedelementname "\U-672A;\U-9884;\U-671F;\U-7684;\U-540D;\U-79F0;"> +<!ENTITY unsupported "\U-4E0D;\U-652F;\U-6301;"> +<!ENTITY xrefto "xref to"> +<!ENTITY listofequations "\U-516C;\U-5F0F;\U-6E05;\U-5355;"> +<!ENTITY ListofEquations "\U-516C;\U-5F0F;\U-6E05;\U-5355;"> +<!ENTITY ListofExamples "\U-8303;\U-4F8B;\U-6E05;\U-5355;"> +<!ENTITY listofexamples "\U-8303;\U-4F8B;\U-6E05;\U-5355;"> +<!ENTITY ListofFigures "\U-63D2;\U-56FE;\U-6E05;\U-5355;"> +<!ENTITY listoffigures "\U-63D2;\U-56FE;\U-6E05;\U-5355;"> +<!ENTITY ListofProcedures "\U-8FC7;\U-7A0B;\U-6E05;\U-5355;"> +<!ENTITY listofprocedures "\U-8FC7;\U-7A0B;\U-6E05;\U-5355;"> +<!ENTITY listoftables "\U-8868;\U-683C;\U-6E05;\U-5355;"> +<!ENTITY ListofTables "\U-8868;\U-683C;\U-6E05;\U-5355;"> +<!ENTITY ListofUnknown "\U-672A;\U-77E5;\U-6E05;\U-5355;"> +<!ENTITY listofunknown "\U-672A;\U-77E5;\U-6E05;\U-5355;"> +<!ENTITY nav-home "\U-8D77;\U-59CB;\U-9875;"> +<!ENTITY nav-next "\U-4E0B;\U-4E00;\U-9875;"> +<!ENTITY nav-next-sibling "\U-5FEB;\U-8FDB;"> +<!ENTITY nav-prev "\U-4E0A;\U-4E00;\U-9875;"> +<!ENTITY nav-prev-sibling "\U-5FEB;\U-9000;"> +<!ENTITY nav-up "\U-4E0A;\U-4E00;\U-7EA7;"> +<!ENTITY nav-toc "\U-76EE;\U-5F55;"> +<!ENTITY Draft "\U-8349;\U-7A3F;"> +<!ENTITY above "above"> +<!ENTITY below "below"> +<!ENTITY sectioncalled "\U-4E00;\U-8282;"> +<!ENTITY lowercase.alpha "abcdefghijklmnopqrstuvwxyz"> +<!ENTITY uppercase.alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> +<!ENTITY hyphenation-character "-"> +<!ENTITY hyphenation-push-character-count "2"> +<!ENTITY hyphenation-remain-character-count "2"> diff --git a/common/dbl1zhtw.dsl b/common/dbl1zhtw.dsl new file mode 100644 index 0000000..1b49250 --- /dev/null +++ b/common/dbl1zhtw.dsl @@ -0,0 +1,447 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % zhtw.words + PUBLIC "-//Norman Walsh//ENTITIES DocBook Stylesheet Localization//ZHTW" + "dbl1zhtw.ent"> +%zhtw.words; +]> + +<style-sheet> +<style-specification id="docbook-l10n-zhtw"> +<style-specification-body> + +;; $Id: dbl1zhtw.dsl,v 1.2 2001/06/20 12:50:47 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ----------------------------- Localization ----------------------------- + +;; If you create a new version of this file, please send it to +;; Norman Walsh, ndw@nwalsh.com + +;; The generated text for cross references to elements. See dblink.dsl +;; for a discussion of how substitution is performed on the %x +;; keywords. +;; +;; Contributors: +;; Frederik Fouvry +;; + +(define (zhtw-author-string #!optional (author (current-node))) + ;; Return a formatted string representation of the contents of: + ;; AUTHOR: + ;; Handles Honorific, FirstName, SurName, and Lineage. + ;; If %author-othername-in-middle% is #t, also OtherName + ;; Handles *only* the first of each. + ;; Format is "Honorific. FirstName [OtherName] SurName, Lineage" + ;; CORPAUTHOR: + ;; returns (data corpauthor) + (let* ((h_nl (select-elements (descendants author) (normalize "honorific"))) + (f_nl (select-elements (descendants author) (normalize "firstname"))) + (o_nl (select-elements (descendants author) (normalize "othername"))) + (s_nl (select-elements (descendants author) (normalize "surname"))) + (l_nl (select-elements (descendants author) (normalize "lineage"))) + (has_h (not (node-list-empty? h_nl))) + (has_f (not (node-list-empty? f_nl))) + (has_o (and %author-othername-in-middle% + (not (node-list-empty? o_nl)))) + (has_s (not (node-list-empty? s_nl))) + (has_l (not (node-list-empty? l_nl)))) + (if (or (equal? (gi author) (normalize "author")) + (equal? (gi author) (normalize "editor")) + (equal? (gi author) (normalize "othercredit"))) + (string-append + (if has_h (string-append (data-of (node-list-first h_nl)) + %honorific-punctuation%) "") + (if has_f (string-append + (if has_h " " "") + (data-of (node-list-first f_nl))) "") + (if has_o (string-append + (if (or has_h has_f) " " "") + (data-of (node-list-first o_nl))) "") + (if has_s (string-append + (if (or has_h has_f has_o) " " "") + (data-of (node-list-first s_nl))) "") + (if has_l (string-append ", " (data-of (node-list-first l_nl))) "")) + (data-of author)))) + +(define (zhtw-xref-strings) + (list (list (normalize "appendix") (if %chapter-autolabel% + "&Appendix; %n" + "the &appendix; called %t")) + (list (normalize "article") (string-append %gentext-zhtw-start-quote% + "%t" + %gentext-zhtw-end-quote%)) + (list (normalize "bibliography") "%t") + (list (normalize "book") "%t") + (list (normalize "chapter") (if %chapter-autolabel% + "µÚ %n &Chapter;" + "the &chapter; called %t")) + (list (normalize "equation") "&Equation; %n") + (list (normalize "example") "&Example; %n") + (list (normalize "figure") "&Figure; %n") + (list (normalize "glossary") "%t") + (list (normalize "index") "%t") + (list (normalize "listitem") "%n") + (list (normalize "part") "µÚ %n &Part;") + (list (normalize "preface") "%t") + (list (normalize "procedure") "&Procedure; %n, %t") + (list (normalize "reference") "&Reference; %n, %t") + (list (normalize "section") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect1") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect2") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect3") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect4") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sect5") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "simplesect") (if %section-autolabel% + "µÚ %n §ion;" + "the §ion; called %t")) + (list (normalize "sidebar") "&sidebar; %t") + (list (normalize "step") "&step; %n") + (list (normalize "table") "&Table; %n"))) + +(define (gentext-zhtw-xref-strings gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (xref (assoc name (zhtw-xref-strings)))) + (if xref + (car (cdr xref)) + (let* ((msg (string-append "[&xrefto; " + (if giname giname "&nonexistantelement;") + " &unsupported;]")) + (err (node-list-error msg (current-node)))) + msg)))) + +(define (zhtw-auto-xref-indirect-connector before) + ;; In English, the (cond) is unnecessary since the word is always the + ;; same, but in other languages, that's not the case. I've set this + ;; one up with the (cond) so it stands as an example. + (cond + ((equal? (gi before) (normalize "book")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "chapter")) + (literal " ∈ ")) + ((equal? (gi before) (normalize "sect1")) + (literal " ∈ ")) + (else + (literal " ∈ ")))) + +;; Should the TOC come first or last? +;; +(define %generate-zhtw-toc-in-front% #t) + +;; gentext-element-name returns the generated text that should be +;; used to make reference to the selected element. +;; + +(define (zhtw-element-name) + (list + (list (normalize "abstract") "&Abstract;") + (list (normalize "answer") "&Answer;") + (list (normalize "appendix") "&Appendix;") + (list (normalize "article") "&Article;") + (list (normalize "bibliography") "&Bibliography;") + (list (normalize "book") "&Book;") + (list (normalize "calloutlist") "") + (list (normalize "caution") "&Caution;") + (list (normalize "chapter") "&Chapter;") + (list (normalize "copyright") "&Copyright;") + (list (normalize "dedication") "&Dedication;") + (list (normalize "edition") "&Edition;") + (list (normalize "equation") "&Equation;") + (list (normalize "example") "&Example;") + (list (normalize "figure") "&Figure;") + (list (normalize "glossary") "&Glossary;") + (list (normalize "glosssee") "&GlossSee;") + (list (normalize "glossseealso") "&GlossSeeAlso;") + (list (normalize "important") "&Important;") + (list (normalize "index") "&Index;") + (list (normalize "colophon") "&Colophon;") + (list (normalize "setindex") "&SetIndex;") + (list (normalize "isbn") "&isbn;") + (list (normalize "legalnotice") "&LegalNotice;") + (list (normalize "msgaud") "&MsgAud;") + (list (normalize "msglevel") "&MsgLevel;") + (list (normalize "msgorig") "&MsgOrig;") + (list (normalize "note") "&Note;") + (list (normalize "part") "&Part;") + (list (normalize "preface") "&Preface;") + (list (normalize "procedure") "&Procedure;") + (list (normalize "pubdate") "&Published;") + (list (normalize "question") "&Question;") + (list (normalize "refentry") "&RefEntry;") + (list (normalize "reference") "&Reference;") + (list (normalize "refname") "&RefName;") + (list (normalize "revhistory") "&RevHistory;") + (list (normalize "refsect1") "&RefSection;") + (list (normalize "refsect2") "&RefSection;") + (list (normalize "refsect3") "&RefSection;") + (list (normalize "refsynopsisdiv") "&RefSynopsisDiv;") + (list (normalize "revision") "&Revision;") + (list (normalize "sect1") "&Section;") + (list (normalize "sect2") "&Section;") + (list (normalize "sect3") "&Section;") + (list (normalize "sect4") "&Section;") + (list (normalize "sect5") "&Section;") + (list (normalize "section") "&Section;") + (list (normalize "simplesect") "&Section;") + (list (normalize "seeie") "&See;") + (list (normalize "seealsoie") "&Seealso;") + (list (normalize "set") "&Set;") + (list (normalize "sidebar") "&Sidebar;") + (list (normalize "step") "&step;") + (list (normalize "table") "&Table;") + (list (normalize "tip") "&Tip;") + (list (normalize "toc") "&TableofContents;") + (list (normalize "warning") "&Warning;") + )) + +(define (gentext-zhtw-element-name gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (pname (assoc name (zhtw-element-name)))) + (if pname + (car (cdr pname)) + (let* ((msg (string-append + "gentext-zhtw-element-name: &unexpectedelementname;: " + name)) + (err (node-list-error msg (current-node)))) + msg)))) + +;; gentext-element-name-space returns gentext-element-name with a +;; trailing space, if gentext-element-name isn't "". +;; +(define (gentext-zhtw-element-name-space giname) + (string-with-space (gentext-element-name giname))) + +;; gentext-intra-label-sep returns the seperator to be inserted +;; between multiple occurances of a label (or parts of a label) +;; for the specified element. Most of these are for enumerated +;; labels like "Figure 2-4", but this function is used elsewhere +;; (e.g. REFNAME) with a little abuse. +;; + +(define (local-zhtw-intra-label-sep) + (list)) + +(define (zhtw-intra-label-sep) + (list + (list (normalize "equation") "-") + (list (normalize "informalequation") "-") + (list (normalize "example") "-") + (list (normalize "figure") "-") + (list (normalize "listitem") ".") + (list (normalize "procedure") ".") + (list (normalize "refentry") ".") + (list (normalize "reference") ".") + (list (normalize "refname") ", ") + (list (normalize "refsect1") ".") + (list (normalize "refsect2") ".") + (list (normalize "refsect3") ".") + (list (normalize "sect1") ".") + (list (normalize "sect2") ".") + (list (normalize "sect3") ".") + (list (normalize "sect4") ".") + (list (normalize "sect5") ".") + (list (normalize "section") ".") + (list (normalize "simplesect") ".") + (list (normalize "step") ".") + (list (normalize "table") "-") + (list (normalize "_pagenumber") "-") + )) + +(define (gentext-zhtw-intra-label-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-zhtw-intra-label-sep))) + (sep (assoc name (zhtw-intra-label-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +;; gentext-label-title-sep returns the seperator to be inserted +;; between a label and the text following the label for the +;; specified element. Most of these are for use between +;; enumerated labels and titles like "1. Chapter One Title", but +;; this function is used elsewhere (e.g. NOTE) with a little +;; abuse. +;; + +(define (local-zhtw-label-title-sep) + (list)) + +(define (zhtw-label-title-sep) + (list + (list (normalize "abstract") ": ") + (list (normalize "answer") " ") + (list (normalize "appendix") ". ") + (list (normalize "caution") "") + (list (normalize "chapter") ". ") + (list (normalize "equation") ". ") + (list (normalize "example") ". ") + (list (normalize "figure") ". ") + (list (normalize "footnote") ". ") + (list (normalize "glosssee") ": ") + (list (normalize "glossseealso") ": ") + (list (normalize "important") ": ") + (list (normalize "note") ": ") + (list (normalize "orderedlist") ". ") + (list (normalize "part") ". ") + (list (normalize "procedure") ". ") + (list (normalize "prefix") ". ") + (list (normalize "question") " ") + (list (normalize "refentry") "") + (list (normalize "reference") ". ") + (list (normalize "refsect1") ". ") + (list (normalize "refsect2") ". ") + (list (normalize "refsect3") ". ") + (list (normalize "sect1") ". ") + (list (normalize "sect2") ". ") + (list (normalize "sect3") ". ") + (list (normalize "sect4") ". ") + (list (normalize "sect5") ". ") + (list (normalize "section") ". ") + (list (normalize "simplesect") ". ") + (list (normalize "seeie") " ") + (list (normalize "seealsoie") " ") + (list (normalize "step") ". ") + (list (normalize "table") ". ") + (list (normalize "tip") ": ") + (list (normalize "warning") "") + )) + +(define (gentext-zhtw-label-title-sep gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (lsep (assoc name (local-zhtw-label-title-sep))) + (sep (assoc name (zhtw-label-title-sep)))) + (if lsep + (car (cdr lsep)) + (if sep + (car (cdr sep)) + "")))) + +(define (zhtw-label-number-format-list) + (list + (list (normalize "set") "1") + (list (normalize "book") "1") + (list (normalize "prefix") "1") + (list (normalize "part") "I") + (list (normalize "chapter") "1") + (list (normalize "appendix") "A") + (list (normalize "reference") "I") + (list (normalize "example") "1") + (list (normalize "figure") "1") + (list (normalize "table") "1") + (list (normalize "procedure") "1") + (list (normalize "step") "1") + (list (normalize "refsect1") "1") + (list (normalize "refsect2") "1") + (list (normalize "refsect3") "1") + (list (normalize "sect1") "1") + (list (normalize "sect2") "1") + (list (normalize "sect3") "1") + (list (normalize "sect4") "1") + (list (normalize "sect5") "1") + (list (normalize "section") "1") + )) + +(define (zhtw-label-number-format gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (format (assoc name (zhtw-label-number-format-list)))) + (if format + (car (cdr format)) + "1"))) + +(define (zhtw-lot-title) + (list + (list (normalize "table") "&ListofTables;") + (list (normalize "example") "&ListofExamples;") + (list (normalize "figure") "&ListofFigures;") + (list (normalize "equation") "&ListofEquations;") + )) + +(define ($lot-title-zhtw$ gind) + (let* ((giname (if (string? gind) gind (gi gind))) + (name (normalize giname)) + (title (assoc name (zhtw-lot-title)))) + (if title + (car (cdr title)) + (let* ((msg (string-append "&ListofUnknown;: " name)) + (err (node-list-error msg (current-node)))) + msg)))) + +(define %gentext-zhtw-start-quote% (dingbat "ldquo")) + +(define %gentext-zhtw-end-quote% (dingbat "rdquo")) + +(define %gentext-zhtw-start-nested-quote% (dingbat "lsquo")) + +(define %gentext-zhtw-end-nested-quote% (dingbat "rsquo")) + +(define %gentext-zhtw-by% "&by;") ;; e.g. Copyright 1997 "by" A. Nonymous + ;; Authored "by" Jane Doe + +(define %gentext-zhtw-edited-by% "&Editedby;") + ;; "Edited by" Jane Doe + +(define %gentext-zhtw-revised-by% "&Revisedby;") + ;; "Revised by" Jane Doe + +(define %gentext-zhtw-page% "") + +(define %gentext-zhtw-and% "∧") + +(define %gentext-zhtw-listcomma% "&listcomma;") + +(define %gentext-zhtw-lastlistcomma% "&lastlistcomma;") + +(define %gentext-zhtw-bibl-pages% "&Pgs;") + +(define %gentext-zhtw-endnotes% "&Notes;") + +(define %gentext-zhtw-table-endnotes% "&TableNotes;:") + +(define %gentext-zhtw-index-see% "&See;") + +(define %gentext-zhtw-index-seealso% "&SeeAlso;") + + +(define (gentext-zhtw-nav-prev prev) + (make sequence (literal "&nav-prev;"))) + +(define (gentext-zhtw-nav-prev-sibling prevsib) + (make sequence (literal "&nav-prev-sibling;"))) + +(define (gentext-zhtw-nav-next-sibling nextsib) + (make sequence (literal "&nav-next-sibling;"))) + +(define (gentext-zhtw-nav-next next) + (make sequence (literal "&nav-next;"))) + +(define (gentext-zhtw-nav-up up) + (make sequence (literal "&nav-up;"))) + +(define (gentext-zhtw-nav-home home) + (make sequence (literal "&nav-home;"))) + +</style-specification-body> +</style-specification> +</style-sheet> + diff --git a/common/dbl1zhtw.ent b/common/dbl1zhtw.ent new file mode 100644 index 0000000..3bfaee1 --- /dev/null +++ b/common/dbl1zhtw.ent @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!-- This file is generated automatically. --> +<!-- Do not edit this file by hand! --> +<!-- See http://docbook.sourceforge.net/ --> +<!-- To update this file: edit the corresponding document at --> +<!-- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/gentext/locale/ --> + +<!ENTITY Abstract "\U-6458;\U-8981;"> +<!ENTITY abstract "\U-6458;\U-8981;"> +<!ENTITY Answer "\U-7B54;\U-FF1A;"> +<!ENTITY answer "\U-7B54;\U-FF1A;"> +<!ENTITY Appendix "\U-9644;\U-9304;"> +<!ENTITY appendix "\U-9644;\U-9304;"> +<!ENTITY Article "\U-6587;\U-7AE0;"> +<!ENTITY article "\U-6587;\U-7AE0;"> +<!ENTITY Bibliography "\U-53C3;\U-8003;\U-6587;\U-737B;"> +<!ENTITY bibliography "\U-53C3;\U-8003;\U-6587;\U-737B;"> +<!ENTITY Book "\U-66F8;\U-76EE;"> +<!ENTITY book "\U-66F8;\U-76EE;"> +<!ENTITY CAUTION "\U-6CE8;\U-610F;"> +<!ENTITY Caution "\U-6CE8;\U-610F;"> +<!ENTITY caution "\U-6CE8;\U-610F;"> +<!ENTITY Chapter "\U-7AE0;"> +<!ENTITY chapter "\U-7AE0;"> +<!ENTITY Colophon "\U-7248;\U-672C;\U-8A18;\U-9304;"> +<!ENTITY colophon "\U-7248;\U-672C;\U-8A18;\U-9304;"> +<!ENTITY Copyright "\U-7248;\U-6B0A;"> +<!ENTITY copyright "\U-7248;\U-6B0A;"> +<!ENTITY Dedication "\U-5949;\U-737B;"> +<!ENTITY dedication "\U-5949;\U-737B;"> +<!ENTITY Edition "\U-7248;"> +<!ENTITY edition "\U-7248;"> +<!ENTITY Equation "\U-65B9;\U-7A0B;\U-5F0F;"> +<!ENTITY equation "\U-65B9;\U-7A0B;\U-5F0F;"> +<!ENTITY Example "\U-7BC4;\U-4F8B;"> +<!ENTITY example "\U-7BC4;\U-4F8B;"> +<!ENTITY Figure "\U-5716;\U-5F62;"> +<!ENTITY figure "\U-5716;\U-5F62;"> +<!ENTITY Glossary "\U-5C0F;\U-8FAD;\U-5F59;"> +<!ENTITY glossary "\U-5C0F;\U-8FAD;\U-5F59;"> +<!ENTITY GlossSee "\U-53C3;\U-898B;"> +<!ENTITY glosssee "\U-53C3;\U-898B;"> +<!ENTITY GlossSeeAlso "\U-53E6;\U-53C3;\U-898B;"> +<!ENTITY glossseealso "\U-53E6;\U-53C3;\U-898B;"> +<!ENTITY IMPORTANT "\U-91CD;\U-8981;"> +<!ENTITY Important "\U-91CD;\U-8981;"> +<!ENTITY important "\U-91CD;\U-8981;"> +<!ENTITY Index "\U-7D22;\U-5F15;"> +<!ENTITY index "\U-7D22;\U-5F15;"> +<!ENTITY ISBN "ISBN"> +<!ENTITY isbn "ISBN"> +<!ENTITY LegalNotice "\U-6CD5;\U-5F8B;\U-8072;\U-660E;"> +<!ENTITY legalnotice "\U-6CD5;\U-5F8B;\U-8072;\U-660E;"> +<!ENTITY MsgAud "\U-8B80;\U-8005;"> +<!ENTITY msgaud "\U-8B80;\U-8005;"> +<!ENTITY MsgLevel "\U-7A0B;\U-5EA6;"> +<!ENTITY msglevel "\U-7A0B;\U-5EA6;"> +<!ENTITY MsgOrig "\U-51FA;\U-8655;"> +<!ENTITY msgorig "\U-51FA;\U-8655;"> +<!ENTITY NOTE "\U-6CE8;"> +<!ENTITY Note "\U-6CE8;"> +<!ENTITY note "\U-6CE8;"> +<!ENTITY Part "\U-90E8;"> +<!ENTITY part "\U-90E8;"> +<!ENTITY Preface "\U-5E8F;\U-8A00;"> +<!ENTITY preface "\U-5E8F;\U-8A00;"> +<!ENTITY Procedure "\U-904E;\U-7A0B;"> +<!ENTITY procedure "\U-904E;\U-7A0B;"> +<!ENTITY ProductionSet "Production"> +<!ENTITY Published "\U-51FA;\U-7248;"> +<!ENTITY published "\U-51FA;\U-7248;"> +<!ENTITY Question "\U-554F;\U-FF1A;"> +<!ENTITY question "\U-554F;\U-FF1A;"> +<!ENTITY RefEntry "\U-53C3;\U-7167;\U-9805;\U-76EE;"> +<!ENTITY refentry "\U-53C3;\U-7167;\U-9805;\U-76EE;"> +<!ENTITY Reference "\U-53C3;\U-8003;"> +<!ENTITY reference "\U-53C3;\U-8003;"> +<!ENTITY RefName "\U-53C3;\U-8003;\U-540D;"> +<!ENTITY refname "\U-53C3;\U-8003;\U-540D;"> +<!ENTITY RefSection "\U-53C3;\U-7167;\U-7AE0;\U-7BC0;"> +<!ENTITY refsection "\U-53C3;\U-7167;\U-7AE0;\U-7BC0;"> +<!ENTITY RefSynopsisDiv "\U-5927;\U-7DB1;"> +<!ENTITY refsynopsisdiv "\U-5927;\U-7DB1;"> +<!ENTITY RevHistory "\U-4FEE;\U-8A02;\U-8A18;\U-9304;"> +<!ENTITY revhistory "\U-4FEE;\U-8A02;\U-8A18;\U-9304;"> +<!ENTITY Revision "\U-4FEE;\U-8A02;"> +<!ENTITY revision "\U-4FEE;\U-8A02;"> +<!ENTITY sect1 "Section"> +<!ENTITY sect2 "Section"> +<!ENTITY sect3 "Section"> +<!ENTITY sect4 "Section"> +<!ENTITY sect5 "Section"> +<!ENTITY Section "\U-7BC0;"> +<!ENTITY section "\U-7BC0;"> +<!ENTITY See "\U-898B;"> +<!ENTITY see "\U-898B;"> +<!ENTITY SeeAlso "\U-53E6;\U-898B;"> +<!ENTITY Seealso "\U-53E6;\U-898B;"> +<!ENTITY seealso "\U-53E6;\U-898B;"> +<!ENTITY Set "Set"> +<!ENTITY set "Set"> +<!ENTITY SetIndex "Set Index"> +<!ENTITY setindex "Set Index"> +<!ENTITY Sidebar ""> +<!ENTITY sidebar ""> +<!ENTITY Step "\U-6B65;\U-9A5F;"> +<!ENTITY step "\U-6B65;\U-9A5F;"> +<!ENTITY Table "\U-8868;\U-683C;"> +<!ENTITY table "\U-8868;\U-683C;"> +<!ENTITY TIP "\U-63D0;\U-793A;"> +<!ENTITY Tip "\U-63D0;\U-793A;"> +<!ENTITY tip "\U-63D0;\U-793A;"> +<!ENTITY WARNING "\U-8B66;\U-544A;"> +<!ENTITY Warning "\U-8B66;\U-544A;"> +<!ENTITY warning "\U-8B66;\U-544A;"> +<!ENTITY edited "\U-7DE8;\U-8F2F;"> +<!ENTITY Edited "\U-7DE8;\U-8F2F;"> +<!ENTITY editedby "\U-7DE8;\U-8F2F;"> +<!ENTITY Editedby "\U-7DE8;\U-8F2F;"> +<!ENTITY Notes "\U-6CE8;"> +<!ENTITY notes "\U-6CE8;"> +<!ENTITY Pgs "\U-9801;"> +<!ENTITY pgs "\U-9801;"> +<!ENTITY Revisedby "\U-4FEE;\U-8A02;"> +<!ENTITY revisedby "\U-4FEE;\U-8A02;"> +<!ENTITY TableNotes "\U-6CE8;\U-91CB;"> +<!ENTITY tablenotes "\U-6CE8;\U-91CB;"> +<!ENTITY TableofContents "\U-5167;\U-5BB9;\U-76EE;\U-9304;"> +<!ENTITY tableofcontents "\U-5167;\U-5BB9;\U-76EE;\U-9304;"> +<!ENTITY and "\U-4E14;"> +<!ENTITY by "\U-7531;"> +<!ENTITY in "\U-5728;"> +<!ENTITY lastlistcomma ","> +<!ENTITY listcomma ","> +<!ENTITY nonexistantelement "\U-4E0D;\U-5B58;\U-5728;\U-7684;\U-5143;\U-7D20;"> +<!ENTITY page.citation "\U-9801;"> +<!ENTITY unexpectedelementname "\U-975E;\U-9810;\U-671F;\U-7684;\U-5143;\U-7D20;\U-540D;"> +<!ENTITY unsupported "\U-672A;\U-652F;\U-63F4;"> +<!ENTITY xrefto "\U-53C3;\U-7167;"> +<!ENTITY ListofEquations "\U-516C;\U-5F0F;\U-76EE;\U-9304;"> +<!ENTITY listofequations "\U-516C;\U-5F0F;\U-76EE;\U-9304;"> +<!ENTITY ListofExamples "\U-7BC4;\U-4F8B;\U-76EE;\U-9304;"> +<!ENTITY listofexamples "\U-7BC4;\U-4F8B;\U-76EE;\U-9304;"> +<!ENTITY ListofFigures "\U-9644;\U-5716;\U-76EE;\U-9304;"> +<!ENTITY listoffigures "\U-9644;\U-5716;\U-76EE;\U-9304;"> +<!ENTITY ListofTables "\U-9644;\U-8868;\U-76EE;\U-9304;"> +<!ENTITY listoftables "\U-9644;\U-8868;\U-76EE;\U-9304;"> +<!ENTITY ListofUnknown "\U-5176;\U-5B83;\U-5167;\U-5BB9;\U-76EE;\U-9304;"> +<!ENTITY listofunknown "\U-5176;\U-5B83;\U-5167;\U-5BB9;\U-76EE;\U-9304;"> +<!ENTITY nav-home "\U-5167;\U-5BB9;"> +<!ENTITY nav-next "\U-4E0B;\U-4E00;\U-9801;"> +<!ENTITY nav-next-sibling "\U-5FEB;\U-901F;\U-5411;\U-5F8C;"> +<!ENTITY nav-prev "\U-524D;\U-4E00;\U-9801;"> +<!ENTITY nav-prev-sibling "\U-5FEB;\U-901F;\U-5411;\U-524D;"> +<!ENTITY nav-up "\U-4E0A;\U-4E00;\U-5C64;"> +<!ENTITY sectioncalled "the section called"> +<!ENTITY Draft "Draft"> +<!ENTITY above "above"> +<!ENTITY below "below"> diff --git a/common/dbtable.dsl b/common/dbtable.dsl new file mode 100644 index 0000000..ca9fcbc --- /dev/null +++ b/common/dbtable.dsl @@ -0,0 +1,244 @@ +;; $Id: dbtable.dsl,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; +;; This file contains table functions common to both print and HTML +;; versions of the DocBook stylesheets. +;; + +;; If **ANY** change is made to this file, you _MUST_ alter the +;; following definition: + +(define %docbook-common-table-version% + "Modular DocBook Stylesheet Common Table Functions") + +;; == Table Support ===================================================== + +;; ---------------------------------------------------------------------- +;; Functions for finding/retrieving table attributes + +(define (tgroup-align tgroup) + (attribute-string (normalize "align") tgroup)) + +(define (tgroup-colsep tgroup) + (attribute-string (normalize "colsep") tgroup)) + +(define (tgroup-rowsep tgroup) + (attribute-string (normalize "rowsep") tgroup)) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +(define (find-tgroup #!optional (nd (current-node))) + ;; for our purposes, an entrytbl functions as a tgroup. + ;; ENTRYTBL IS ONLY SUPPORTED IN THE HTML BACKEND!!! + (if (or (equal? (gi nd) (normalize "tgroup")) + (equal? (gi nd) (normalize "entrytbl"))) + nd + (if (node-list-empty? (ancestor (normalize "entrytbl") nd)) + (ancestor (normalize "tgroup") nd) + (ancestor (normalize "entrytbl") nd)))) + +(define (find-colspec colname) + (let* ((tgroup (find-tgroup)) + (colspecs (select-elements (descendants tgroup) + (normalize "colspec")))) + (let loop ((nl colspecs)) + (if (node-list-empty? nl) + ;; we've run out of places to look, stop looking... + (error (string-append "Could not find COLSPEC named " colname)) + (if (equal? colname + (attribute-string (normalize "colname") + (node-list-first nl))) + (node-list-first nl) + (loop (node-list-rest nl))))))) + +(define (find-colspec-by-number colnum) + (let* ((tgroup (find-tgroup)) + (colspecs (select-elements (children tgroup) (normalize "colspec")))) + (let loop ((nl colspecs)) + (if (node-list-empty? nl) + ;; we've run out of places to look, stop looking... + (empty-node-list) + (if (equal? (colspec-colnum (node-list-first nl)) colnum) + (node-list-first nl) + (loop (node-list-rest nl))))))) + +(define (colspec-align colspec) + (attribute-string (normalize "align") colspec)) + +(define (colspec-char colspec) + (attribute-string (normalize "char") colspec)) + +(define (colspec-charoff colspec) + (let ((charoff (attribute-string (normalize "charoff") colspec))) + (if charoff + (string->number charoff) + #f))) + +(define (colspec-colnum colspec) + ;; returns the column number of the associated colspec...which is + ;; either the value of COLNUM or obtained by counting + (let* ((tgroup (find-tgroup colspec)) + (colspecs (select-elements (children tgroup) (normalize "colspec")))) + (if (attribute-string (normalize "colnum") colspec) + (string->number (attribute-string (normalize "colnum") colspec)) + (let loop ((nl colspecs) (curcol 1)) + (let ((colnum (attribute-string (normalize "colnum") (node-list-first nl)))) + (if (node-list=? (node-list-first nl) colspec) + curcol + (if colnum + (loop (node-list-rest nl) (+ (string->number colnum) 1)) + (loop (node-list-rest nl) (+ curcol 1))))))))) + +(define (colspec-colname colspec) + (attribute-string (normalize "colname") colspec)) + +(define (colspec-colsep colspec) + (attribute-string (normalize "colsep") colspec)) + +(define (colspec-colwidth colspec) + (if (attribute-string (normalize "colwidth") colspec) + (attribute-string (normalize "colwidth") colspec) + "1*")) + +(define (colspec-rowsep colspec) + (attribute-string (normalize "rowsep") colspec)) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +(define (find-spanspec spanname) + (let* ((tgroup (find-tgroup)) + (spanspecs (select-elements (descendants tgroup) + (normalize (normalize "spanspec"))))) + (let loop ((nl spanspecs)) + (if (node-list-empty? nl) + (error (string-append "Could not find SPANSPEC named " spanname)) + (if (equal? spanname + (attribute-string (normalize "spanname") + (node-list-first nl))) + (node-list-first nl) + (loop (node-list-rest nl))))))) + +(define (spanspec-align spanspec) + (attribute-string (normalize "align") spanspec)) + +(define (spanspec-char spanspec) + (attribute-string (normalize "char") spanspec)) + +(define (spanspec-charoff spanspec) + (let ((charoff (attribute-string (normalize "charoff") spanspec))) + (if charoff + (string->number charoff) + #f))) + +(define (spanspec-colsep spanspec) + (attribute-string (normalize "colsep") spanspec)) + +(define (spanspec-nameend spanspec) + (attribute-string (normalize "nameend") spanspec)) + +(define (spanspec-namest spanspec) + (attribute-string (normalize "namest") spanspec)) + +(define (spanspec-rowsep spanspec) + (attribute-string (normalize "rowsep") spanspec)) + +(define (spanspec-spanname spanspec) + (attribute-string (normalize "spanname") spanspec)) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +;; Calculate spans + +(define (hspan entry) + ;; Returns the horizontal span of an entry + (let* ((spanname (attribute-string (normalize "spanname") entry)) + (namest (if spanname + (spanspec-namest (find-spanspec spanname)) + (attribute-string (normalize "namest") entry))) + (nameend (if spanname + (spanspec-nameend (find-spanspec spanname)) + (attribute-string (normalize "nameend") entry))) + (colst (if namest + (colspec-colnum (find-colspec namest)) + #f)) + (colend (if nameend + (colspec-colnum (find-colspec nameend)) + #f))) + (if (and namest nameend) + (+ (- colend colst) 1) + 1))) + +(define (vspan entry) + ;; Returns the vertical span of an entry. Note that this is one more + ;; than the specified MOREROWS attribute. + (let* ((morerows (attribute-string (normalize "morerows") entry))) + (if morerows + (+ (string->number morerows) 1) + 1))) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +;; Update the "overhang" list + +(define (adjust-overhang overhang oldoverhang entry) + (let* ((colst (cell-column-number entry oldoverhang)) + (span (hspan entry))) + (if (> (vspan entry) 1) + (list-put overhang colst (- (vspan entry) 1) span) + overhang))) + +(define (overhang-skip overhang startcol) + (if (> startcol (length overhang)) + ;; this is a _broken_ table. should I output a debug message!? + startcol + (let loop ((overtail (list-tail overhang (- startcol 1))) (col startcol)) + (if (null? overtail) + col + (if (equal? (car overtail) 0) + col + (loop (cdr overtail) (+ col 1))))))) + +(define (update-overhang row oldoverhang) + (let loop ((overhang (decrement-list-members oldoverhang)) + (entries (node-list-filter-out-pis (children row)))) + (if (node-list-empty? entries) + overhang + (loop (adjust-overhang overhang oldoverhang + (node-list-first entries)) + (node-list-rest entries))))) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +;; Calculate information about cells + +(define (cell-prev-cell entry) + ;; Return the cell which precedes entry in the current row. + (let loop ((nd (ipreced entry))) + (if (node-list-empty? nd) + nd + (if (equal? (node-property 'class-name nd) 'element) + nd + (loop (ipreced nd)))))) + +(define (cell-column-number entry overhang) + (let* ((entry (ancestor-member entry (list (normalize "entry") (normalize "entrytbl")))) + (row (ancestor (normalize "row") entry)) + (preventry (cell-prev-cell entry)) + (prevspan (if (node-list-empty? preventry) 1 (hspan preventry))) + (colname (attribute-string (normalize "colname") entry)) + (namest (attribute-string (normalize "namest") entry)) + (nameend (attribute-string (normalize "nameend") entry)) + (spanname (attribute-string (normalize "spanname") entry))) + (if colname + (colspec-colnum (find-colspec colname)) + (if spanname + (colspec-colnum (find-colspec + (spanspec-namest (find-spanspec spanname)))) + (if namest + (colspec-colnum (find-colspec namest)) + (if (node-list-empty? preventry) + (overhang-skip overhang 1) + (overhang-skip overhang + (+ (cell-column-number preventry overhang) + prevspan)))))))) + +;; ====================================================================== diff --git a/contrib/html/ChangeLog b/contrib/html/ChangeLog new file mode 100644 index 0000000..e33fa27 --- /dev/null +++ b/contrib/html/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * short-biblioentry.dsl: New file. + diff --git a/contrib/html/short-biblioentry.dsl b/contrib/html/short-biblioentry.dsl new file mode 100644 index 0000000..87d1b10 --- /dev/null +++ b/contrib/html/short-biblioentry.dsl @@ -0,0 +1,30 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification id="docbook-plain" use="docbook"> +<style-specification-body> + +(define (biblioentry-inline-elements) + (list (normalize "abbrev") + (normalize "title") + (normalize "subtitle") + (normalize "author") + (normalize "authorgroup") + (normalize "copyright") + (normalize "date") + (normalize "edition") + (normalize "pagenums") + (normalize "pubdate") + (normalize "publisher"))) + +(define (biblioentry-block-elements) + '()) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/contrib/imagemap/ChangeLog b/contrib/imagemap/ChangeLog new file mode 100644 index 0000000..f659572 --- /dev/null +++ b/contrib/imagemap/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * imagemap.dsl, testdoc.sgm, testimg.jpg: New file. + diff --git a/contrib/imagemap/imagemap.dsl b/contrib/imagemap/imagemap.dsl new file mode 100644 index 0000000..d5bb4d8 --- /dev/null +++ b/contrib/imagemap/imagemap.dsl @@ -0,0 +1,77 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification id="docbook-plain" use="docbook"> +<style-specification-body> + +(element (graphicco areaspec) + (make element gi: "MAP" + attributes: (list (list "NAME" (element-id))) + (let loop ((nl (select-elements (descendants (current-node)) + (normalize "area")))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (make-html-area (node-list-first nl)) + (loop (node-list-rest nl))))))) + +(define ($graphic$ fileref + #!optional (format #f) (alt #f) (align #f)) + (let* ((csim? (equal? (gi (parent (current-node))) + (normalize "graphicco"))) + (ismap (if csim? + '(("ISMAP" "ISMAP")) + '())) + (usemap (if csim? + (let* ((graphicco (parent (current-node))) + (areaspec (select-elements + (children graphicco) + (normalize "areaspec")))) + (list (list "USEMAP" + (string-append "#" + (attribute-string + (normalize "id") + areaspec))))) + '())) + (border (if csim? '(("BORDER" "0")) '())) + (img-attr (append + (list (list "SRC" (graphic-file fileref))) + (if align (list (list "ALIGN" align)) '()) + (if image-library (graphic-attrs fileref alt) '()) + ismap + usemap + border))) + (make empty-element gi: "IMG" + attributes: img-attr))) + +(define (make-html-area area) + (let* ((shape (attribute-string (normalize "otherunits") area)) + (coords (attribute-string (normalize "coords") area)) + (idrefs (attribute-string (normalize "linkends") area)) + (idlist (if idrefs + (split idrefs) + '())) + (target (if idrefs + (element-with-id (car idlist)) + (empty-node-list))) + (href (attribute-string (normalize "label") area))) + (if (node-list-empty? target) + (process-children) + (if idrefs + (make empty-element gi: "AREA" + attributes: (list (list "SHAPE" shape) + (list "COORDS" coords) + (list "HREF" (href-to target)))) + (make empty-element gi: "AREA" + attributes: (list (list "SHAPE" shape) + (list "COORDS" coords) + (list "HREF" href))))))) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/contrib/imagemap/testdoc.sgm b/contrib/imagemap/testdoc.sgm new file mode 100644 index 0000000..27a833b --- /dev/null +++ b/contrib/imagemap/testdoc.sgm @@ -0,0 +1,29 @@ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +<chapter> +<?dbhtml filename="index.html"> +<title>Test Chapter</title> + +<para>First para</para> + +<graphicco> +<areaspec id="clientsidemap"> + <area id="foo" otherunits="rect" coords="8,13,141,37" label="http://nwalsh.com/"> + <area id="bar" otherunits="rect" COORDS="165,16,282,37" linkends="sfoo"> + <area id="baz" otherunits="rect" COORDS="13,55,276,81" label="http://www.oasis-open.org/docbook/"> +</areaspec> +<graphic fileref="testimg.jpg"></graphic> +</graphicco> + +<para>Second para</para> + +<sect1><title>test1</title> +<para>test1</para> +</sect1> +<sect1 id=sfoo><title>test2</title> +<para>test2</para> +</sect1> +<sect1 id=sbar><title>test3</title> +<para>test3</para> +</sect1> + +</chapter> diff --git a/contrib/imagemap/testimg.jpg b/contrib/imagemap/testimg.jpg Binary files differnew file mode 100644 index 0000000..16b0e92 --- /dev/null +++ b/contrib/imagemap/testimg.jpg diff --git a/contrib/print/ChangeLog b/contrib/print/ChangeLog new file mode 100644 index 0000000..e33fa27 --- /dev/null +++ b/contrib/print/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * short-biblioentry.dsl: New file. + diff --git a/contrib/print/short-biblioentry.dsl b/contrib/print/short-biblioentry.dsl new file mode 100644 index 0000000..131b86b --- /dev/null +++ b/contrib/print/short-biblioentry.dsl @@ -0,0 +1,30 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification id="docbook-plain" use="docbook"> +<style-specification-body> + +(define (biblioentry-inline-elements) + (list (normalize "abbrev") + (normalize "title") + (normalize "subtitle") + (normalize "author") + (normalize "authorgroup") + (normalize "copyright") + (normalize "date") + (normalize "edition") + (normalize "pagenums") + (normalize "pubdate") + (normalize "publisher"))) + +(define (biblioentry-block-elements) + '()) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/contrib/renumberinpart/ChangeLog b/contrib/renumberinpart/ChangeLog new file mode 100644 index 0000000..ab93b29 --- /dev/null +++ b/contrib/renumberinpart/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * renumberinpart.dsl, test.sgm: New file. + diff --git a/contrib/renumberinpart/renumberinpart.dsl b/contrib/renumberinpart/renumberinpart.dsl new file mode 100644 index 0000000..a6eb52e --- /dev/null +++ b/contrib/renumberinpart/renumberinpart.dsl @@ -0,0 +1,28 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY % html "IGNORE"> +<![%html;[ +<!ENTITY % print "IGNORE"> +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> +]]> +<!ENTITY % print "INCLUDE"> +<![%print;[ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL> +]]> +]> + +<style-sheet> +<style-specification use="docbook"> +<style-specification-body> + +(define (chapter-number-restart-list cmp) (list (normalize "book") + (normalize "part"))) +(define (appendix-number-restart-list cmp) (list (normalize "book") + (normalize "part") + (normalize "article"))) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/contrib/renumberinpart/test.sgm b/contrib/renumberinpart/test.sgm new file mode 100644 index 0000000..41ad428 --- /dev/null +++ b/contrib/renumberinpart/test.sgm @@ -0,0 +1,19 @@ +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +<book><title>test book</title> +<part><title>test part I</title> +<chapter><title>first chapter in part I</title> +<para>para</para> +</chapter> +<chapter><title>second chapter in part I</title> +<para>para</para> +</chapter> +</part> +<part><title>test part II</title> +<chapter><title>first chapter in part II</title> +<para>para</para> +</chapter> +<chapter><title>second chapter in part II</title> +<para>para</para> +</chapter> +</part> +</book> diff --git a/contrib/subdoc/ChangeLog b/contrib/subdoc/ChangeLog new file mode 100644 index 0000000..12e9222 --- /dev/null +++ b/contrib/subdoc/ChangeLog @@ -0,0 +1,5 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * book.sgm, subdoc.dsl, subdoc.dtd, subdoc1.sgm, subdoc2.sgm, subdocbc.mod: + New file. + diff --git a/contrib/subdoc/book.sgm b/contrib/subdoc/book.sgm new file mode 100644 index 0000000..654770a --- /dev/null +++ b/contrib/subdoc/book.sgm @@ -0,0 +1,13 @@ +<!DOCTYPE book SYSTEM "subdoc.dtd" [ +<!ENTITY subdoc1 SYSTEM "subdoc1.sgm" NDATA SGML> +<!ENTITY subdoc2 SYSTEM "subdoc2.sgm" NDATA SGML> +]> +<book><title>Book Title</title> +<chapter><title>Chapter Title</title> +<para> +This is a test. +</para> +<subdocsection subdoc=subdoc1> +<subdocsection subdoc=subdoc2> +</chapter> +</book> diff --git a/contrib/subdoc/subdoc.dsl b/contrib/subdoc/subdoc.dsl new file mode 100644 index 0000000..e9e7268 --- /dev/null +++ b/contrib/subdoc/subdoc.dsl @@ -0,0 +1,35 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification use="docbook"> +<style-specification-body> + +<!-- Notes: + +1. If you use subdocs, you can't enumerate any of the elements that + you include by subdoc reference. There's no way to figure out + what the right numbers would be because the stylesheet can't + see back past the subdoc reference into the original grove to + count. This is either a Jade or DSSSL bug, I don't recall which. + +2. If anything that occurs in a subdoc should appear in the TOC, you'll + have to modify the TOC code to find it. + +--> + +(element subdocsection + (let* ((subdoc (attribute-string (normalize "subdoc"))) + (targfile (entity-generated-system-id subdoc)) + (targdoc (sgml-parse targfile)) + (targroot (node-property 'document-element targdoc))) + (process-node-list targroot))) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> + diff --git a/contrib/subdoc/subdoc.dtd b/contrib/subdoc/subdoc.dtd new file mode 100644 index 0000000..81a4521 --- /dev/null +++ b/contrib/subdoc/subdoc.dtd @@ -0,0 +1,22 @@ +<!-- Make sure that subdocbc.mod gets included at the right place... --> +<!ENTITY % intermod.redecl.module "INCLUDE"> +<!ENTITY % rdbmods SYSTEM "subdocbc.mod"> + +<!ENTITY % section.element "IGNORE"> + +<!ENTITY % docbook PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +%docbook; + +<!ELEMENT Section - - (SectionInfo?, + (%sect.title.content;), + (%nav.class;)*, + (((%divcomponent.mix;)+, + ((%refentry.class;)*|Section*|SubdocSection*)) + | (%refentry.class;)+|Section+|SubdocSection+), + (%nav.class;)*) + +(%ubiq.mix;)> + +<!ELEMENT SubdocSection - O EMPTY> +<!ATTLIST SubdocSection + Subdoc ENTITY #REQUIRED +> diff --git a/contrib/subdoc/subdoc1.sgm b/contrib/subdoc/subdoc1.sgm new file mode 100644 index 0000000..e625d11 --- /dev/null +++ b/contrib/subdoc/subdoc1.sgm @@ -0,0 +1,6 @@ +<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +<section><title>A SubDoc Section</title> +<para> +This was included as a subdoc. +</para> +</section> diff --git a/contrib/subdoc/subdoc2.sgm b/contrib/subdoc/subdoc2.sgm new file mode 100644 index 0000000..64298e1 --- /dev/null +++ b/contrib/subdoc/subdoc2.sgm @@ -0,0 +1,6 @@ +<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +<section><title>Another SubDoc Section</title> +<para> +This was also included as a subdoc. +</para> +</section> diff --git a/contrib/subdoc/subdocbc.mod b/contrib/subdoc/subdocbc.mod new file mode 100644 index 0000000..dd1d57e --- /dev/null +++ b/contrib/subdoc/subdocbc.mod @@ -0,0 +1,29 @@ +<!-- Define entities we'll need for bookcomponent.content --> +<!ENTITY % local.divcomponent.mix ""> +<!ENTITY % divcomponent.mix + "%list.class; |%admon.class; + |%linespecific.class; |%synop.class; + |%para.class; |%informal.class; + |%formal.class; |%compound.class; + |%genobj.class; |%descobj.class; + |%ndxterm.class; + %local.divcomponent.mix;"> + +<!ENTITY % local.refentry.class ""> +<!ENTITY % refentry.class "RefEntry %local.refentry.class;"> + +<!ENTITY % bookcomponent.title.content + "DocInfo?, Title, Subtitle?, TitleAbbrev?"> + +<!ENTITY % sect.title.content + "Title, Subtitle?, TitleAbbrev?"> + +<!ENTITY % refsect.title.content + "Title, Subtitle?, TitleAbbrev?"> + +<!-- This modification allows SubdocSection in place of Sections --> +<!ENTITY % bookcomponent.content + "((%divcomponent.mix;)+, + (Sect1*|(%refentry.class;)*|SimpleSect*|Section*|SubdocSection*)) + | (Sect1+|(%refentry.class;)+|SimpleSect+|Section+|SubdocSection+)"> + diff --git a/dtds/dbdsssl/ChangeLog b/dtds/dbdsssl/ChangeLog new file mode 100644 index 0000000..ddf4754 --- /dev/null +++ b/dtds/dbdsssl/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbdsssl.dtd: New file. + diff --git a/dtds/dbdsssl/dbdsssl.dtd b/dtds/dbdsssl/dbdsssl.dtd new file mode 100644 index 0000000..171d857 --- /dev/null +++ b/dtds/dbdsssl/dbdsssl.dtd @@ -0,0 +1,147 @@ +<!-- ================================================================= --> +<!-- A DTD for DSSSL Programming with DocBook. + + Copyright (C) 1998 Norman Walsh + This DTD may be distributed under the same terms as the + Modular DocBook Stylesheets (http://nwalsh.com/docbook/dsssl/) + + This DTD is an extension to DocBook that conforms to the DSSSL + architecture. This means that instances of this DTD can be + legal DSSSL stylesheets and (almost) legal DocBook documents + simultaneously. + + This DTD as DSSSL: + + Instances of this DTD conform to the DSSSL architecture if and + only if they contain a BOOK and that BOOK contains one or more + PROGRAMLISTINGS. An EXTERNAL-SPECIFICATION, if required, must + be provided in the SETINFO element. + + This DTD as DocBook: + + Instances of this DTD are extensions of DocBook in the following + small ways: + + - SETs may consist of only a single BOOK. + - SETINFO may include EXTERNAL-SPECIFICATION. + - EXTERNAL-SPECIFICATION is new. + - BOOK has two additional attributes, DSSSL (#FIXED) and USE to + point to EXTERNAL-SPECIFICATIONs. + - PROGRAMLISTING has an additional attribute, DSSSL (#FIXED). + + A typical invocation: + <!DOCTYPE book PUBLIC + "+//IDN nwalsh.com//DTD DocBook DSSSL Architecture V1.0//EN"> +--> +<!-- ================================================================= --> + +<!-- =================== Declare the DSSSL Architecture ============== --> + +<?IS10744 ArcBase DSSSL> +<!NOTATION DSSSL PUBLIC "ISO/IEC 10179:1996//NOTATION + DSSSL Architecture Definition Document//EN" + -- A document architecture conforming to the + Architectural Form Definition Requirements of + ISO/IEC 10744. -- +> + +<!ATTLIST #NOTATION DSSSL + -- Support attributes for all architectures -- + ArcQuant CDATA #FIXED "NAMELEN 64" + ArcDTD CDATA #FIXED "%DSSSLDTD" + ArcDocF NAME #FIXED dsssl-specification + ArcDataF NAME #FIXED dsssl-specification +> + +<!ENTITY % DSSSLDTD PUBLIC + "ISO/IEC 10179:1996//DTD DSSSL Architecture//EN" +> + +<!-- ============================ Load DocBook ======================= --> + +<!ENTITY % set.module "IGNORE"> +<!ENTITY % setinfo.module "IGNORE"> +<!ENTITY % book.module "IGNORE"> +<!ENTITY % programlisting.module "IGNORE"> + +<!ENTITY % docbook PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +%docbook; + +<!-- ============ Adjust DocBook to fit the DSSSL Architecture ======== --> + +<!ENTITY % local.set.attrib ""> +<!ENTITY % set.role.attrib "%role.attrib;"> +<!ELEMENT Set - O ((%div.title.content;)?, SetInfo?, ToC?, + (%book.class;)+, SetIndex?) + +(%ubiq.mix;)> +<!ATTLIST Set + -- + FPI: SGML formal public identifier + -- + FPI CDATA #IMPLIED + %status.attrib; + %common.attrib; + %set.role.attrib; + %local.set.attrib; +> + +<!ENTITY % local.setinfo.attrib ""> +<!ENTITY % setinfo.role.attrib "%role.attrib;"> +<!ELEMENT SetInfo - - ((Graphic | LegalNotice | ModeSpec | SubjectSet + | KeywordSet | ITermSet | %bibliocomponent.mix; + | external-specification)+) + -(BeginPage)> +<!ATTLIST SetInfo + -- + Contents: IDs of the ToC, Books, and SetIndex that comprise + the set, in the order of their appearance + -- + Contents IDREFS #IMPLIED + %common.attrib; + %setinfo.role.attrib; + %local.setinfo.attrib; +> + +<!ENTITY % local.book.attrib ""> +<!ENTITY % book.role.attrib "%role.attrib;"> +<!ELEMENT Book - O ((%div.title.content;)?, BookInfo?, Dedication?, ToC?, LoT*, + (Glossary|Bibliography|Preface)*, + (((%chapter.class;)+, Reference*) | Part+ + | Reference+ | (%article.class;)+), + (%appendix.class;)*, (Glossary|Bibliography)*, + (%index.class;)*, LoT*, ToC?) + +(%ubiq.mix;)> +<!ATTLIST Book + -- + FPI: SGML formal public identifier + -- + FPI CDATA #IMPLIED + %label.attrib; + %status.attrib; + %common.attrib; + %book.role.attrib; + %local.book.attrib; + DSSSL NAME #FIXED style-specification + USE IDREFS #IMPLIED +> + +<!ENTITY % local.programlisting.attrib ""> +<!ENTITY % programlisting.role.attrib "%role.attrib;"> +<!ELEMENT ProgramListing - - ((%programlisting.content;)+)> +<!ATTLIST ProgramListing + %width.attrib; + %linespecific.attrib; + %common.attrib; + %programlisting.role.attrib; + %local.programlisting.attrib; + DSSSL NAME #FIXED style-specification-body +> + +<!ELEMENT external-specification - o empty> +<!ATTLIST external-specification + ID ID #REQUIRED + Document ENTITY #REQUIRED + SpecId NAME #IMPLIED +> + +<!-- ================================================================= --> diff --git a/dtds/decls/ChangeLog b/dtds/decls/ChangeLog new file mode 100644 index 0000000..3134eba --- /dev/null +++ b/dtds/decls/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dcl, xml.dcl: New file. + diff --git a/dtds/decls/docbook.dcl b/dtds/decls/docbook.dcl new file mode 100644 index 0000000..bb3a754 --- /dev/null +++ b/dtds/decls/docbook.dcl @@ -0,0 +1,106 @@ +<!SGML "ISO 8879:1986" + -- ...................................................................... -- + -- DocBook SGML declaration V3.0 ........................................ -- + -- file docbook.dcl ..................................................... -- + +CHARSET + + BASESET + "ISO 646:1983//CHARSET International Reference Version (IRV)//ESC 2/5 4/0" + DESCSET + 0 9 UNUSED + 9 2 9 + 11 2 UNUSED + 13 1 13 + 14 18 UNUSED + 32 95 32 + 127 1 UNUSED + + BASESET + "ISO Registration Number 100//CHARSET ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1" + DESCSET + 128 32 UNUSED + 160 96 32 + +CAPACITY SGMLREF + + TOTALCAP 99000000 + ATTCAP 1000000 + ATTCHCAP 1000000 + AVGRPCAP 1000000 + ELEMCAP 1000000 + ENTCAP 1000000 + ENTCHCAP 1000000 + GRPCAP 1000000 + IDCAP 32000000 + IDREFCAP 32000000 + +SCOPE DOCUMENT + +SYNTAX + + SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 + 10 11 12 13 14 15 16 17 18 19 + 20 21 22 23 24 25 26 27 28 29 + 30 31 127 128 129 + 130 131 132 133 134 135 136 137 138 139 + 140 141 142 143 144 145 146 147 148 149 + 150 151 152 153 154 155 156 157 158 159 + + BASESET + "ISO 646:1983//CHARSET International Reference Version (IRV)//ESC 2/5 4/0" + DESCSET + 0 128 0 + + FUNCTION + RE 13 + RS 10 + SPACE 32 + TAB SEPCHAR 9 + + NAMING + LCNMSTRT "" + UCNMSTRT "" + LCNMCHAR ".-" + UCNMCHAR ".-" + NAMECASE + GENERAL YES + ENTITY NO + + DELIM + GENERAL SGMLREF + SHORTREF SGMLREF + + NAMES SGMLREF + + QUANTITY SGMLREF + ATTCNT 256 + GRPCNT 253 + GRPGTCNT 253 + LITLEN 8092 + NAMELEN 44 + TAGLVL 100 + +FEATURES + + MINIMIZE + DATATAG NO + OMITTAG NO + RANK NO + SHORTTAG YES + + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + + OTHER + CONCUR NO + SUBDOC NO + FORMAL YES + +APPINFO NONE + + -- End of DocBook SGML declaration V3.0 ................................. -- + -- ...................................................................... -- +> diff --git a/dtds/decls/xml.dcl b/dtds/decls/xml.dcl new file mode 100644 index 0000000..fed2103 --- /dev/null +++ b/dtds/decls/xml.dcl @@ -0,0 +1,179 @@ +<!SGML -- SGML Declaration for valid XML documents -- + "ISO 8879:1986 (WWW)" + + CHARSET + BASESET + "ISO Registration Number 176//CHARSET + ISO/IEC 10646-1:1993 UCS-4 with implementation + level 3//ESC 2/5 2/15 4/6" + DESCSET + 0 9 UNUSED + 9 2 9 + 11 2 UNUSED + 13 1 13 + 14 18 UNUSED + 32 95 32 + 127 1 UNUSED + 128 32 UNUSED + -- use this instead of the official declaration because SP only + supports 16-bit characters -- + 160 65374 160 + 65534 2 UNUSED + -- 55296 2048 UNUSED + 57344 8190 57344 + 65534 2 UNUSED + 65536 1048576 65536 -- + CAPACITY NONE + + SCOPE DOCUMENT + + SYNTAX + SHUNCHAR NONE + BASESET "ISO Registration Number 176//CHARSET + ISO/IEC 10646-1:1993 UCS-4 with implementation + level 3//ESC 2/5 2/15 4/6" + DESCSET + 0 1114112 0 + FUNCTION + RE 13 + RS 10 + SPACE 32 + TAB SEPCHAR 9 + + NAMING + LCNMSTRT "" + UCNMSTRT "" + NAMESTRT + 58 95 192-214 216-246 248-305 308-318 321-328 + 330-382 384-451 461-496 500-501 506-535 592-680 + 699-705 902 904-906 908 910-929 931-974 976-982 + 986 988 990 992 994-1011 1025-1036 1038-1103 + 1105-1116 1118-1153 1168-1220 1223-1224 + 1227-1228 1232-1259 1262-1269 1272-1273 + 1329-1366 1369 1377-1414 1488-1514 1520-1522 + 1569-1594 1601-1610 1649-1719 1722-1726 + 1728-1742 1744-1747 1749 1765-1766 2309-2361 + 2365 2392-2401 2437-2444 2447-2448 2451-2472 + 2474-2480 2482 2486-2489 2524-2525 2527-2529 + 2544-2545 2565-2570 2575-2576 2579-2600 + 2602-2608 2610-2611 2613-2614 2616-2617 + 2649-2652 2654 2674-2676 2693-2699 2701 + 2703-2705 2707-2728 2730-2736 2738-2739 + 2741-2745 2749 2784 2821-2828 2831-2832 + 2835-2856 2858-2864 2866-2867 2870-2873 2877 + 2908-2909 2911-2913 2949-2954 2958-2960 + 2962-2965 2969-2970 2972 2974-2975 2979-2980 + 2984-2986 2990-2997 2999-3001 3077-3084 + 3086-3088 3090-3112 3114-3123 3125-3129 + 3168-3169 3205-3212 3214-3216 3218-3240 + 3242-3251 3253-3257 3294 3296-3297 3333-3340 + 3342-3344 3346-3368 3370-3385 3424-3425 + 3585-3630 3632 3634-3635 3648-3653 3713-3714 + 3716 3719-3720 3722 3725 3732-3735 3737-3743 + 3745-3747 3749 3751 3754-3755 3757-3758 3760 + 3762-3763 3773 3776-3780 3904-3911 3913-3945 + 4256-4293 4304-4342 4352 4354-4355 4357-4359 + 4361 4363-4364 4366-4370 4412 4414 4416 4428 + 4430 4432 4436-4437 4441 4447-4449 4451 4453 + 4455 4457 4461-4462 4466-4467 4469 4510 4520 + 4523 4526-4527 4535-4536 4538 4540-4546 4587 + 4592 4601 7680-7835 7840-7929 7936-7957 + 7960-7965 7968-8005 8008-8013 8016-8023 8025 + 8027 8029 8031-8061 8064-8116 8118-8124 8126 + 8130-8132 8134-8140 8144-8147 8150-8155 + 8160-8172 8178-8180 8182-8188 8486 8490-8491 + 8494 8576-8578 12295 12321-12329 12353-12436 + 12449-12538 12549-12588 19968-40869 44032-55203 + + LCNMCHAR "" + UCNMCHAR "" + NAMECHAR + 45-46 183 720-721 768-837 864-865 903 1155-1158 + 1425-1441 1443-1465 1467-1469 1471 1473-1474 + 1476 1600 1611-1618 1632-1641 1648 1750-1764 + 1767-1768 1770-1773 1776-1785 2305-2307 2364 + 2366-2381 2385-2388 2402-2403 2406-2415 + 2433-2435 2492 2494-2500 2503-2504 2507-2509 + 2519 2530-2531 2534-2543 2562 2620 2622-2626 + 2631-2632 2635-2637 2662-2673 2689-2691 2748 + 2750-2757 2759-2761 2763-2765 2790-2799 + 2817-2819 2876 2878-2883 2887-2888 2891-2893 + 2902-2903 2918-2927 2946-2947 3006-3010 + 3014-3016 3018-3021 3031 3047-3055 3073-3075 + 3134-3140 3142-3144 3146-3149 3157-3158 + 3174-3183 3202-3203 3262-3268 3270-3272 + 3274-3277 3285-3286 3302-3311 3330-3331 + 3390-3395 3398-3400 3402-3405 3415 3430-3439 + 3633 3636-3642 3654-3662 3664-3673 3761 + 3764-3769 3771-3772 3782 3784-3789 3792-3801 + 3864-3865 3872-3881 3893 3895 3897 3902-3903 + 3953-3972 3974-3979 3984-3989 3991 3993-4013 + 4017-4023 4025 8400-8412 8417 12293 12330-12335 + 12337-12341 12441-12442 12445-12446 12540-12542 + + NAMECASE + GENERAL NO + ENTITY NO + + DELIM + GENERAL SGMLREF + HCRO "&#x" -- 38 is the number for ampersand -- + NESTC "/" + NET ">" + PIC "?>" + SHORTREF NONE + + NAMES + SGMLREF + + QUANTITY NONE + + ENTITIES + "amp" 38 + "lt" 60 + "gt" 62 + "quot" 34 + "apos" 39 + + FEATURES + MINIMIZE + DATATAG NO + OMITTAG NO + RANK NO + SHORTTAG + STARTTAG + EMPTY NO + UNCLOSED NO + NETENABL IMMEDNET + ENDTAG + EMPTY NO + UNCLOSED NO + ATTRIB + DEFAULT YES + OMITNAME NO + VALUE NO + EMPTYNRM YES + IMPLYDEF + ATTLIST NO + DOCTYPE NO + ELEMENT NO + ENTITY NO + NOTATION NO + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL NO + URN NO + KEEPRSRE YES + VALIDITY TYPE + ENTITIES + REF ANY + INTEGRAL YES + APPINFO NONE + SEEALSO "ISO 8879:1986//NOTATION + Extensible Markup Language (XML) 1.0//EN" +> diff --git a/dtds/html/ChangeLog b/dtds/html/ChangeLog new file mode 100644 index 0000000..fb1c4f0 --- /dev/null +++ b/dtds/html/ChangeLog @@ -0,0 +1,5 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * ISOlat1.gml, catalog, dbhtml.dcl, dbhtml.dtd, test.htm: + New file. + diff --git a/dtds/html/ISOlat1.gml b/dtds/html/ISOlat1.gml new file mode 100644 index 0000000..88ad6f2 --- /dev/null +++ b/dtds/html/ISOlat1.gml @@ -0,0 +1,74 @@ +<!-- (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> +<!-- Character entity set. Typical invocation: + <!ENTITY % ISOlat1 PUBLIC + "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"> + %ISOlat1; +--> +<!-- Modified for use in HTML + $Id: ISOlat1.gml,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ --> +<!ENTITY AElig CDATA "Æ" -- capital AE diphthong (ligature) --> +<!ENTITY Aacute CDATA "Á" -- capital A, acute accent --> +<!ENTITY Acirc CDATA "Â" -- capital A, circumflex accent --> +<!ENTITY Agrave CDATA "À" -- capital A, grave accent --> +<!ENTITY Aring CDATA "Å" -- capital A, ring --> +<!ENTITY Atilde CDATA "Ã" -- capital A, tilde --> +<!ENTITY Auml CDATA "Ä" -- capital A, dieresis or umlaut mark --> +<!ENTITY Ccedil CDATA "Ç" -- capital C, cedilla --> +<!ENTITY ETH CDATA "Ð" -- capital Eth, Icelandic --> +<!ENTITY Eacute CDATA "É" -- capital E, acute accent --> +<!ENTITY Ecirc CDATA "Ê" -- capital E, circumflex accent --> +<!ENTITY Egrave CDATA "È" -- capital E, grave accent --> +<!ENTITY Euml CDATA "Ë" -- capital E, dieresis or umlaut mark --> +<!ENTITY Iacute CDATA "Í" -- capital I, acute accent --> +<!ENTITY Icirc CDATA "Î" -- capital I, circumflex accent --> +<!ENTITY Igrave CDATA "Ì" -- capital I, grave accent --> +<!ENTITY Iuml CDATA "Ï" -- capital I, dieresis or umlaut mark --> +<!ENTITY Ntilde CDATA "Ñ" -- capital N, tilde --> +<!ENTITY Oacute CDATA "Ó" -- capital O, acute accent --> +<!ENTITY Ocirc CDATA "Ô" -- capital O, circumflex accent --> +<!ENTITY Ograve CDATA "Ò" -- capital O, grave accent --> +<!ENTITY Oslash CDATA "Ø" -- capital O, slash --> +<!ENTITY Otilde CDATA "Õ" -- capital O, tilde --> +<!ENTITY Ouml CDATA "Ö" -- capital O, dieresis or umlaut mark --> +<!ENTITY THORN CDATA "Þ" -- capital THORN, Icelandic --> +<!ENTITY Uacute CDATA "Ú" -- capital U, acute accent --> +<!ENTITY Ucirc CDATA "Û" -- capital U, circumflex accent --> +<!ENTITY Ugrave CDATA "Ù" -- capital U, grave accent --> +<!ENTITY Uuml CDATA "Ü" -- capital U, dieresis or umlaut mark --> +<!ENTITY Yacute CDATA "Ý" -- capital Y, acute accent --> +<!ENTITY aacute CDATA "á" -- small a, acute accent --> +<!ENTITY acirc CDATA "â" -- small a, circumflex accent --> +<!ENTITY aelig CDATA "æ" -- small ae diphthong (ligature) --> +<!ENTITY agrave CDATA "à" -- small a, grave accent --> +<!ENTITY aring CDATA "å" -- small a, ring --> +<!ENTITY atilde CDATA "ã" -- small a, tilde --> +<!ENTITY auml CDATA "ä" -- small a, dieresis or umlaut mark --> +<!ENTITY ccedil CDATA "ç" -- small c, cedilla --> +<!ENTITY eacute CDATA "é" -- small e, acute accent --> +<!ENTITY ecirc CDATA "ê" -- small e, circumflex accent --> +<!ENTITY egrave CDATA "è" -- small e, grave accent --> +<!ENTITY eth CDATA "ð" -- small eth, Icelandic --> +<!ENTITY euml CDATA "ë" -- small e, dieresis or umlaut mark --> +<!ENTITY iacute CDATA "í" -- small i, acute accent --> +<!ENTITY icirc CDATA "î" -- small i, circumflex accent --> +<!ENTITY igrave CDATA "ì" -- small i, grave accent --> +<!ENTITY iuml CDATA "ï" -- small i, dieresis or umlaut mark --> +<!ENTITY ntilde CDATA "ñ" -- small n, tilde --> +<!ENTITY oacute CDATA "ó" -- small o, acute accent --> +<!ENTITY ocirc CDATA "ô" -- small o, circumflex accent --> +<!ENTITY ograve CDATA "ò" -- small o, grave accent --> +<!ENTITY oslash CDATA "ø" -- small o, slash --> +<!ENTITY otilde CDATA "õ" -- small o, tilde --> +<!ENTITY ouml CDATA "ö" -- small o, dieresis or umlaut mark --> +<!ENTITY szlig CDATA "ß" -- small sharp s, German (sz ligature) --> +<!ENTITY thorn CDATA "þ" -- small thorn, Icelandic --> +<!ENTITY uacute CDATA "ú" -- small u, acute accent --> +<!ENTITY ucirc CDATA "û" -- small u, circumflex accent --> +<!ENTITY ugrave CDATA "ù" -- small u, grave accent --> +<!ENTITY uuml CDATA "ü" -- small u, dieresis or umlaut mark --> +<!ENTITY yacute CDATA "ý" -- small y, acute accent --> +<!ENTITY yuml CDATA "ÿ" -- small y, dieresis or umlaut mark --> diff --git a/dtds/html/catalog b/dtds/html/catalog new file mode 100644 index 0000000..9edf124 --- /dev/null +++ b/dtds/html/catalog @@ -0,0 +1,3 @@ +PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN" dbhtml.dtd +PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML" ISOlat1.gml +SGMLDECL dbhtml.dcl diff --git a/dtds/html/dbhtml.dcl b/dtds/html/dbhtml.dcl new file mode 100644 index 0000000..95eaf2a --- /dev/null +++ b/dtds/html/dbhtml.dcl @@ -0,0 +1,76 @@ +<!SGML "ISO 8879:1986" + +CHARSET + BASESET "ISO 646:1983//CHARSET + International Reference Version + (IRV)//ESC 2/5 4/0" + DESCSET 0 9 UNUSED + 9 2 9 + 11 2 UNUSED + 13 1 13 + 14 18 UNUSED + 32 95 32 + 127 1 UNUSED + BASESET "ISO Registration Number 100//CHARSET + ECMA-94 Right Part of + Latin Alphabet Nr. 1//ESC 2/13 4/1" + + DESCSET 128 32 32 + 160 96 32 + +CAPACITY SGMLREF + TOTALCAP 150000 + GRPCAP 150000 + ENTCAP 150000 + +SCOPE DOCUMENT +SYNTAX + SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 + BASESET "ISO 646:1983//CHARSET + International Reference Version + (IRV)//ESC 2/5 4/0" + DESCSET 0 128 0 + FUNCTION + RE 13 + RS 10 + SPACE 32 + TAB SEPCHAR 9 + + + NAMING LCNMSTRT "" + UCNMSTRT "" + LCNMCHAR ".-" + UCNMCHAR ".-" + NAMECASE GENERAL YES + ENTITY NO + DELIM GENERAL SGMLREF + SHORTREF SGMLREF + NAMES SGMLREF + QUANTITY SGMLREF + ATTSPLEN 2100 + LITLEN 1024 + NAMELEN 72 -- somewhat arbitrary; taken from + internet line length conventions -- + PILEN 1024 + TAGLVL 100 + TAGLEN 2100 + GRPGTCNT 150 + GRPCNT 64 + +FEATURES + MINIMIZE + DATATAG NO + OMITTAG YES + RANK NO + SHORTTAG YES + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL YES + APPINFO "SDA" -- conforming SGML Document Access application + -- > diff --git a/dtds/html/dbhtml.dtd b/dtds/html/dbhtml.dtd new file mode 100644 index 0000000..c9ccc61 --- /dev/null +++ b/dtds/html/dbhtml.dtd @@ -0,0 +1,604 @@ +<!-- $Id: dbhtml.dtd,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ + + DTD for the HTML produced by the DocBook Modular Stylesheets. + Derived from W3C HTML 3.2. + + Common declaration: + + <!DOCTYPE html PUBLIC "-//Norman Walsh//DTD DocBook HTML 1.0//EN"> + +--> + +<!ENTITY % HTML.Version + "-//Norman Walsh//DTD DocBook HTML 1.0//EN" + > + +<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'"> + +<!--================== Additions ==========================================--> + +<!ENTITY % common.atts + "CLASS CDATA #IMPLIED + STYLE CDATA #IMPLIED"> + +<!--================== Imported Names =====================================--> + +<!ENTITY % Content-Type "CDATA" + -- meaning a MIME content type, as per RFC1521 + --> + +<!ENTITY % HTTP-Method "GET | POST" + -- as per HTTP specification + --> + +<!ENTITY % URL "CDATA" + -- The term URL means a CDATA attribute + whose value is a Uniform Resource Locator, + See RFC1808 (June 95) and RFC1738 (Dec 94). + --> + +<!-- Parameter Entities --> + +<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements --> + +<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> + +<!ENTITY % list "UL | OL"> + +<!ENTITY % preformatted "PRE"> + +<!--================ Character mnemonic entities ==========================--> + +<!ENTITY % ISOlat1 PUBLIC + "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"> +%ISOlat1; + +<!--================ Entities for special symbols =========================--> +<!-- &trade ­ and &cbsp are not widely deployed and so not included here --> + +<!ENTITY copy CDATA "©" -- copyright sign --> +<!ENTITY reg CDATA "®" -- registered sign --> +<!ENTITY amp CDATA "&" -- ampersand --> +<!ENTITY gt CDATA ">" -- greater than --> +<!ENTITY lt CDATA "<" -- less than --> +<!ENTITY quot CDATA """ -- double quote --> +<!ENTITY nbsp CDATA " " -- non breaking space --> + +<!ENTITY mdash CDATA "–" -- em dash --> +<!ENTITY ndash CDATA "—" -- en dash --> +<!ENTITY trade CDATA "™" -- trademark --> + +<!--=================== Text Markup =======================================--> + +<!ENTITY % font "TT | I | B | U | STRIKE | SUB | SUP"> + +<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | SPAN"> + +<!ENTITY % special "A | IMG | APPLET | FONT | BR | SCRIPT | MAP"> + +<!ENTITY % form "INPUT | SELECT | TEXTAREA"> + +<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form"> + +<!ELEMENT (%font|%phrase) - - (%text)*> +<!ATTLIST (%font|%phrase) + %common.atts; + > + +<!-- there are also 16 widely known color names although + the resulting colors are implementation dependent: + + aqua, black, blue, fuchsia, gray, green, lime, maroon, + navy, olive, purple, red, silver, teal, white, and yellow + + These colors were originally picked as being the standard + 16 colors supported with the Windows VGA palette. + --> + +<!ELEMENT FONT - - (%text)* -- local change to font --> +<!ATTLIST FONT + %common.atts; + size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 -- + color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" -- + > + +<!ELEMENT BR - O EMPTY -- forced line break --> +<!ATTLIST BR + %common.atts; + clear (left|all|right|none) none -- control of text flow -- + > + +<!--================== HTML content models ================================--> +<!-- + HTML has three basic content models: + + %text character level elements and text strings + %flow block-like elements e.g. paragraphs and lists + %bodytext as (b) plus headers and ADDRESS +--> + +<!ENTITY % block + "P | %list | %preformatted | DL | DIV | + BLOCKQUOTE | FORM | HR | TABLE"> + +<!-- %flow is used for DD and LI --> + +<!ENTITY % flow "(%text | %block)*"> + +<!--=================== Document Body =====================================--> + +<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*"> + +<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? --> + +<!ENTITY % body-color-attrs " + bgcolor %color #IMPLIED + text %color #IMPLIED + link %color #IMPLIED + vlink %color #IMPLIED + alink %color #IMPLIED + "> + +<!ELEMENT BODY O O %body.content> +<!ATTLIST BODY + %common.atts; + background %URL #IMPLIED -- texture tile for document background -- + %body-color-attrs; -- bgcolor, text, link, vlink, alink -- + > + +<!ENTITY % address.content "((%text;) | P)*"> + +<!ELEMENT ADDRESS - - %address.content> +<!ATTLIST ADDRESS + %common.atts; + > + +<!ELEMENT DIV - - %body.content> +<!ATTLIST DIV + %common.atts; + align (left|center|right) #IMPLIED -- alignment of following text -- + > + +<!--================== The Anchor Element =================================--> + +<!ELEMENT A - - (%text)* -(A)> +<!ATTLIST A + %common.atts; + name CDATA #IMPLIED -- named link end -- + href %URL #IMPLIED -- URL for linked resource -- + rel CDATA #IMPLIED -- forward link types -- + rev CDATA #IMPLIED -- reverse link types -- + title CDATA #IMPLIED -- advisory title string -- + target CDATA #IMPLIED -- target of HREF (frame) -- + > + +<!--================== Client-side image maps ============================--> + +<!-- These can be placed in the same document or grouped in a + separate document although this isn't yet widely supported --> + +<!ENTITY % SHAPE "(rect|circle|poly|default)"> +<!ENTITY % COORDS "CDATA" -- comma separated list of numbers --> + +<!ELEMENT MAP - - (AREA)*> +<!ATTLIST MAP + %common.atts; + name CDATA #IMPLIED + > + +<!ELEMENT AREA - O EMPTY> +<!ATTLIST AREA + %common.atts; + shape %SHAPE rect + coords %COORDS #IMPLIED -- always needed except for shape=default -- + href %URL #IMPLIED -- this region acts as hypertext link -- + nohref (nohref) #IMPLIED -- this region has no action -- + alt CDATA #REQUIRED + > + +<!--================== The LINK Element ==================================--> + +<!ENTITY % Types "CDATA" + -- See Internet Draft: draft-ietf-html-relrev-00.txt + LINK has been part of HTML since the early days + although few browsers as yet take advantage of it. + + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the LINK element in document head: + b) to link to a separate style sheet (rel=stylesheet) + c) to make a link to a script (rel=script) + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a postscript or pdf version (rel=print) +--> + +<!ELEMENT LINK - O EMPTY> +<!ATTLIST LINK + %common.atts; + type CDATA #IMPLIED -- What type of link is this? -- + href %URL #IMPLIED -- URL for linked resource -- + rel %Types #IMPLIED -- forward link types -- + rev %Types #IMPLIED -- reverse link types -- + title CDATA #IMPLIED -- advisory title string -- + > + +<!--=================== Images ============================================--> + +<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length --> +<!ENTITY % Pixels "CDATA" -- integer representing length in pixels --> + +<!-- Suggested widths are used for negotiating image size + with the module responsible for painting the image. + align=left or right cause image to float to margin + and for subsequent text to wrap around image --> + +<!ENTITY % IAlign "(top|middle|bottom|left|right)"> + +<!ELEMENT IMG - O EMPTY -- Embedded image --> +<!ATTLIST IMG + %common.atts; + src %URL #REQUIRED -- URL of image to embed -- + alt CDATA #IMPLIED -- for display in place of image -- + align %IAlign #IMPLIED -- vertical or horizontal alignment -- + height %Pixels #IMPLIED -- suggested height in pixels -- + width %Pixels #IMPLIED -- suggested width in pixels -- + border %Pixels #IMPLIED -- suggested link border width -- + hspace %Pixels #IMPLIED -- suggested horizontal gutter -- + vspace %Pixels #IMPLIED -- suggested vertical gutter -- + usemap %URL #IMPLIED -- use client-side image map -- + ismap (ismap) #IMPLIED -- use server image map -- + > + +<!-- USEMAP points to a MAP element which may be in this document + or an external document, although the latter is not widely supported --> + +<!--=================== Java APPLET tag ===================================--> +<!-- + This tag is supported by all java enabled browsers. Applet resources + (including their classes) are normally loaded relative to the document + URL (or <BASE> element if it is defined). The CODEBASE attribute is used + to change this default behavior. If the CODEBASE attribute is defined then + it specifies a different location to find applet resources. The value + can be an absolute URL or a relative URL. The absolute URL is used as is + without modification and is not effected by the documents <BASE> element. + When the codebase attribute is relative, then it is relative to the + document URL (or <BASE> tag if defined). +--> +<!ELEMENT APPLET - - (%text)* +(PARAM)> +<!ATTLIST APPLET + %common.atts; + codebase %URL #IMPLIED -- code base -- + code CDATA #REQUIRED -- class file -- + alt CDATA #IMPLIED -- for display in place of applet -- + name CDATA #IMPLIED -- applet name -- + width %Pixels #REQUIRED -- suggested width in pixels -- + height %Pixels #REQUIRED -- suggested height in pixels -- + align %IAlign #IMPLIED -- vertical or horizontal alignment -- + hspace %Pixels #IMPLIED -- suggested horizontal gutter -- + vspace %Pixels #IMPLIED -- suggested vertical gutter -- + > + +<!ELEMENT PARAM - O EMPTY> +<!ATTLIST PARAM + %common.atts; + name NAME #REQUIRED -- The name of the parameter -- + value CDATA #IMPLIED -- The value of the parameter -- + > + +<!-- +Here is an example: + + <applet codebase="applets/NervousText" + code=NervousText.class + width=300 + height=50> + <param name=text value="Java is Cool!"> + <img src=sorry.gif alt="This looks better with Java support"> + </applet> +--> + +<!--=================== Horizontal Rule ===================================--> + +<!ELEMENT HR - O EMPTY> +<!ATTLIST HR + %common.atts; + align (left|right|center) #IMPLIED + noshade (noshade) #IMPLIED + size %Pixels #IMPLIED + width %Length #IMPLIED + > +<!--=================== Paragraphs=========================================--> + +<!ELEMENT P - O (%block|%text)*> +<!ATTLIST P + %common.atts; + align (left|center|right) #IMPLIED + > + +<!--=================== Headings ==========================================--> + +<!-- + There are six levels of headers from H1 (the most important) + to H6 (the least important). +--> + +<!ELEMENT ( %heading ) - - (%text;)*> +<!ATTLIST ( %heading ) + %common.atts; + align (left|center|right) #IMPLIED + > + +<!--=================== Preformatted Text =================================--> + +<!-- excludes images and changes in font size --> + +<!ENTITY % pre.exclusion "IMG|SUB|SUP|FONT"> + +<!ELEMENT PRE - - (%text)* -(%pre.exclusion)> +<!ATTLIST PRE + %common.atts; + width NUMBER #implied -- is this widely supported? -- + > + +<!--=================== Block-like Quotes =================================--> + +<!ELEMENT BLOCKQUOTE - - %body.content> +<!ATTLIST BLOCKQUOTE + %common.atts; + > + +<!--=================== Lists =============================================--> + +<!-- + HTML 3.2 allows you to control the sequence number for ordered lists. + You can set the sequence number with the START and VALUE attributes. + The TYPE attribute may be used to specify the rendering of ordered + and unordered lists. +--> + +<!-- definition lists - DT for term, DD for its definition --> + +<!ELEMENT DL - - (DT|DD)*> +<!ATTLIST DL + %common.atts; + compact (compact) #IMPLIED -- more compact style -- + > + +<!ELEMENT DT - O (%text)*> +<!ATTLIST DT + %common.atts; + > + +<!ELEMENT DD O O %flow;> +<!ATTLIST DD + %common.atts; + > + +<!-- Ordered lists OL, and unordered lists UL --> +<!ELEMENT (OL|UL) - - (LI)*> + +<!-- + Numbering style + 1 arablic numbers 1, 2, 3, ... + a lower alpha a, b, c, ... + A upper alpha A, B, C, ... + i lower roman i, ii, iii, ... + I upper roman I, II, III, ... + + The style is applied to the sequence number which by default + is reset to 1 for the first list item in an ordered list. + + This can't be expressed directly in SGML due to case folding. +--> + +<!ENTITY % OLStyle "CDATA" -- constrained to: [1|a|A|i|I] --> + +<!ATTLIST OL -- ordered lists -- + %common.atts; + type %OLStyle #IMPLIED -- numbering style -- + start NUMBER #IMPLIED -- starting sequence number -- + compact (compact) #IMPLIED -- reduced interitem spacing -- + > + +<!-- bullet styles --> + +<!ENTITY % ULStyle "disc|square|circle"> + +<!ATTLIST UL -- unordered lists -- + %common.atts; + type (%ULStyle) #IMPLIED -- bullet style -- + compact (compact) #IMPLIED -- reduced interitem spacing -- + > + +<!-- The type attribute can be used to change the bullet style + in unordered lists and the numbering style in ordered lists --> + +<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" --> + +<!ELEMENT LI - O %flow -- list item --> +<!ATTLIST LI + %common.atts; + type %LIStyle #IMPLIED -- list item style -- + value NUMBER #IMPLIED -- reset sequence number -- + > + +<!--================ Forms ===============================================--> + +<!ELEMENT FORM - - %body.content -(FORM)> +<!ATTLIST FORM + %common.atts; + action %URL #IMPLIED -- server-side form handler -- + method (%HTTP-Method) GET -- see HTTP specification -- + enctype %Content-Type; "application/x-www-form-urlencoded" + > + +<!ENTITY % InputType + "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT + | RESET | FILE | HIDDEN | IMAGE)"> + +<!ELEMENT INPUT - O EMPTY> +<!ATTLIST INPUT + %common.atts; + type %InputType TEXT -- what kind of widget is needed -- + name CDATA #IMPLIED -- required for all but submit and reset -- + value CDATA #IMPLIED -- required for radio and checkboxes -- + checked (checked) #IMPLIED -- for radio buttons and check boxes -- + size CDATA #IMPLIED -- specific to each type of field -- + maxlength NUMBER #IMPLIED + src %URL #IMPLIED -- for fields with background images -- + align (top|middle|bottom|left|right) top -- image alignment -- + > + +<!ELEMENT SELECT - - (OPTION+)> +<!ATTLIST SELECT + %common.atts; + name CDATA #REQUIRED + size NUMBER #IMPLIED + multiple (multiple) #IMPLIED + > + +<!ELEMENT OPTION - O (#PCDATA)*> +<!ATTLIST OPTION + %common.atts; + selected (selected) #IMPLIED + value CDATA #IMPLIED -- defaults to element content -- + > + +<!-- Multi-line text input field. --> + +<!ELEMENT TEXTAREA - - (#PCDATA)*> +<!ATTLIST TEXTAREA + %common.atts; + name CDATA #REQUIRED + rows NUMBER #REQUIRED + cols NUMBER #REQUIRED + > + +<!--======================= Tables ========================================--> + +<!-- Widely deployed subset of the full table standard, see RFC 1942 + e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt --> + +<!-- horizontal placement of table relative to window --> +<!ENTITY % Where "(left|center|right)"> + +<!-- horizontal alignment attributes for cell contents --> +<!ENTITY % cell.halign + "align (left|center|right) #IMPLIED" + > + +<!-- vertical alignment attributes for cell contents --> +<!ENTITY % cell.valign + "valign (top|middle|bottom|baseline) #IMPLIED" + > + +<!ELEMENT table - - (caption?, tr+)> +<!ATTLIST table -- table element -- + %common.atts; + align %Where; #IMPLIED -- table position relative to window -- + width %Length #IMPLIED -- table width relative to window -- + border %Pixels #IMPLIED -- controls frame width around table -- + dummy (border) #IMPLIED -- fixes SGML error for border w/o value -- + cellspacing %Pixels #IMPLIED -- spacing between cells -- + cellpadding %Pixels #IMPLIED -- spacing within cells -- + > + +<!ELEMENT tr - O (th|td)*> +<!ATTLIST tr -- table row -- + %common.atts; + %cell.halign; -- horizontal alignment in cells -- + %cell.valign; -- vertical alignment in cells -- + > + +<!ELEMENT (th|td) - O %body.content> +<!ATTLIST (th|td) -- header or data cell -- + %common.atts; + nowrap (nowrap) #IMPLIED -- suppress word wrap -- + rowspan NUMBER 1 -- number of rows spanned by cell -- + colspan NUMBER 1 -- number of cols spanned by cell -- + %cell.halign; -- horizontal alignment in cell -- + %cell.valign; -- vertical alignment in cell -- + width %Pixels #IMPLIED -- suggested width for cell -- + height %Pixels #IMPLIED -- suggested height for cell -- + > + +<!ELEMENT CAPTION - - (%text;)* -- table or figure caption --> +<!ATTLIST CAPTION + %common.atts; + align (top|bottom) #IMPLIED + > + +<!--================ Document Head ========================================--> + +<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" --> + +<!ENTITY % head.content "TITLE & BASE?"> + +<!ELEMENT HEAD O O (%head.content) +(%head.misc)> +<!ATTLIST HEAD + %common.atts; + > + +<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc) + -- The TITLE element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. + --> +<!ATTLIST TITLE + %common.atts; + > + +<!-- + The BASE element gives an absolute URL for dereferencing relative + URLs, e.g. + + <BASE href="http://foo.com/index.html"> + ... + <IMG SRC="images/bar.gif"> + + The image is deferenced to + + http://foo.com/images/bar.gif + + In the absence of a BASE element the document URL should be used. + Note that this is not necessarily the same as the URL used to + request the document, as the base URL may be overridden by an HTTP + header accompanying the document. +--> + +<!ELEMENT BASE - O EMPTY> +<!ATTLIST BASE + %common.atts; + href %URL #REQUIRED + > + +<!ELEMENT META - O EMPTY -- Generic Metainformation --> +<!ATTLIST META + %common.atts; + http-equiv NAME #IMPLIED -- HTTP response header name -- + name NAME #IMPLIED -- metainformation name -- + content CDATA #REQUIRED -- associated information -- + > + +<!-- SCRIPT/STYLE are place holders for transition to next version of HTML --> + +<!ELEMENT STYLE - - (#PCDATA)* -(%head.misc) -- style info --> +<!ATTLIST STYLE + %common.atts; + > + +<!ELEMENT SCRIPT - - (#PCDATA)* -(%head.misc) -- script statements --> +<!ATTLIST SCRIPT + %common.atts; + > + +<!--================ Document Structure ===================================--> + +<!ELEMENT HTML O O (HEAD, BODY)> +<!ATTLIST HTML + %common.atts; + %version.attr; + > diff --git a/dtds/html/test.htm b/dtds/html/test.htm new file mode 100644 index 0000000..a350dbf --- /dev/null +++ b/dtds/html/test.htm @@ -0,0 +1,13 @@ +<!DOCTYPE HTML SYSTEM "dbhtml.dtd"> +<html> +<head> +<title>Title</title> +</head> +<body> +<h1>Foo!</h1> +<p>Para +<ol><li>Bar! +</ol> +</p> +</body> +</html> diff --git a/dtds/imagelib/ChangeLog b/dtds/imagelib/ChangeLog new file mode 100644 index 0000000..d84499a --- /dev/null +++ b/dtds/imagelib/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * imagelib.dtd: New file. + diff --git a/dtds/imagelib/imagelib.dtd b/dtds/imagelib/imagelib.dtd new file mode 100644 index 0000000..d2c9329 --- /dev/null +++ b/dtds/imagelib/imagelib.dtd @@ -0,0 +1,62 @@ +<!-- $Id: imagelib.dtd,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ + + DTD for the image-library files used by the Modular DocBook + Stylesheets. + + Common declaration: + + <?xml version='1.0'?> + <!DOCTYPE image-library + PUBLIC "-//Norman Walsh//DTD Image Library 1.0//EN" ""> + + Instances of this DTD are usually XML. +--> + +<!-- An image-library is a collection of images --> +<!ELEMENT image-library (image+)> + +<!-- Each image has some number of properties and may have a short --> +<!-- text description and a long test description --> +<!ELEMENT image (properties?, alttext?, altdesc?)> + +<!-- The stylesheets resolve the requested graphic to a filename --> +<!-- and search for an image with that filename in the image --> +<!-- library. Images may refer to each other with 'id' and --> +<!-- 'sameas' attributes. --> +<!ATTLIST image + filename CDATA #REQUIRED + id ID #IMPLIED + sameas IDREFS #IMPLIED +> + +<!-- A few image properties are universal, the rest are stored --> +<!-- in HTML-style 'meta' elements. --> +<!ELEMENT properties (meta*)> +<!ATTLIST properties + format (gif|jpeg|png|other) #IMPLIED + otherformat CDATA #IMPLIED + width CDATA #IMPLIED + height CDATA #IMPLIED +> + +<!-- Any additional properties that specify 'imgattr="yes"', --> +<!-- will automatically be copied to the attribute list of --> +<!-- the HTML IMG tag. --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + name CDATA #REQUIRED + content CDATA #REQUIRED + imgattr (yes|no) "no" +> + +<!-- The content of this element will be used as the HTML --> +<!-- 'ALT' text, unless the alt text can be found in the --> +<!-- instance. --> +<!ELEMENT alttext (#PCDATA)> + +<!-- The 'altdesc' is a longer description of the image. --> +<!-- It is not used at this time. --> +<!ELEMENT altdesc (para+)> +<!ELEMENT para (#PCDATA)> + +<!--EOF--> diff --git a/dtds/olink/ChangeLog b/dtds/olink/ChangeLog new file mode 100644 index 0000000..437e797 --- /dev/null +++ b/dtds/olink/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * olinksum.dtd: New file. + diff --git a/dtds/olink/olinksum.dtd b/dtds/olink/olinksum.dtd new file mode 100644 index 0000000..46d83d9 --- /dev/null +++ b/dtds/olink/olinksum.dtd @@ -0,0 +1,36 @@ +<!-- $Id: olinksum.dtd,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ + + DTD for OLINK Summary Information + + Common declaration: + + <!DOCTYPE div + PUBLIC "-//Norman Walsh//DTD DocBook OLink Summary V1.1//EN"> +--> + +<!ENTITY % commonatts +" type CDATA #IMPLIED + name CDATA #IMPLIED + href CDATA #IMPLIED + id ID #IMPLIED + label CDATA #IMPLIED + arch CDATA #IMPLIED + conformance CDATA #IMPLIED + os CDATA #IMPLIED + revision CDATA #IMPLIED + userlevel CDATA #IMPLIED + vendor CDATA #IMPLIED"> + +<!ELEMENT div - - (ttl, obj*, div*)> +<!ATTLIST div %commonatts;> + +<!ELEMENT obj - - (ttl)> +<!ATTLIST obj %commonatts;> + +<!ELEMENT ttl - - (#PCDATA|tt|it|sub|sup|qt)*> + +<!ELEMENT tt - - (#PCDATA)> <!-- typewriter (courier) --> +<!ELEMENT it - - (#PCDATA)> <!-- italics --> +<!ELEMENT sub - - (#PCDATA)> <!-- subscript --> +<!ELEMENT sup - - (#PCDATA)> <!-- superscript --> +<!ELEMENT qt - - (#PCDATA)> <!-- quote --> diff --git a/frames/ChangeLog b/frames/ChangeLog new file mode 100644 index 0000000..bace2af --- /dev/null +++ b/frames/ChangeLog @@ -0,0 +1,5 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * README, docbook.css, docbook.js, frames.dsl, frames.htm, navbar.htm: + New file. + diff --git a/frames/README b/frames/README new file mode 100644 index 0000000..81a0096 --- /dev/null +++ b/frames/README @@ -0,0 +1,76 @@ +README for the DocBook Stylesheets Frame Support + +Introduction +------------ + +Support for frames is a common request. Supporting frames with +a stylesheet that builds a frames-only version of a document has +never been very appealing to me, so I haven't bothered. (The +main problem is that this approach doesn't help solve the +difficult problem of the navigation frame.) + +Recent changes to the stylesheets have made another approach +practical. The files in this directory provide frames support +using a set of techniques that require almost no modification +to the HTML. The single required change is a link to a CSS +stylesheet. + +One benefit of this technique is that I can imaging framed and +non-framed versions of a document using exactly the same files +(with symbolic links, or something). The only difference +between the two versions would be the CSS stylesheet applied. + +The downside to this technique is that it requires a fairly modern +browser. In order for this to work, your browser must support: + + - Frames + - Dynamic HTML + - CSS + +At present, only IE 4.01SP1 (or later, presumably) is supported. +In particular, Netscape is not supported. + + ************************************************************* + * I tried for several days to make this implementation work * + * in Netscape. As near as I can tell, Netscape through * + * version 4.5 simply does not have enough power in its * + * object model to make this practical. If you can make it * + * work, I'd be delighted to include support for Netscape, * + * but I'm not going to spend anymore time on it in the near * + * future. * + ************************************************************* + +I'm really disappointed that I can't get this working under some +browser other than IE. + +Installation +------------ + +1. Create a directory to hold your framed document +2. Copy docbook.css, docbook.js, *.htm, and the ../images/toc-*.gif images + into that directory. +3. Process your document with the frames.dsl stylesheet (or an extension + thereof). +4. Fire up your browser and point it at frames.htm. If your document isn't + a "<book>", you'll have to edit frames.htm to make the body frame load + correctly the first time. + +Warranty +-------- + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER +CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Contacting the Author +--------------------- + +These stylesheets are maintained by Norman Walsh, <ndw@nwalsh.com>. + +The best way to reach norm is by email. You will find additional +contact information at http://nwalsh.com/~ndw/ diff --git a/frames/docbook.css b/frames/docbook.css new file mode 100644 index 0000000..0f90516 --- /dev/null +++ b/frames/docbook.css @@ -0,0 +1,12 @@ +.NAVHEADER { display: none } +.NAVFOOTER { display: none } +.TOC { display: none } + +.NAVTOC { margin-left: 15; + display: none } + +.NAVBTN { font-size: 10pt } + +.TOCTITLE { font-size: 10pt; + color: blue; + text-decoration: underline; } diff --git a/frames/docbook.js b/frames/docbook.js new file mode 100644 index 0000000..9e2f4ce --- /dev/null +++ b/frames/docbook.js @@ -0,0 +1,86 @@ +function toggleDiv(id) { + // Find element with ID "id" and toggle its display property. + // By convention, the ID of the corresponding +/- image is "${id}IMG". + var div = eval("document.all." + id); + var img = eval("document.all." + id + "IMG"); + var display = div.style.display; + + if (display != "block") { + div.style.display = "block"; + img.src = "toc-minus.gif"; + } else { + div.style.display = "none"; + img.src = "toc-plus.gif"; + } +} + +function link_href(rel) { + // Find the LINK element (in the body document) with the specified REL + // and return its HREF. Return "" if no such LINK can be found. + var body = parent.frames[1].document; + var links = body.all.tags("LINK"); + for (i=0; i<links.length; i++) { + if (links(i).getAttribute("REL") == rel) { + return links(i).getAttribute("HREF"); + } + } + + return ""; +} + +function load_body(href) { + // Change the body frame to the specified href. Update the + // navigation bar. We use the setTimeout() trick to give the browser + // a chance to load the document... + var bodyframe = parent.frames[1]; + if (href != "") { + bodyframe.location = href; + setTimeout('reset_links()', 50); + } +} + +function goto_link(rel) { + // Change the body frame to the specified LINK document. + var href = link_href(rel); + load_body(href); +} + +function link_on(rel) { + // Turn on the link + navbar = parent.frames[2].document; + navbar.all[rel].style.color = "black"; +} + +function link_off(rel) { + // Turn off the link + navbar = parent.frames[2].document; + navbar.all[rel].style.color = "gray"; +} + +function set_link(rel) { + // Set link on if there's somewhere to go, off otherwise + link_off(rel); + + if (link_href(rel) != "") { + link_on(rel); + } +} + +function set_links() { + // Set 'em all + set_link("HOME"); + set_link("UP"); + set_link("PREVIOUS"); + set_link("NEXT"); +} + +function reset_links() { + // Reset the links after a load. Make sure we wait until the + // document is loaded. + var body = parent.frames[1].document; + if (body.readyState == 'complete') { + set_links(); + } else { + setTimeout('reset_links()', 100); + } +} diff --git a/frames/frames.dsl b/frames/frames.dsl new file mode 100644 index 0000000..c5d9ce2 --- /dev/null +++ b/frames/frames.dsl @@ -0,0 +1,131 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification use="docbook"> +<style-specification-body> + +(define %stylesheet-version% + "Modular DocBook HTML Frames Stylesheet version 1.0") + +(define %stylesheet% "docbook.css"); + +(root + (make sequence + (process-children) + (with-mode manifest + (process-children)) + (make-dhtml-toc))) + +(define (make-dhtml-toc) + (make entity + system-id: "toc.htm" + (make element gi: "HTML" + (make element gi: "HEAD" + (make element gi: "TITLE" (literal "DocBook TOC")) + ($standard-html-header$) + (make element gi: "SCRIPT" + attributes: '(("SRC" "docbook.js")) + (empty-sosofo))) + (make element gi: "BODY" + (make element gi: "DIV" + (with-mode dhtmltoc + (process-children))))))) + +(define (dhtml-toc-entry nd gilist) + (let* ((subdivnodes (node-list-filter-by-gi (children nd) gilist)) + (subdivs (and (> (node-list-length subdivnodes) 0) + (not (node-list=? nd (sgml-root-element))))) + (imgsrc (if subdivs + "toc-plus.gif" + "toc-blank.gif")) + (imgatt (list (list "SRC" imgsrc) + (list "BORDER" "0") + (list "ID" (string-append (generate-anchor) "IMG")))) + (span (if subdivs + (make element gi: "SPAN" + attributes: (list + (list "CLASS" "TOGGLE") + (list "onClick" + (string-append + "toggleDiv('" + (generate-anchor) + "')"))) + (make empty-element gi: "IMG" + attributes: imgatt)) + (make element gi: "SPAN" + attributes: '(("CLASS" "TOGGLE")) + (make empty-element gi: "IMG" + attributes: imgatt))))) + (if (node-list=? nd (sgml-root-element)) + (make sequence + (make element gi: "NOBR" + (make element gi: "SPAN" + attributes: (list ;(list "HREF" (href-to (current-node))) + (list "onClick" (string-append + "load_body(\"" + (href-to (current-node)) + "\")")) + (list "CLASS" "TOCTITLE")) + (element-title-sosofo (current-node)))) + (make element gi: "DIV" + (process-children))) + (make sequence + (make element gi: "NOBR" + span + (make element gi: "SPAN" + attributes: (list ;(list "HREF" (href-to (current-node))) + (list "onClick" (string-append + "load_body(\"" + (href-to (current-node)) + "\")")) + (list "CLASS" "TOCTITLE")) + (element-title-sosofo (current-node)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" "NAVTOC") + (list "ID" (generate-anchor))) + (process-children)))))) + +(mode dhtmltoc + (default (empty-sosofo)) + + (element set (dhtml-toc-entry (current-node) + (list (normalize "book")))) + + (element book (dhtml-toc-entry (current-node) + (list (normalize "part") + (normalize "preface") + (normalize "chapter") + (normalize "appendix") + (normalize "reference")))) + + (element preface (dhtml-toc-entry (current-node) + (list (normalize "sect1")))) + + (element part (dhtml-toc-entry (current-node) + (list (normalize "preface") + (normalize "chapter") + (normalize "appendix") + (normalize "reference")))) + + (element chapter (dhtml-toc-entry (current-node) + (list (normalize "sect1")))) + + (element appendix (dhtml-toc-entry (current-node) + (list (normalize "sect1")))) + + (element sect1 (dhtml-toc-entry (current-node) '())) + + (element reference (dhtml-toc-entry (current-node) + (list (normalize "refentry")))) + + (element refentry (dhtml-toc-entry (current-node) '())) +) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/frames/frames.htm b/frames/frames.htm new file mode 100644 index 0000000..85a607a --- /dev/null +++ b/frames/frames.htm @@ -0,0 +1,19 @@ +<html> +<head> +<title>Frames Example</title> +<LINK REL="STYLESHEET" TYPE="text/css" HREF="docbook.css"> +</head> +<frameset COLS="20%,*"> + <frame SRC="toc.htm" NAME="TOC"> + <frameset ROWS="*,25"> + <frame SRC="book1.htm" NAME="BODY"> + <frame SRC="navbar.htm" NAME="NAV" frameborder="no" + marginheight=0 marginwidth=10 scrolling="no" > + </frameset> +<noframes> +<body> +Your browser does not support frames. +</body> +</noframes> +</frameset> +</html>
\ No newline at end of file diff --git a/frames/navbar.htm b/frames/navbar.htm new file mode 100644 index 0000000..2fd6529 --- /dev/null +++ b/frames/navbar.htm @@ -0,0 +1,31 @@ +<html> +<head> +<title>Navigation</title> +<script language="JScript" src="docbook.js"></script> +<LINK REL="STYLESHEET" TYPE="text/css" HREF="docbook.css"> +</head> +<body onload="set_links()" bgcolor="#C0C0C0"> +<div class="NAVBAR"> +<table width="100%" border=0 cellpadding=0 cellspacing=0> +<tr> + <td width="10%" align="left"> + <span class="NAVBTN" id="HOME" + onClick='goto_link("HOME")'>Home</span> + </td> + <td width="40%" align="left"> + <span class="NAVBTN" id="UP" + onClick='goto_link("UP")'>Up</span> + </td> + <td width="40%" align="right"> + <span class="NAVBTN" id="PREVIOUS" + onClick='goto_link("PREVIOUS")'>Prev</span> + </td> + <td width="10%" align="right"> + <span class="NAVBTN" id="NEXT" + onClick='goto_link("NEXT")'>Next</span> + </td> +</tr> +</table> +</div> +</body> +</html> diff --git a/html/ChangeLog b/html/ChangeLog new file mode 100644 index 0000000..187f25e --- /dev/null +++ b/html/ChangeLog @@ -0,0 +1,349 @@ +2004-10-10 <petere78@users.sourceforge.net> + + * dbhtml.dsl, dbparam.dsl, dbttlpg.dsl: Support for specifying a system ID for the HTML output documents, required + for better parsing in contemporary browsers. A default system ID is set + if %html40% is true. + +2004-10-09 <petere78@users.sourceforge.net> + + * docbook.dsl: New Bulgarian translation by Viktor Vasilev (SF patch #1040075) + +2004-09-23 <petere78@users.sourceforge.net> + + * dbprocdr.dsl: Add CSS decoration of procedure steps (RFE #1033197) + +2004-09-17 <petere78@users.sourceforge.net> + + * docbook.dsl: Bosnian translation by Kemal Skripic + +2004-09-14 <petere78@users.sourceforge.net> + + * dbinline.dsl: Fix for bug #860398: Change uses of $var-seq$ to something more appropriate. + +2004-07-11 <nyraghu@users.sourceforge.net> + + * version.dsl: Closes Bug 912831: the last character of VERSION was being cut off. + +2003-05-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl: HTML attribs for comments variablized for maintenance. + +2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcompon.dsl: Finding the subtitle for a component should use the parent title if + set; this is consistent with how the title is already set; + closes SF bug 613773. + +2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbpi.dsl: Ensure dbhtml-findvalue can handle the pi-field-list being a non-pair, + which may occur in some poorly formed dbhtml PIs; returns #f in this + case. + +2003-04-27 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcompon.dsl: Simplify some code, no functional changes + +2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcallou.dsl, dbparam.dsl: callout graphics and admonition graphics, if needed, share a single + variable, %stock-graphics-extension% -- "stock" here referring to + standard, stock images, e.g., not per document images; this closes + Debian Bug#187429 + +2003-04-12 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbadmon.dsl: VALIGN should be MIDDLE, not CENTER; closes Debian Bug#187569 + +2003-04-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dblists.dsl: back out my last change; there are 4 places taht use this and until I + understand how varlistentry-term-too-long? is supposed to work at all + I better not mess with it + + * dblists.dsl: termlength in varlist is measurement-to-length, not string->number + +2003-03-25 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * db31.dsl, dbblock.dsl, dbcompon.dsl, dbgraph.dsl, dbqanda.dsl, dbsect.dsl, docbook.dsl: + move data from db31 into its proper component files + +2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: Don't hardcode DSSSL file list, use $(wildcard *.dsl); clean is cleaner + +2003-02-12 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * db31.dsl, dbhtml.dsl, dbinline.dsl, dbttlpg.dsl: Deprecate TT; use CODE, KBD, SAMP, or VAR instead. + + acronym make's use of HTML4's ACRONYM element if %html40% + + abbrev make's use of HTML4's ABBR element if %html40% + + * dbparam.dsl: Emit a HTML 4.0.1 doctype by default if %html40%, this seems like a + good idea. + + Update %spacing-paras% and %html40% docs a bit, without changing their + settings. + +2003-02-11 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbtable.dsl: If %html40%, create col elements representing colspecs (implied or + explicit), and don't emit widths on each and every cell. + + If %html40%, set the tbody valign properly. + + If %html40%, allow relative column sizes such as "1*", thus we're not + emitting 50% when we mean 1* (out of 1*, 1*); the effect is that we're + not forcing pgwide if it's not turned on. + + Don't set valign on entries, set them on rows (unless they really are + set on the entries). + + Some rewriting for speed/efficiency (doens't seem to make much + difference in my timing testing though) + +2003-02-09 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbtable.dsl: Improve table rendering using frame and border attributes on HTML + tables, conditional on HTML4 support being on. + + The following cases in table.006.xml are now fixed: outer edit (table + frame but no rowsep nor colseps); rows (frame is topbot, rowsep but no + colsep); columns; tic tac toc (no frame, colsep and rowsep). + + Note we still have no way (yet) to override colsep/rowsep in either + colspec or in the individual rows, but I'm working on colspec -> + colgroup. + +2003-02-07 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl: move the anchor closer to the content in informal-objects; no way to + get around empty A element in this case + + * dbsect.dsl, dbttlpg.dsl: "<a></a>title" changes to "<a>title</a>" -- weblint says we should + avoid empty A elements + + * dbtable.dsl: fix a div-by-zero error identified in informaltable.015.xml; would + cause loss of a table header column in some cases + +2003-01-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl: formal and informal objects reset the processing mode, this closes + Debian#79432f; so <bookinfo><productname> is still in special mode, + but <bookinfo><legalnotice><productname> is not; test is legalnotice.001.xml + +2003-01-20 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbgraph.dsl: correct this error: html/dbgraph.dsl:68:1:E: 1st argument for + primitive "append" of wrong type: "#<unknown object 146207544>" not a + list, fix and report from Christopher B. Browne + +2003-01-15 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbadmon.dsl, dbautoc.dsl, dbbibl.dsl, dbblock.dsl, dbcallou.dsl, dbcompon.dsl, dbdivis.dsl, dbefsyn.dsl, dbfootn.dsl, dbgloss.dsl, dbgraph.dsl, dbhtml.dsl, dbindex.dsl, dbinfo.dsl, dbinline.dsl, dblink.dsl, dblists.dsl, dblot.dsl, dbmath.dsl, dbmsgset.dsl, dbprocdr.dsl, dbrfntry.dsl, dbsect.dsl, dbsynop.dsl, dbtable.dsl, dbtitle.dsl, dbttlpg.dsl, dbverb.dsl, docbook.dsl: + update docbook URL to http://docbook.sourceforge.net/projects/dsssl/; + N.B.: credit for the group option and repeating goes to John Daily + + * dblink.dsl: xref to varlistentry using the term, patch from Jens Emmerich; closes + bug 520561 + + * dbsynop.dsl: Patch #562401 <group choice="opt" rep="repeat">, elipsis should be + outside of group, reference test cmdsynopsis.003 + +2003-01-14 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl: define a $remark$ function, unifying comment and remark element + rendering; remarks within paras are now rendering using a span rather + than p so they mark up as inline text decoration + +2002-12-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl, dbparam.dsl: %epigraph-start-col% and %epigraph-content-col% allows customization + of epigraph positioning; %blockquote-start-col% and + %blockquote-end-col% parameters allows customization of the whitespace + around blockquote + +2002-06-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbbibl.dsl, dbttlpg.dsl: Fix bug #502337: remove 'by' from copyright statements + +2002-05-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbttlpg.dsl: Make sure email addresses in info elements are links + +2002-05-12 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbttlpg.dsl: Bug #494693: bad formalpara formatting on title pages + + * dbverb.dsl: Bugs #429663 and #474328 fixed (allow external linespecific content to be indented and numbered). Eight bit or unicode external linespecific content may be problematic though. + +2002-05-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbgraph.dsl: Bug #448732: make image-library work with imagedata + + * dblink.dsl: Allow xref to refnamediv + +2002-05-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbbibl.dsl: Fix broken style attribute on biblioentries + +2002-04-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbefsyn.dsl: Format synopsis elements correctly outside of classsynopsis + +2002-04-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl, dbadmon.dsl, dbblock.dsl, dbcompon.dsl, dbdivis.dsl, dbgloss.dsl, dbindex.dsl, dblists.dsl, dbrfntry.dsl, dbsect.dsl, dbtable.dsl, dbttlpg.dsl: + Make sure named anchors are closed + +2002-03-24 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: add a clean rule here + +2002-03-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbfootn.dsl: Fix footnote bugs (Adam, please double-check) + +2002-03-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbefsyn.dsl: Support freestanding {method,field,constructor,destructor}synopsis + +2002-03-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbfootn.dsl: footnotes go in a CSS class "footnote"; reduce code, additional modularity -- to change footnote rendering, + you just have to provide a different "$footnote-literal$" procedure + +2002-02-22 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblink.dsl: Add element-page-number-sosofo back in; always produce "???" + +2002-02-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblink.dsl: Remove bogus page-number rules + +2002-01-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbindex.dsl: Wrap DIVs around index lists + +2001-12-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl, dbadmon.dsl, dbblock.dsl, dbcompon.dsl, dbdivis.dsl, dbgloss.dsl, dbindex.dsl, dblists.dsl, dbrfntry.dsl, dbsect.dsl, dbttlpg.dsl: + Make anchors empty so that they don't imply style for the things they wrap + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dsl: Bug #462406 legalnotice-link breaks HTML manifest + +2001-11-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbsect.dsl: Patch #473116: Section levels + +2001-11-18 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbparam.dsl: Bug #482355: use legalnotice id when use-id-as-filename is true + +2001-11-14 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dsl: Added Basque, Nynorsk, Ukranian, and Xhosa + +2001-11-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbinline.dsl: Support pubwork=article on citetitle + +2001-10-13 Jirka Kosek <kosek@users.sourceforge.net> + + * dbinline.dsl: Fixed bug #470840 - added support for methodname. + +2001-10-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbverb.dsl: Support linenumbering attribute on verbatim environments + +2001-09-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbcallou.dsl: Bug #449494: make callouts work even if they appear on the last line of a verbatim environment + +2001-09-23 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: ImageData should use the image function from dbgraph.dsl + + * dbgraph.dsl: Patch #421990: support width and depth attributes on graphics + + * dbverb.dsl: Patch #461901, make %fix-para-wrappers% affect verbatim + +2001-09-18 Nik Clayton <nikclayton@users.sourceforge.net> + + * dbcompon.dsl, dbparam.dsl: Add $generate-article-lot-list$, initially empty, which controls what + whether or not a list of titles is generated for articles. + + Currently HTML only. + +2001-08-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Fix XML/SGML discrepancy wrt normalization of notation names; move some common stuff into dbcommon + +2001-08-25 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbinline.dsl: Fix erroneous literals + + * dbsect.dsl: Bug #451005: no id anchor for bridgehead + +2001-08-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbinline.dsl, dbparam.dsl: Support 'bold' and 'strong' roles on emphasis in the expected way, added %{emphasis,phrase}-propagates-style% parameters + +2001-07-05 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbautoc.dsl, dbhtml.dsl: Patch #420730, use dingbat-sosofo instead of literal to create emdash + + * dbnavig.dsl: Patch #418401, add accesskey attributes to HTML navigation + + * dbparam.dsl: Patch #420012, Add colon to content-title-end-punct + +2001-07-04 <uid48421@users.sourceforge.net> + + * docbook.dsl: Added Afrikaans and Turkish + +2001-05-11 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dsl: Support Serbian and Traditional Chinese + +2001-05-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbprocdr.dsl: Support links to procedures and steps + +2001-05-03 Jirka Kosek <kosek@users.sourceforge.net> + + * dbinline.dsl: Attributes marked up by <sgmltag> are now in monospace (same as in XSL and print DSSSL). + +2001-04-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbblock.dsl: Output anchors for formalparas with IDs + + * dbinline.dsl: Bug #417697: workaround Netscape limitation with trade named entity. + +2001-04-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbbibl.dsl: Make sure anchors are produced for bibliomixed elements + +2001-04-18 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbinline.dsl, dbparam.dsl: Bug #413982, easy support for man page CGI links on citerefentry + +2001-04-16 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbnavig.dsl: Added summary attribute to navigation tables + +2001-04-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: New file. + +2001-04-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Fix bug 412548, allow WMF in media objects + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, catalog, db31.dsl, dbadmon.dsl, dbautoc.dsl, dbbibl.dsl, dbblock.dsl, dbcallou.dsl, dbchunk.dsl, dbcompon.dsl, dbdivis.dsl, dbefsyn.dsl, dbfootn.dsl, dbgloss.dsl, dbgraph.dsl, dbhtml.dsl, dbindex.dsl, dbinfo.dsl, dbinline.dsl, dblink.dsl, dblists.dsl, dblot.dsl, dbmath.dsl, dbmsgset.dsl, dbnavig.dsl, dbparam.dsl, dbpi.dsl, dbprocdr.dsl, dbrfntry.dsl, dbsect.dsl, dbsynop.dsl, dbtable.dsl, dbtitle.dsl, dbttlpg.dsl, dbverb.dsl, docbook.dsl, version.dsl: + New file. + diff --git a/html/XREF b/html/XREF new file mode 100644 index 0000000..3ec54e8 --- /dev/null +++ b/html/XREF @@ -0,0 +1,2 @@ +Symbol Defined In Used In +================== ============================= ============================= diff --git a/html/catalog b/html/catalog new file mode 100644 index 0000000..f5ce23a --- /dev/null +++ b/html/catalog @@ -0,0 +1,3 @@ +CATALOG "../catalog" + + diff --git a/html/dbadmon.dsl b/html/dbadmon.dsl new file mode 100644 index 0000000..06834f2 --- /dev/null +++ b/html/dbadmon.dsl @@ -0,0 +1,171 @@ +;; $Id: dbadmon.dsl,v 1.5 2003/04/12 17:30:56 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================ ADMONITIONS ============================= + +(define ($graphical-admonition$) + (let* ((adm (current-node)) + (id (attribute-string (normalize "id"))) + (title (select-elements (children adm) + (normalize "title"))) + (title? (not (node-list-empty? title))) + (adm-title (if title? + (with-mode title-sosofo-mode + (process-node-list (node-list-first title))) + (literal (gentext-element-name adm)))) + (gr-cell (make element gi: "TD" + attributes: (list + (list "WIDTH" + ($admon-graphic-width$)) + (list "ALIGN" "CENTER") + (list "VALIGN" "TOP")) + (make empty-element gi: "IMG" + attributes: (list + (list "SRC" + (root-rel-path + ($admon-graphic$))) + (list "HSPACE" "5") + (list "ALT" + (gentext-element-name adm)))))) + (ttl-cell (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "MIDDLE")) + (make element gi: "B" adm-title))) + (body-cell (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP")) + (process-children)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi adm))) + (if id + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (make element gi: "TABLE" + attributes: (list (list "CLASS" (gi)) + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (if title? + (make sequence + (make element gi: "TR" + gr-cell + ttl-cell) + (make element gi: "TR" + (make element gi: "TD" + (make entity-ref name: "nbsp")) + body-cell)) + (make sequence + (make element gi: "TR" + gr-cell + body-cell))))))) + +(define ($admonition$) + (let ((id (attribute-string (normalize "id")))) + (if %admon-graphics% + ($graphical-admonition$) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ;; The DIV isn't strictly necessary, of course, but it + ;; is consistent with the graphical-admonition case. + (make element gi: "BLOCKQUOTE" + attributes: (list + (list "CLASS" (gi))) + (if id + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + (process-children)))))) + +(define ($admonpara$) + (let* ((title (select-elements + (children (parent (current-node))) (normalize "title"))) + (has-title (not (node-list-empty? title))) + (adm-title (if has-title + (make sequence + (with-mode title-sosofo-mode + (process-node-list (node-list-first title))) + (literal (gentext-label-title-sep + (gi (parent (current-node)))))) + (literal + (gentext-element-name + (gi (parent (current-node)))) + (gentext-label-title-sep + (gi (parent (current-node)))))))) + (make element gi: "P" + (if (and (not %admon-graphics%) (= (child-number) 1)) + (make element gi: "B" + adm-title) + (empty-sosofo)) + (process-children)))) + +(element important ($admonition$)) +(element (important title) (empty-sosofo)) +(element (important para) ($admonpara$)) +(element (important simpara) ($admonpara$)) +(element note ($admonition$)) +(element (note title) (empty-sosofo)) +(element (note para) ($admonpara$)) +(element (note simpara) ($admonpara$)) +(element tip ($admonition$)) +(element (tip title) (empty-sosofo)) +(element (tip para) ($admonpara$)) +(element (tip simpara) ($admonpara$)) + +;; perils are given special treatment by generating a centered title +;; and throwing a box around them +;; +(define ($peril$) + (let* ((title (select-elements + (children (current-node)) (normalize "title"))) + (has-title (not (node-list-empty? title))) + (adm-title (if has-title + (make sequence + (with-mode title-sosofo-mode + (process-node-list (node-list-first title)))) + (literal + (gentext-element-name + (gi (current-node)))))) + (id (attribute-string (normalize "id")))) + (if %admon-graphics% + ($graphical-admonition$) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ;; The DIV isn't strictly necessary, of course, but it + ;; is consistent with the graphical-admonition case. + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (make element gi: "TABLE" + attributes: (list + (list "CLASS" (gi)) + (list "BORDER" "1") + (list "WIDTH" ($table-width$))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "CENTER")) + (make element gi: "B" + (if id + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + adm-title))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (process-children)))))))) + +(element caution ($peril$)) +(element warning ($peril$)) +(element (caution title) (empty-sosofo)) +(element (warning title) (empty-sosofo)) diff --git a/html/dbautoc.dsl b/html/dbautoc.dsl new file mode 100644 index 0000000..c2f2b9b --- /dev/null +++ b/html/dbautoc.dsl @@ -0,0 +1,128 @@ +;; $Id: dbautoc.dsl,v 1.3 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================== TABLE OF CONTENTS ========================= + +;; Returns the depth of auto TOC that should be made at the nd-level +(define (toc-depth nd) + (if (string=? (gi nd) (normalize "book")) + 3 + 1)) + +(define (toc-entry tocentry) + (make element gi: "DT" + (make sequence + (if (equal? (element-label tocentry) "") + (empty-sosofo) + (make sequence + (literal (element-label tocentry)) + (literal (gentext-label-title-sep + (gi tocentry))))) + + ;; If the tocentry isn't in its own + ;; chunk, don't make a link... + (if (and #f (not (chunk? tocentry))) + (element-title-sosofo tocentry) + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to tocentry))) + (element-title-sosofo tocentry))) + + ;; Maybe annotate... + (if (and %annotate-toc% + (equal? (gi tocentry) (normalize "refentry"))) + (make sequence + (dingbat-sosofo "nbsp"); + (dingbat-sosofo "em-dash"); + (dingbat-sosofo "nbsp"); + (toc-annotation tocentry)) + (empty-sosofo))))) + +(define (toc-annotation tocentry) + ;; only handles refentry at the moment + (let* ((refnamediv (select-elements (children tocentry) + (normalize "refnamediv"))) + (refpurpose (select-elements (children refnamediv) + (normalize "refpurpose")))) + (process-node-list (children refpurpose)))) + +(define (build-toc nd depth #!optional (chapter-toc? #f) (first? #t)) + (let ((toclist (toc-list-filter + (node-list-filter-by-gi (children nd) + (append (division-element-list) + (component-element-list) + (section-element-list))))) + (wrappergi (if first? "DIV" "DD")) + (wrapperattr (if first? '(("CLASS" "TOC")) '()))) + (if (or (<= depth 0) + (node-list-empty? toclist) + (and chapter-toc? + (not %force-chapter-toc%) + (<= (node-list-length toclist) 1))) + (empty-sosofo) + (make element gi: wrappergi + attributes: wrapperattr + (make element gi: "DL" + (if first? + (make element gi: "DT" + (make element gi: "B" + (literal (gentext-element-name (normalize "toc"))))) + (empty-sosofo)) + (let loop ((nl toclist)) + (if (node-list-empty? nl) + (empty-sosofo) + (sosofo-append + (toc-entry (node-list-first nl)) + (build-toc (node-list-first nl) + (- depth 1) chapter-toc? #f) + (loop (node-list-rest nl)))))))))) + +;; Print the LOT entry +(define (lot-entry tocentry) + (make element gi: "DT" + (make sequence + (if (equal? (element-label tocentry) "") + (empty-sosofo) + (make sequence + (literal (element-label tocentry)) + (literal (gentext-label-title-sep + (gi tocentry))))) + + ;; If the tocentry isn't in its own + ;; chunk, don't make a link... + (if (and #f (not (chunk? tocentry))) + (element-title-sosofo tocentry) + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to tocentry))) + (element-title-sosofo tocentry)))))) + +;; Build a LOT starting at nd for all the lotgi's it contains. +;; The optional arguments are used on recursive calls to build-toc +;; and shouldn't be set by the initial caller... +;; + +(define (build-lot nd lotgi) + (let* ((lotlist (select-elements (descendants nd) + (normalize lotgi)))) + (if (node-list-empty? lotlist) + (empty-sosofo) + (make element gi: "DIV" + attributes: '(("CLASS" "LOT")) + (make element gi: "DL" + attributes: '(("CLASS" "LOT")) + (make element gi: "DT" + (make element gi: "B" + (literal ($lot-title$ + (gi (node-list-first lotlist)))))) + (let loop ((lote lotlist)) + (if (node-list-empty? lote) + (empty-sosofo) + (make sequence + (lot-entry (node-list-first lote)) + (loop (node-list-rest lote)))))))))) diff --git a/html/dbbibl.dsl b/html/dbbibl.dsl new file mode 100644 index 0000000..daa8af6 --- /dev/null +++ b/html/dbbibl.dsl @@ -0,0 +1,997 @@ +;; $Id: dbbibl.dsl,v 1.5 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ......................... BIBLIOGRAPHY PARAMS ......................... + +;; these should be in dbparam... +(define %biblsep% ", ") +(define %biblend% ".") +(define bibltable #f) + +(define (bibliography-table) + (let* ((bibliography (ancestor-member (current-node) + (list (normalize "bibliography")))) + (biblpi (dbhtml-value bibliography "bibliography-format"))) + (and (or bibltable (equal? biblpi "table")) + (not (equal? biblpi "list"))))) + +(define %biblioentry-in-entry-order% #t) + +;; .................... BIBLIOGRAPHY and BIBLIODIV ...................... + +(define (bibliography-content) + ;; Note that the code below works for both the case where the bibliography + ;; has BIBLIODIVs and the case where it doesn't, by the slightly subtle + ;; fact that if it does, then allentries will be (empty-node-list). + (let* ((allbibcontent (children (current-node))) + (prebibcontent (node-list-filter-by-not-gi + allbibcontent + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (allentries (node-list-filter-by-gi + allbibcontent + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (entries (if biblio-filter-used + (biblio-filter allentries) + allentries))) + (make sequence + (process-node-list prebibcontent) + (if (bibliography-table) + (make element gi: "TABLE" + attributes: '(("BORDER" "0")) + (process-node-list entries)) + (process-node-list entries))))) + +(element (book bibliography) + (let ((title (element-title-sosofo (current-node))) + (body (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + ($component-separator$) + ($component-title$) + (bibliography-content)))) + (html-document title body))) + +(element (article bibliography) + (let ((title (element-title-sosofo (current-node))) + (body (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + ($component-separator$) + ($component-title$) + (bibliography-content)))) + (html-document title body))) + +(element bibliography + ;; A bibliography that's inside something else...or root + (if (sgml-root-element? (current-node)) + (let ((title (element-title-sosofo (current-node))) + (body (make sequence + (make element gi: "A" + attributes: (list (list "NAME" + (element-id))) + (empty-sosofo)) + ($component-separator$) + ($component-title$) + (bibliography-content)))) + (html-document title body)) + (let* ((sect (ancestor-member (current-node) + (append (section-element-list) + (component-element-list)))) + (hlevel (+ (SECTLEVEL sect) 1)) + (helem (string-append "H" (number->string (+ hlevel 1))))) + (make sequence + (make element gi: helem + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (element-title-sosofo (current-node)))) + (bibliography-content))))) + +(element (bibliography title) (empty-sosofo)) + +(element bibliodiv + (let* ((allentries (node-list-filter-by-gi (children (current-node)) + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (entries (if biblio-filter-used + (biblio-filter allentries) + allentries))) + (if (and biblio-filter-used (node-list-empty? entries)) + (empty-sosofo) + (make sequence + ($section-separator$) + ($section-title$) + (if (bibliography-table) + (make element gi: "TABLE" + attributes: '(("BORDER" "0")) + (process-node-list entries)) + (process-node-list entries)))))) + +(element (bibliodiv title) (empty-sosofo)) + +;; ..................... BIBLIOGRAPHY ENTRIES ......................... + +(define (biblioentry-inline-sep node rest) + ;; Output the character that should separate inline node from rest + (cond + ((and (equal? (gi node) (normalize "title")) + (equal? (gi (node-list-first rest)) (normalize "subtitle"))) + (make element gi: "I" + (literal ": "))) + (else + (literal %biblsep%)))) + +(define (biblioentry-inline-end blocks) + ;; Output the character that should occur at the end of inline + (literal %biblend%)) + +(define (biblioentry-block-sep node rest) + ;; Output the character that should separate block node from rest + (empty-sosofo)) + +(define (biblioentry-block-end) + ;; Output the character that should occur at the end of block + (empty-sosofo)) + +(define (nontable-biblioentry + xreflabel leading-abbrev inline-children block-children) + (let ((has-leading-abbrev? + (not (or (node-list-empty? leading-abbrev) biblio-number)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (make element gi: "P" + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number + (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]") + (make entity-ref name: "nbsp")) + (empty-sosofo)) + + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-inline-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-inline-end block-children) + (biblioentry-inline-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl)))))) + + (make element gi: "DIV" + attributes: '(("CLASS" "BIBLIOENTRYBLOCK") + ("STYLE" "margin-left: 0.5in")) + (let loop ((nl block-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-block-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-block-end) + (biblioentry-block-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl))))))))) + +(define (table-biblioentry + xreflabel leading-abbrev inline-children block-children) + (let ((has-leading-abbrev? + (not (or (node-list-empty? leading-abbrev) biblio-number)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "10%")) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number + (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]")) + (make entity-ref name: "nbsp"))) + + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "90%")) + (make element gi: "P" + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-inline-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-inline-end block-children) + (biblioentry-inline-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl)))))) + + (let loop ((nl block-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-block-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-block-end) + (biblioentry-block-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl))))) + + (if (node-list-empty? block-children) + (empty-sosofo) + (make element gi: "P" + ;; get the table row spacing right + (empty-sosofo))))))) + +(element biblioentry + (let* ((expanded-children (expand-children + (children (current-node)) + (biblioentry-flatten-elements))) + (all-inline-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-inline-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-inline-elements) + expanded-children))) + (block-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-block-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-block-elements) + expanded-children))) + (leading-abbrev (if (equal? (normalize "abbrev") + (gi (node-list-first + all-inline-children))) + (node-list-first all-inline-children) + (empty-node-list))) + (inline-children (if (node-list-empty? leading-abbrev) + all-inline-children + (node-list-rest all-inline-children))) + (has-leading-abbrev? (not (node-list-empty? leading-abbrev))) + (xreflabel (if (or has-leading-abbrev? biblio-number) + #f + (attribute-string (normalize "xreflabel"))))) + (if (bibliography-table) + (table-biblioentry xreflabel leading-abbrev inline-children block-children) + (nontable-biblioentry xreflabel leading-abbrev inline-children block-children)))) + +(mode biblioentry-inline-mode + (element abbrev + (make sequence + (process-children))) + + (element affiliation + (let ((inline-children (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "address"))))) + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (process-node-list (node-list-first nl)) + (if (node-list-empty? (node-list-rest nl)) + (empty-sosofo) + (literal ", ")) + (loop (node-list-rest nl))))))) + + (element artpagenums + (make sequence + (process-children))) + + (element author + (make element gi: "SPAN" + attributes: '(("CLASS" "AUTHOR")) + (literal (author-list-string)))) + + (element authorgroup + (process-children)) + + (element authorinitials + (make sequence + (process-children))) + + (element collab + (let* ((nl (children (current-node))) + (collabname (node-list-first nl)) + (affil (node-list-rest nl))) + (make sequence + (process-node-list collabname) + (if (node-list-empty? affil) + (empty-sosofo) + (let loop ((nl affil)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (literal ", ") + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl))))))))) + + (element (collab collabname) + (process-children)) + + (element confgroup + (let ((inline-children (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "address"))))) + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (process-node-list (node-list-first nl)) + (if (node-list-empty? (node-list-rest nl)) + (empty-sosofo) + (literal ", ")) + (loop (node-list-rest nl))))))) + + (element contractnum + (process-children)) + + (element contractsponsor + (process-children)) + + (element contrib + (process-children)) + + (element copyright + ;; Just print the year(s) + (let ((years (select-elements (children (current-node)) + (normalize "year")))) + (process-node-list years))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (process-children))) + + (element corpname + (make sequence + (process-children))) + + (element date + (make sequence + (process-children))) + + (element edition + (make sequence + (process-children))) + + (element editor + (make element gi: "SPAN" + attributes: '(("CLASS" "EDITOR")) + (if (first-sibling?) + (make sequence + (literal (gentext-edited-by)) + (literal " ")) + (empty-sosofo)) + (literal (author-list-string)))) + + (element firstname + (make sequence + (process-children))) + + (element honorific + (make sequence + (process-children))) + + (element invpartnumber + (make sequence + (process-children))) + + (element isbn + (make sequence + (process-children))) + + (element issn + (make sequence + (process-children))) + + (element issuenum + (make sequence + (process-children))) + + (element lineage + (make sequence + (process-children))) + + (element orgname + (make sequence + (process-children))) + + (element othercredit + (make element gi: "SPAN" + attributes: '(("CLASS" "OTHERCREDIT")) + (literal (author-list-string)))) + + (element othername + (make sequence + (process-children))) + + (element pagenums + (make sequence + (process-children))) + + (element productname + (make sequence + ($charseq$) +; this is actually a problem since "trade" is the default value for +; the class attribute. we can put this back in in DocBook 5.0, when +; class becomes #IMPLIED +; (if (equal? (attribute-string "class") (normalize "trade")) +; (dingbat-sosofo "trademark") +; (empty-sosofo)) + )) + + (element productnumber + (make sequence + (process-children))) + + (element pubdate + (make sequence + (process-children))) + + (element publisher + (let ((pubname (select-elements (children (current-node)) + (normalize "publishername"))) + (cities (select-elements (descendants (current-node)) + (normalize "city")))) + (make sequence + (process-node-list pubname) + (if (node-list-empty? cities) + (empty-sosofo) + (literal ", ")) + (process-node-list cities)))) + + (element publishername + (make sequence + (process-children))) + + (element (publisher address city) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element pubsnumber + (make sequence + (process-children))) + + (element releaseinfo + (make sequence + (process-children))) + + (element seriesvolnums + (make sequence + (process-children))) + + (element subtitle + (make element gi: "I" + (process-children))) + + (element surname + (make sequence + (process-children))) + + (element title + (make element gi: "I" + (process-children))) + + (element titleabbrev + (make sequence + (process-children))) + + (element volumenum + (make sequence + (process-children))) + + (element (bibliomixed title) + (make element gi: "I" + (process-children))) + + (element (bibliomixed subtitle) + (make element gi: "I" + (process-children))) + + (element (biblioset title) + (let ((rel (case-fold-up + (inherited-attribute-string (normalize "relation"))))) + (cond + ((equal? rel "ARTICLE") (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote)))) + (else (make element gi: "I" + (process-children)))))) + + (element (bibliomset title) + (let ((rel (case-fold-up + (inherited-attribute-string (normalize "relation"))))) + (cond + ((equal? rel "ARTICLE") (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote)))) + (else (make element gi: "I" + (process-children)))))) +) + +(mode biblioentry-block-mode + (element abstract + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element (abstract title) + (make element gi: "P" + (make element gi: "B" + (process-children)))) + + (element address + ($linespecific-display$ %indent-address-lines% %number-address-lines%)) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element printhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (node-list-filter-by-gi + (descendants (current-node)) + (list (normalize "revremark") + (normalize "revdescription"))))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesinfo + ;; This is a nearly biblioentry recursively... + (let* ((expanded-children (expand-children + (children (current-node)) + (biblioentry-flatten-elements))) + (all-inline-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-inline-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-inline-elements) + expanded-children))) + (block-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-block-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-block-elements) + expanded-children))) + (inline-children all-inline-children)) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "P" + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-inline-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-inline-end block-children) + (biblioentry-inline-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl)))))) + + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (let loop ((nl block-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-block-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-block-end) + (biblioentry-block-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl))))))))) +) + +(define (nontable-bibliomixed + xreflabel leading-abbrev inline-children) + (let* ((has-leading-abbrev? (not (node-list-empty? leading-abbrev)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number + (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]") + (make entity-ref name: "nbsp")) + (empty-sosofo)) + + (with-mode biblioentry-inline-mode + (process-node-list inline-children)))))) + +(define (table-bibliomixed + xreflabel leading-abbrev inline-children) + (let* ((has-leading-abbrev? (not (node-list-empty? leading-abbrev)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "10%")) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number + (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]")) + (make entity-ref name: "nbsp"))) + + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "90%")) + (with-mode biblioentry-inline-mode + (process-node-list inline-children)))))) + +(element bibliomixed + (let* ((all-inline-children (children (current-node))) + (leading-abbrev (if (equal? (normalize "abbrev") + (gi (node-list-first + all-inline-children))) + (node-list-first all-inline-children) + (empty-node-list))) + (inline-children (if (node-list-empty? leading-abbrev) + all-inline-children + (node-list-rest all-inline-children))) + (has-leading-abbrev? (not (node-list-empty? leading-abbrev))) + (xreflabel (if (or has-leading-abbrev? biblio-number) + #f + (attribute-string (normalize "xreflabel"))))) + (if (bibliography-table) + (table-bibliomixed xreflabel leading-abbrev inline-children) + (nontable-bibliomixed xreflabel leading-abbrev inline-children)))) + +;; ....................... BIBLIOGRAPHY ELEMENTS ....................... + +;; These are element construction rules for bibliography elements that +;; may occur outside of a BIBLIOENTRY or BIBLIOMIXED. + +(element bibliomisc (process-children)) +(element bibliomset (process-children)) +(element biblioset (process-children)) +(element bookbiblio (process-children)) + +(element street ($charseq$)) +(element pob ($charseq$)) +(element postcode ($charseq$)) +(element city ($charseq$)) +(element state ($charseq$)) +(element country ($charseq$)) +(element phone ($charseq$)) +(element fax ($charseq$)) +(element otheraddr ($charseq$)) +(element affiliation ($charseq$)) +(element shortaffil ($charseq$)) +(element jobtitle ($charseq$)) +(element orgdiv ($charseq$)) +(element artpagenums ($charseq$)) + +(element author + (make sequence + (literal (author-list-string)))) + +(element authorgroup (process-children)) + +(element collab (process-children)) +(element collabname ($charseq$)) +(element authorinitials ($charseq$)) +(element confgroup (process-children)) +(element confdates ($charseq$)) +(element conftitle ($charseq$)) +(element confnum ($charseq$)) +(element confsponsor ($charseq$)) +(element contractnum ($charseq$)) +(element contractsponsor ($charseq$)) + +(element copyright + (make sequence + (literal (gentext-element-name (gi (current-node)))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + +(element year + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + +(element holder ($charseq$)) + +(element corpauthor + (make sequence + (literal (author-list-string)))) + +(element corpname ($charseq$)) +(element date ($charseq$)) +(element edition ($charseq$)) +(element editor ($charseq$)) +(element isbn ($charseq$)) +(element issn ($charseq$)) +(element invpartnumber ($charseq$)) +(element issuenum ($charseq$)) + +(element legalnotice ($semiformal-object$)) +(element (legalnotice title) (empty-sosofo)) + +(element modespec (empty-sosofo)) + +(element orgname ($charseq$)) + +(element othercredit + (make sequence + (literal (author-list-string)))) + +(element pagenums ($charseq$)) +(element contrib ($charseq$)) + +(element firstname ($charseq$)) +(element honorific ($charseq$)) +(element lineage ($charseq$)) +(element othername ($charseq$)) +(element surname ($charseq$)) + +(element printhistory (empty-sosofo)) + + (element productname + (make sequence + ($charseq$) +; this is actually a problem since "trade" is the default value for +; the class attribute. we can put this back in in DocBook 5.0, when +; class becomes #IMPLIED +; (if (equal? (attribute-string "class") (normalize "trade")) +; (dingbat-sosofo "trademark") +; (empty-sosofo)) + )) + +(element productnumber ($charseq$)) +(element pubdate ($charseq$)) +(element publisher (process-children)) +(element publishername ($charseq$)) +(element pubsnumber ($charseq$)) +(element releaseinfo (empty-sosofo)) +(element revision ($charseq$)) +(element revnumber ($charseq$)) +(element revremark ($charseq$)) +(element revdescription ($block-container$)) +(element seriesvolnums ($charseq$)) +(element volumenum ($charseq$)) + +(element (bookbiblio revhistory) ($book-revhistory$)) + +;; The (element (bookinfo revhistory)) construction rule is in dbinfo.dsl +;; It calls $book-revhistory$... +(define ($book-revhistory$) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + +(element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (node-list-filter-by-gi + (descendants (current-node)) + (list (normalize "revremark") + (normalize "revdescription"))))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + +(element (revision revnumber) (process-children-trim)) +(element (revision date) (process-children-trim)) +(element (revision authorinitials) (process-children-trim)) +(element (revision revremark) (process-children-trim)) diff --git a/html/dbblock.dsl b/html/dbblock.dsl new file mode 100644 index 0000000..966cd1c --- /dev/null +++ b/html/dbblock.dsl @@ -0,0 +1,306 @@ +;; $Id: dbblock.dsl,v 1.11 2003/05/28 16:48:47 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(element highlights ($block-container$)) + +(element revhistory ($book-revhistory$)) + +(element blockquote + (let ((id (element-id)) + (attrib (select-elements (children (current-node)) + (normalize "attribution"))) + (startc (list (list "WIDTH" %blockquote-start-col%))) + (endc (list (list "WIDTH" %blockquote-end-col%))) + (paras (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "attribution"))))) + (make sequence + (if id + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + + (if (node-list-empty? attrib) + (make element gi: "BLOCKQUOTE" + attributes: '(("CLASS" "BLOCKQUOTE")) + (process-children)) + (make element gi: "TABLE" + attributes: '(("BORDER" "0") + ("WIDTH" "100%") + ("CELLSPACING" "0") + ("CELLPADDING" "0") + ("CLASS" "BLOCKQUOTE")) + (make element gi: "TR" + (make element gi: "TD" + attributes: (append startc + '(("VALIGN" "TOP"))) + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: '(("VALIGN" "TOP")) + (process-node-list paras)) + (make element gi: "TD" + attributes: (append endc + '(("VALIGN" "TOP"))) + (make entity-ref name: "nbsp"))) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("COLSPAN" "2") + ("ALIGN" "RIGHT") + ("VALIGN" "TOP")) + (make sequence + (literal "--") + (process-node-list attrib))) + (make element gi: "TD" + attributes: endc + (make entity-ref name: "nbsp")))))))) + +(element epigraph + (let* ((attrib (select-elements (children (current-node)) + (normalize "attribution"))) + (startcol (list (list "WIDTH" %epigraph-start-col%))) + (contentcol (list (list "WIDTH" %epigraph-content-col%))) + (paras (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "attribution"))))) + (make element gi: "TABLE" + attributes: '(("BORDER" "0") + ("WIDTH" "100%") + ("CELLSPACING" "0") + ("CELLPADDING" "0") + ("CLASS" "EPIGRAPH")) + (make element gi: "TR" + (make element gi: "TD" + attributes: startcol + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: (append contentcol + '(("ALIGN" "LEFT") + ("VALIGN" "TOP"))) + (make element gi: "I" + (process-node-list paras)))) + (if (node-list-empty? attrib) + (empty-sosofo) + (make element gi: "TR" + (make element gi: "TD" + attributes: startcol + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: (append contentcol + '(("ALIGN" "RIGHT") + ("VALIGN" "TOP"))) + (make element gi: "I" + (process-node-list attrib)))))))) + +(element attribution ($charseq$)) + +(element (epigraph para) + (make element gi: "P" + (make element gi: "I" + (process-children-trim)))) + +(element para ($paragraph$)) +(element simpara ($paragraph$)) + +(element formalpara + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "P" + (if (attribute-string (normalize "id")) + (make element gi: "A" + attributes: (list + (list "NAME" + (attribute-string + (normalize "id")))) + (empty-sosofo)) + (empty-sosofo)) + (process-children)))) + +(element (formalpara title) ($runinhead$)) + +(element (formalpara para) + (process-children)) + +(element sidebar + (make element gi: "TABLE" + attributes: (list + (list "CLASS" (gi)) + (list "BORDER" "1") + (list "CELLPADDING" "5")) + (make element gi: "TR" + (make element gi: "TD" + ($semiformal-object$))))) + +(element (sidebar title) + (empty-sosofo)) + +(element abstract + (make element gi: "BLOCKQUOTE" + attributes: '(("CLASS" "ABSTRACT")) + ($semiformal-object$))) + +(element (abstract title) (empty-sosofo)) + +(element authorblurb ($block-container$)) + +(element ackno ($paragraph$)) + +(define ($inline-object$) + (process-children)) + +(define ($informal-object$ #!optional (rule-before? #f) (rule-after? #f)) + (let ((id (element-id))) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + + (if rule-before? + (make empty-element gi: "HR") + (empty-sosofo)) + + (if id + ;; empty A is a little evil but for instance you can't + ;; wrap TABLE within A + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + + ;; reset the mode to make processing of elements within an + ;; informal object not subject to whatever mode they would + ;; be in on the top level; e.g., + ;; bookinfo-legalnotice-productname distinguished from + ;; bookinfo-productname + (with-mode #f + (process-children)) + + (if rule-after? + (make empty-element gi: "HR") + (empty-sosofo)) + + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo))))) + +(define (object-title-after #!optional (node (current-node))) + (if (member (gi node) ($object-titles-after$)) + #t + #f)) + +(define (named-formal-objects) + (list (normalize "figure") + (normalize "table") + (normalize "example") + (normalize "equation"))) + +(define ($formal-object$ #!optional (rule-before? #f) (rule-after? #f)) + (let* ((nsep (gentext-label-title-sep (gi))) + (id (element-id)) + (title-inline-sosofo + (make sequence + (if (member (gi) (named-formal-objects)) + (make sequence + (literal (gentext-element-name (gi))) + (if (string=? (element-label) "") + (literal nsep) + (literal " " (element-label) nsep))) + (empty-sosofo)) + (with-mode title-mode + (process-node-list + (select-elements (children (current-node)) + (normalize "title")))))) + (title-sosofo (make element gi: "P" + (make element gi: "B" + title-inline-sosofo))) + + ;; reset the mode to make processing of elements within an + ;; formal object not subject to whatever mode they would be + ;; in on the top level; e.g., + ;; bookinfo-legalnotice-productname distinguished from + ;; bookinfo-productname + (object-sosofo (with-mode #f + (process-children)))) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + + (if rule-before? + (make empty-element gi: "HR") + (empty-sosofo)) + + (if id + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + + (if (object-title-after) + (make sequence + object-sosofo + title-sosofo) + (make sequence + title-sosofo + object-sosofo)) + + (if rule-after? + (make empty-element gi: "HR") + (empty-sosofo))))) + +(define ($semiformal-object$) + ;; semiformal means optional title... + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + ($informal-object$) + ($formal-object$))) + +(element example + ($formal-object$ %example-rules% %example-rules%)) + +(element (example title) (empty-sosofo)) ; don't show caption below example + +(element informalexample + ($informal-object$ %informalexample-rules% %informalexample-rules%)) + +(element informalfigure + ($informal-object$ %informalfigure-rules% %informalfigure-rules%)) + +(element (figure title) (empty-sosofo)) ; don't show caption below figure + +(element figure + ($formal-object$ %figure-rules% %figure-rules%)) + +(element informaltable + ($informal-object$ %informaltable-rules% %informaltable-rules%)) + +(element table + ($formal-object$ %table-rules% %table-rules%)) + +(element (table title) (empty-sosofo)) + +;; remark and comment use the same rendering +(define ($remark$) + (if %show-comments% + (let ((inpara (equal? (gi (parent (current-node))) (normalize "para"))) + (attrib '(("CLASS" "COMMENT")))) + (if inpara + (make element gi: "SPAN" + attributes: attrib + (process-children)) + (make element gi: "P" + attributes: attrib + (process-children)))) + (empty-sosofo))) + +(element comment ($remark$)) + +;; In DocBook V4.0 comment became remark +(element remark ($remark$)) + diff --git a/html/dbcallou.dsl b/html/dbcallou.dsl new file mode 100644 index 0000000..c3d1297 --- /dev/null +++ b/html/dbcallou.dsl @@ -0,0 +1,206 @@ +;; $Id: dbcallou.dsl,v 1.4 2003/04/26 18:36:22 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; The support provided below is a little primitive because there's no way +;; to do line-addressing in Jade. +;; +;; CO's are supported with the CO element or, in SCREENCO and +;; PROGRAMLISTINGCO only, AREAs. +;; +;; Notes on the use of AREAs: +;; +;; - Processing is very slow. Jade loops through each AREA for +;; every column on every line. +;; - Only the LINECOLUMN units are supported, and they are #IMPLIED +;; - If a COORDS only specifies a line, the %callout-default-col% will +;; be used for the column. +;; - If the column is beyond the end of the line, that will work OK, but +;; if more than one callout has to get placed beyond the end of the same +;; line, that doesn't work so well. +;; - Embedded tabs foul up the column counting. +;; - Embedded markup fouls up the column counting. +;; - Embedded markup with embedded line breaks fouls up the line counting. +;; - The callout bugs occur immediately before the LINE COLUMN specified. +;; - You can't point to an AREASET, that doesn't make any sense in HTML +;; since it would imply a one-to-many link +;; +;; There's still no support for a stylesheet drawing the callouts on a +;; GRAPHIC, and I don't think there ever will be. +;; + +(element areaspec (empty-sosofo)) +(element area (empty-sosofo)) +(element areaset (empty-sosofo)) + +(element co + ($callout-mark$ (current-node) #t)) + +(element programlistingco (process-children)) +(element screenco (process-children)) +(element graphicco (process-children)) + +(element (screenco screen) + ($callout-verbatim-display$ %indent-screen-lines% %number-screen-lines%)) + +(element (programlistingco programlisting) + ($callout-verbatim-display$ %indent-programlisting-lines% + %number-programlisting-lines%)) + +;; ---------------------------------------------------------------------- + +(define ($callout-bug$ conumber) + (let ((number (if conumber (format-number conumber "1") "0"))) + (if conumber + (if %callout-graphics% + (if (<= conumber %callout-graphics-number-limit%) + (make empty-element gi: "IMG" + attributes: (list (list "SRC" + (root-rel-path + (string-append + %callout-graphics-path% + number + %stock-graphics-extension%))) + (list "HSPACE" "0") + (list "VSPACE" "0") + (list "BORDER" "0") + (list "ALT" + (string-append + "(" number ")")))) + (make element gi: "B" + (literal "(" (format-number conumber "1") ")"))) + (make element gi: "B" + (literal "(" (format-number conumber "1") ")"))) + (make element gi: "B" + (literal "(??)"))))) + +(define ($callout-mark$ co anchor?) + ;; Print the callout mark for co + (let* ((id (attribute-string (normalize "id") co)) + (attr (if anchor? + (list (list "NAME" id)) + (list (list "HREF" (href-to co)))))) + (make element gi: "A" + attributes: attr + (if (equal? (gi co) (normalize "co")) + ($callout-bug$ (if (node-list-empty? co) + #f + (child-number co))) + (let ((areanum (if (node-list-empty? co) + 0 + (if (equal? (gi (parent co)) (normalize "areaset")) + (absolute-child-number (parent co)) + (absolute-child-number co))))) + ($callout-bug$ (if (node-list-empty? co) + #f + areanum))))))) + +(define ($look-for-callout$ line col #!optional (eol? #f)) + ;; Look to see if a callout should be printed at line col, and print + ;; it if it should + (let* ((areaspec (select-elements (children (parent (current-node))) + (normalize "areaspec"))) + (areas (expand-children (children areaspec) + (list (normalize "areaset"))))) + (let loop ((areanl areas)) + (if (node-list-empty? areanl) + (empty-sosofo) + (make sequence + (if ($callout-area-match$ (node-list-first areanl) line col eol?) + ($callout-area-format$ (node-list-first areanl) line col eol?) + (empty-sosofo)) + (loop (node-list-rest areanl))))))) + +(define ($callout-area-match$ area line col eol?) + ;; Does AREA area match line col? + (let* ((coordlist (split (attribute-string (normalize "coords") area))) + (aline (string->number (car coordlist))) + (acol (if (null? (cdr coordlist)) + #f + (string->number (car (cdr coordlist))))) + (units (if (inherited-attribute-string (normalize "units") area) + (inherited-attribute-string (normalize "units") area) + (normalize "linecolumn")))) + (and (equal? units (normalize "linecolumn")) + (or + (and (equal? line aline) + (equal? col acol)) + (and (equal? line aline) + eol? + (or (not acol) (> acol col))))))) + +(define ($callout-area-format$ area line col eol?) + ;; Format AREA area at the appropriate place + (let* ((coordlist (split (attribute-string (normalize "coords") area))) + (aline (string->number (car coordlist))) + (acol (if (null? (cdr coordlist)) + #f + (string->number (car (cdr coordlist)))))) + (if (and (equal? line aline) + eol? + (or (not acol) (> acol col))) + (make sequence + (let loop ((atcol col)) + (if (>= atcol (if acol acol %callout-default-col%)) + (empty-sosofo) + (make sequence + (literal " ") + (loop (+ atcol 1))))) + ($callout-mark$ area #t)) + ($callout-mark$ area #t)))) + +(define ($callout-verbatim-display$ indent line-numbers?) + (let* ((content (make element gi: "PRE" + attributes: (list + (list "CLASS" (gi))) + ($callout-verbatim-content$ indent line-numbers?)))) + (if %shade-verbatim% + (make element gi: "TABLE" + attributes: ($shade-verbatim-attr$) + (make element gi: "TR" + (make element gi: "TD" + content))) + content))) + +(define ($callout-verbatim-content$ indent line-numbers?) + ;; Print linespecific content in a callout with line numbers + (make sequence + ($line-start$ indent line-numbers? 1) + (let loop ((kl (children (current-node))) + (linecount 1) + (colcount 1) + (res (empty-sosofo))) + (if (node-list-empty? kl) + (sosofo-append res + ($look-for-callout$ linecount colcount #t) + (empty-sosofo)) + (loop + (node-list-rest kl) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + (+ linecount 1) + linecount) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + 1 + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-0000) + colcount + (+ colcount 1))) + (let ((c (node-list-first kl))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-000D) + (sosofo-append res + ($look-for-callout$ linecount colcount #t) + (process-node-list c) + ($line-start$ indent + line-numbers? + (+ linecount 1))) + (sosofo-append res + ($look-for-callout$ linecount colcount) + (process-node-list c))))))))) + +;; EOF dbcallout.dsl + diff --git a/html/dbchunk.dsl b/html/dbchunk.dsl new file mode 100644 index 0000000..3321569 --- /dev/null +++ b/html/dbchunk.dsl @@ -0,0 +1,492 @@ +;; $Id: dbchunk.dsl,v 1.1 2001/04/02 21:40:27 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +(define (chunk-element-list) + (list (normalize "preface") + (normalize "chapter") + (normalize "appendix") + (normalize "article") + (normalize "glossary") + (normalize "bibliography") + (normalize "index") + (normalize "colophon") + (normalize "setindex") + (normalize "reference") + (normalize "refentry") + (normalize "part") + (normalize "sect1") + (normalize "section") + (normalize "book") ;; just in case nothing else matches... + (normalize "set") ;; sets are definitely chunks... + )) + +(define (chunk-skip-first-element-list) + (list (normalize "sect1") + (normalize "section"))) + +(define (chunk-section-depth) + 1) + +(define (section-element-depth #!optional (section (current-node))) + (if (node-list-empty? section) + 0 + (if (equal? (gi section) (normalize "section")) + (length (hierarchical-number-recursive + (normalize "section") + section)) + (section-element-depth (parent section))))) + +(define (is-first-element nd) + (equal? (child-number nd) 1)) + +(define (combined-chunk? #!optional (nd (current-node))) + (or + ;; if it's a section and the parent element is also a section + ;; and its depth is less than or equal to chunk-section-depth + (and (equal? (gi nd) (normalize "section")) + (not (node-list-empty? (parent nd))) + (equal? (gi (parent nd)) (normalize "section")) + (>= (section-element-depth nd) (chunk-section-depth))) + ;; if it's the first skipped chunk in a chunk + (and (not (node-list-empty? nd)) + (member (gi nd) (chunk-element-list)) + (is-first-element nd) + (member (gi nd) (chunk-skip-first-element-list))) + ;; or if it's a chunk in a partintro + (and (member (gi nd) (chunk-element-list)) + (has-ancestor-member? nd (list (normalize "partintro")))))) + +(define (chunk? #!optional (nd (current-node))) + ;; 1. The (sgml-root-element) is always a chunk. + ;; 2. If nochunks is #t or the dbhtml PI on the root element + ;; specifies chunk='no', then the root element is the only + ;; chunk. + ;; 3. Otherwise, elements in the chunk-element-list are chunks + ;; unless they're combined with their parent. + ;; 4. Except for bibliographys, which are only chunks if they + ;; occur in book or article. + ;; 5. And except for sections, which are only chunks if they + ;; are not too deep + ;; + (let* ((notchunk (or (and (equal? (gi nd) (normalize "bibliography")) + (not (or (equal? (gi (parent nd)) (normalize "book")) + (equal? (gi (parent nd)) (normalize "article"))))) + (and (equal? (gi nd) (normalize "section")) + (equal? (gi (parent nd)) (normalize "section")) + (>= (section-element-depth nd) + (chunk-section-depth))))) + (maybechunk (not notchunk))) + (if (node-list=? nd (sgml-root-element)) + #t + (if (or nochunks + (equal? (dbhtml-value (sgml-root-element) "chunk") "no")) + #f + (if (member (gi nd) (chunk-element-list)) + (if (combined-chunk? nd) + #f + maybechunk) + #f))))) + +(define (html-prefix nd) + (let ((dbhtml-prefix (inherited-dbhtml-value nd "prefix"))) + (if dbhtml-prefix + dbhtml-prefix + %html-prefix%))) + +(define (id-based-filename nd) + (if (and %use-id-as-filename% + (attribute-string (normalize "id") nd)) + (case-fold-down (attribute-string (normalize "id") nd)) + #f)) + +(define (book-html-base nd) + (let ((number (number->string (all-element-number nd))) + ;(number (pad-string (number->string 3) 2 "0")) + (prefix (html-prefix nd)) + (pibase (or + (inherited-dbhtml-value nd "basename") + (inherited-pi-value nd "html-basename"))) + (idbase (id-based-filename nd))) + (if idbase + (string-append (if prefix prefix "") idbase) + (string-append (if prefix prefix "") + (if pibase pibase "book") number)))) + +(define (division-html-base nd) + (let* ((number (number->string (all-element-number nd))) + (prefix (html-prefix nd)) + (pibase (or + (inherited-dbhtml-value nd "basename") + (inherited-pi-value nd "html-basename"))) + (idbase (id-based-filename nd)) + (base (cond (pibase pibase) + (idbase idbase) + ((equal? (gi nd) (normalize "set")) "s") + ((equal? (gi nd) (normalize "preface")) "f") + ((equal? (gi nd) (normalize "chapter")) "c") + ((equal? (gi nd) (normalize "article")) "t") + ((equal? (gi nd) (normalize "appendix")) "a") + ((equal? (gi nd) (normalize "part")) "p") + ((equal? (gi nd) (normalize "reference")) "r") + ((equal? (gi nd) (normalize "glossary")) "g") + ((equal? (gi nd) (normalize "bibliography")) "b") + ((equal? (gi nd) (normalize "index")) "i") + ((equal? (gi nd) (normalize "setindex")) "n") + ((equal? (gi nd) (normalize "refentry")) "r") + ;; "x" is section + (else "z")))) + (if idbase + (string-append (if prefix prefix "") idbase) + (if pibase + (string-append (if prefix prefix "") pibase number) + (string-append (if prefix prefix "") base number))))) + +(define (component-html-base nd) + (division-html-base nd)) + +(define (section-html-base nd) + ;; Now that I'm using all-element-number, there's no point in basing + ;; it off the component-html-base at all... + (let* ((number (number->string (all-element-number nd))) + (prefix (html-prefix nd)) + (pibase (or + (inherited-dbhtml-value nd "basename") + (inherited-pi-value nd "html-basename"))) + (idbase (id-based-filename nd)) + (base (if pibase + (string-append (if prefix prefix "") pibase) + (string-append (if prefix prefix "") "x")))) + (if idbase + (string-append (if prefix prefix "") idbase) + (if (chunk? nd) + (string-append base number) + base)))) + +(define (element-html-base nd) + (let* ((number (number->string (all-element-number nd))) + (prefix (html-prefix nd)) + (pibase (or + (inherited-dbhtml-value nd "basename") + (inherited-pi-value nd "html-basename"))) + (idbase (id-based-filename nd)) + (base (if pibase + (string-append (if prefix prefix "") pibase) + (string-append (if prefix prefix "") + (case-fold-down (gi nd)))))) + (if idbase + (string-append (if prefix prefix "") idbase) + (string-append base number)))) + +;; Returns the filename of the html file that contains elemnode, without +;; any leading path information +(define (html-base-filename #!optional (input_nd (current-node))) + (let* ((nd (chunk-parent input_nd)) + (base (cond ((member (gi nd) (book-element-list)) + (book-html-base nd)) + ((member (gi nd) (division-element-list)) + (division-html-base nd)) + ((member (gi nd) (component-element-list)) + (component-html-base nd)) + ((member (gi nd) (section-element-list)) + (section-html-base nd)) + (else (element-html-base input_nd)))) + ;; If this chunk-level element isn't a chunk, get the pifile from + ;; the parent element. + (pifile (if (chunk? nd) + (or + (dbhtml-value nd "filename") + (pi-value nd "html-filename")) + (or + (dbhtml-value (parent nd) "filename") + (pi-value (parent nd) "html-filename")))) + (language (if %html-use-lang-in-filename% + (if (inherited-attribute-string (normalize "lang") nd) + (inherited-attribute-string (normalize "lang") nd) + %default-language%) + "")) + (ext (if %html-use-lang-in-filename% + (string-append "." language %html-ext%) + %html-ext%))) + (if (and %root-filename% (node-list=? (sgml-root-element) nd)) + (string-append %root-filename% ext) + (if pifile + pifile + (string-append base ext))))) + +(define (root-rel-path filename #!optional (node (current-node))) + ;; Return the filename relative to the root path + (string-append (copy-string "../" (directory-depth (html-file node))) + filename)) + +;; Returns the filename of the html file that contains elemnode +;; +(define (html-file #!optional (input_nd (current-node))) + (let* ((cp-nd (chunk-parent input_nd)) + ;; If the sgml-root-element is at a level below the chunking + ;; level, then cp-nd will return an empty-node-list. In this + ;; case, we want to return the root-element. + (nd (if (node-list-empty? cp-nd) + (sgml-root-element) + cp-nd)) + (base-filename (html-base-filename nd)) + (pidir (or + (inherited-dbhtml-value nd "dir") + (inherited-pi-value nd "html-dir")))) + (if (and %root-filename% (node-list=? (sgml-root-element) nd)) + base-filename + (if pidir + (string-append pidir "/" base-filename) + base-filename)))) + +(define (href-to target) + ;; Return the HTML HREF for the given node. If nochunks is true, just + ;; return the fragment identifier. + (let* ((id (element-id target)) + (curdepth (directory-depth (html-file (current-node)))) + (entfile (html-file target)) + (fragid (if (chunk? target) + "" + (string-append "#" id)))) + (if nochunks + fragid + (string-append (copy-string "../" curdepth) entfile fragid)))) + +(define (html-entity-file htmlfilename) + ;; Returns the filename that should be used for _writing_ htmlfilename. + ;; This may differ from the filename used in referencing it. (The point + ;; is that you can force the stylesheets to write the chunked files + ;; somewhere else, if you want.) + (let* ((pi-outputdir (dbhtml-value (sgml-root-element) "output-dir")) + (outputdir (if pi-outputdir + pi-outputdir + %output-dir%))) + (if (and use-output-dir outputdir) + (string-append outputdir "/" htmlfilename) + htmlfilename))) + +;; Split node list nl at nd; return '(nodes-prev-to-nd nodes-following-nd) +;; Note that nd does not appear in either return list. +(define (split-node-list nd nodelist) + (let loop ((prev (empty-node-list)) + (nl nodelist)) + (if (node-list-empty? nl) + (list prev (empty-node-list)) + (if (node-list=? (node-list-first nl) nd) + (list prev (node-list-rest nl)) + (loop (node-list prev (node-list-first nl)) + (node-list-rest nl)))))) + +(define (navigate-to? nd) + #t) + +(define (chunk-parent #!optional (nd (current-node))) + (let ((cp (let loop ((p (chunk-level-parent nd))) + (if (or (node-list-empty? p) (chunk? p)) + p + (chunk-parent (parent p)))))) + cp)) +; (if (node-list-empty? cp) +; ;; if there's no chunk-parent, return the root node +; (sgml-root-element) +; ;; otherwise, return the parent that we found +; cp))) + +(define (chunk-level-parent #!optional (nd (current-node))) + (ancestor-member nd (chunk-element-list))) + +(define (chunk-children #!optional (nd (current-node))) + (node-list-filter-by-gi (children nd) (chunk-element-list))) + +(define (ifollow-by-gi nd gilist) + (let loop ((next (ifollow nd))) + (if (node-list-empty? next) + (empty-node-list) + (if (member (gi next) gilist) + next + (loop (ifollow next)))))) + +(define (ipreced-by-gi nd gilist) + (let loop ((prev (ipreced nd))) + (if (node-list-empty? prev) + (empty-node-list) + (if (member (gi prev) gilist) + prev + (loop (ipreced prev)))))) + +(define (last-chunk-element nd) + (let ((clc (node-list-filter-by-gi (children nd) (chunk-element-list)))) + (if (node-list-empty? clc) + nd + (last-chunk-element (node-list-last clc))))) + +(define (next-chunk-skip-children #!optional (elem (current-node))) + (let* ((nd (chunk-level-parent elem)) + (psl (node-list-filter-by-gi (children (parent nd)) + (chunk-element-list))) + (nextlist (car (cdr (split-node-list nd psl))))) + (if (node-list-empty? nextlist) + (if (node-list-empty? (parent nd)) + (empty-node-list) + (next-chunk-skip-children (parent nd))) + (node-list-first nextlist)))) + +(define (next-chunk-with-children #!optional (elem (current-node))) + (let* ((nd (chunk-level-parent elem)) + (clc (chunk-children nd)) + (ns (ifollow-by-gi nd (chunk-element-list)))) + (if (node-list-empty? clc) + (if (node-list-empty? ns) + (next-chunk-skip-children (parent nd)) + (node-list-first ns)) + ;; If the first of the chunk-children (clc) of this element + ;; isn't its own chunk, skip over it, otherwise it's next. + (if (chunk? (node-list-first clc)) + (node-list-first clc) + (next-chunk-with-children (node-list-first clc)))))) +;; (if (> (node-list-length clc) 1) +;; (node-list-first (node-list-rest clc)) +;; (next-chunk-skip-children nd)))))) + +(define (abs-prev-chunk #!optional (elem (current-node))) + (let* ((nd (chunk-parent elem)) + (pse (ipreced-by-gi nd (chunk-element-list))) + (ps (chunk-parent pse))) + (if (node-list-empty? ps) + (parent nd) + (last-chunk-element ps)))) + +(define (prev-chunk-element #!optional (elem (current-node))) + (let* ((nd (chunk-parent elem)) + (prev (chunk-parent (abs-prev-chunk nd)))) + ;; There's a special case here. abs-prev-chunk always returns the last + ;; chunk element of the preceding element if we walk up the tree. This + ;; assures that the last section of the preceding chapter is the "prev" + ;; element of the current chapter. + ;; + ;; However, if chunk-skip-first-element is in use, then abs-prev-chunk + ;; gets fooled when it tries to find the element that precedes the + ;; second child element that's in chunk-skip-first-element list. + ;; + ;; For example, if SECT1 is in chunk-skip-first-element then the + ;; chunk that precedes the second SECT1 in a CHAPTER is the CHAPTER + ;; (not the first SECT1 because the first SECT1 is "skipped", + ;; it's in the CHAPTER chunk). Confused yet? + ;; + ;; Ok, now unfortunately, what abs-prev-chunk returns is the last child + ;; of the CHAPTER, so instead of going from the second SECT1 to the + ;; CHAPTER, we go from the second SECT1 to the last SECT1 of the CHAPTER. + ;; + ;; I can't think of a good way to handle this except to test for it + ;; right up front. I wonder if all this skip stuff was really worth it? + ;; + (if (and (member (gi elem) (chunk-skip-first-element-list)) + (equal? (child-number elem) 2)) + ;; this is the second child, the prev node is the parent. + (parent elem) + ;; otherwise, do the "normal" thing to find it: + (if (node-list-empty? prev) + prev + (if (combined-chunk? prev) + (parent prev) + (if (and (chunk? nd) + (chunk? prev) + (navigate-to? prev)) + prev + (prev-chunk-element prev))))))) + +(define (abs-prev-peer-chunk-element #!optional (elem (current-node))) + ;; Returns the previous element that is a sibling or parent of the + ;; current element. Absolute in this case refers to the fact that + ;; it returns the immediate predecessor without regard for whether or + ;; not it is a chunk. + (let* ((psibling (if (node-list-empty? (preced elem)) + (empty-node-list) + (node-list-last (preced elem))))) + (if (node-list-empty? psibling) + (parent elem) + psibling))) + +(define (prev-peer-chunk-element #!optional (elem (current-node))) + (let loop ((nd (chunk-level-parent elem))) + (if (node-list-empty? nd) + (empty-node-list) + (if (and (chunk? (abs-prev-peer-chunk-element nd)) + (navigate-to? (abs-prev-peer-chunk-element nd))) + (abs-prev-peer-chunk-element nd) + (loop (abs-prev-peer-chunk-element nd)))))) + +(define (prev-major-component-chunk-element #!optional (elem (current-node)) (in-chain #f)) + ;; Return the prev major component of the document that is a sibling (or + ;; ancestor) of the starting element. This is essentially 'prev-sibling' + ;; but skips over things that aren't chunks. + (if (or (navigate-to? elem) in-chain) + (if (member (gi elem) (major-component-element-list)) + (if (node-list-empty? (node-list-last-element (preced elem))) + (prev-chunk-element elem) + (let ((nd (node-list-last-element (preced elem)))) + (if (navigate-to? nd) + nd + (prev-major-component-chunk-element nd #t)))) + (ancestor-member elem (major-component-element-list))) + (empty-node-list))) + +(define (abs-next-chunk #!optional (elem (current-node)) (children-ok? #t)) + (let* ((nd (chunk-level-parent elem)) + (clc (if children-ok? (chunk-children nd) (empty-node-list))) + (ns (ifollow-by-gi nd (chunk-element-list)))) + (if (node-list-empty? clc) + (if (node-list-empty? ns) + (if (node-list-empty? (parent nd)) + (empty-node-list) + (abs-next-chunk (parent nd) #f)) + (node-list-first ns)) + (node-list-first clc)))) + +(define (next-chunk-element #!optional (elem (current-node))) + (let ((next (abs-next-chunk elem))) + (if (node-list-empty? next) + (empty-node-list) + (if (chunk? next) + (if (navigate-to? next) + next + (next-chunk-element next)) + (next-chunk-element next))))) + +(define (abs-next-peer-chunk-element #!optional (elem (current-node))) + (let* ((fsibling (if (node-list-empty? (follow elem)) + (empty-node-list) + (node-list-first (follow elem))))) + (if (node-list-empty? fsibling) + (if (node-list-empty? (parent elem)) + (empty-node-list) + (abs-next-peer-chunk-element (parent elem))) + fsibling))) + +(define (next-peer-chunk-element #!optional (elem (current-node))) + (let loop ((nd (chunk-level-parent elem))) + (if (node-list-empty? nd) + (empty-node-list) + (if (and (chunk? (abs-next-peer-chunk-element nd)) + (navigate-to? (abs-next-peer-chunk-element nd))) + (abs-next-peer-chunk-element nd) + (loop (abs-next-peer-chunk-element nd)))))) + +(define (next-major-component-chunk-element #!optional (elem (current-node)) (in-chain #f)) + ;; Return the next major component of the document that is not a descendant + ;; of the starting element. This is essentially 'next-sibling' but skips + ;; over things that aren't chunks. + (if (or (navigate-to? elem) in-chain) + (if (member (gi elem) (major-component-element-list)) + (if (node-list-empty? (node-list-first-element (follow elem))) + (next-major-component-chunk-element (parent elem)) + (let ((nd (node-list-first-element (follow elem)))) + (if (navigate-to? nd) + nd + (next-major-component-chunk-element nd #t)))) + (ancestor-member elem (major-component-element-list))) + (empty-node-list))) + +;; EOF dbchunk.dsl
\ No newline at end of file diff --git a/html/dbcompon.dsl b/html/dbcompon.dsl new file mode 100644 index 0000000..250726d --- /dev/null +++ b/html/dbcompon.dsl @@ -0,0 +1,199 @@ +;; $Id: dbcompon.dsl,v 1.8 2003/04/29 05:49:21 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================= COMPONENTS ============================= +;; +;; in docbook, components are containers at the chapter/appendix level + +(define ($component$) + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + ($component-body$))) + +(define ($component-separator$) + (if (or (not nochunks) (node-list=? (current-node) (sgml-root-element))) + (empty-sosofo) + (make empty-element gi: "HR"))) + +(define ($component-body$) + (let* ((epigraph (let loop ((nl (children (current-node)))) + (if (node-list-empty? nl) + nl + (let ((first-gi (gi (node-list-first nl)))) + (if (equal? first-gi (normalize "epigraph")) + (node-list-first nl) + (if (or (equal? first-gi (normalize "title")) + (equal? first-gi (normalize "subtitle")) + (equal? first-gi (normalize "titleabbrev")) + (equal? first-gi (normalize "docinfo")) + (equal? first-gi (normalize "chapterinfo")) + (equal? first-gi (normalize "appendixinfo"))) + (loop (node-list-rest nl)) + (loop (empty-node-list)))))))) + (notepigraph (let loop ((nl (children (current-node))) + (ch (empty-node-list))) + (if (node-list-empty? nl) + ch + (if (node-list=? (node-list-first nl) epigraph) + (loop (node-list-rest nl) ch) + (loop (node-list-rest nl) + (node-list ch (node-list-first nl)))))))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($component-separator$) + ($component-title$) + (process-node-list epigraph) + (if ($generate-chapter-toc$) + ($chapter-toc$) + (empty-sosofo)) + (process-node-list notepigraph)))) + +(define ($component-title$ #!optional (titlegi "H1") (subtitlegi "H2")) + (let* ((info (cond + ((equal? (gi) (normalize "article")) + (node-list-filter-by-gi (children (current-node)) + (list (normalize "artheader") + (normalize "articleinfo")))) + ((or + (equal? (gi) (normalize "appendix")) + (equal? (gi) (normalize "bibliography")) + (equal? (gi) (normalize "chapter")) + (equal? (gi) (normalize "glossary")) + (equal? (gi) (normalize "index")) + (equal? (gi) (normalize "preface")) + (equal? (gi) (normalize "reference")) + (equal? (gi) (normalize "setindex"))) + (select-elements (children (current-node)) (normalize "docinfo"))) + (else + (empty-node-list)))) + (exp-children (if (node-list-empty? info) + (empty-node-list) + (expand-children (children info) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))))) + (parent-titles (select-elements (children (current-node)) (normalize "title"))) + (titles (if (node-list-empty? parent-titles) + (select-elements exp-children (normalize "title")) + parent-titles)) + (parent-subttl (select-elements (children (current-node)) (normalize "subtitle"))) + (subtitles (if (node-list-empty? parent-subttl) + (select-elements exp-children (normalize "subtitle")) + parent-subttl))) + (make sequence + (make element gi: titlegi + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (if (and %chapter-autolabel% + (or (equal? (gi) (normalize "chapter")) + (equal? (gi) (normalize "appendix")))) + (literal (gentext-element-name-space (gi)) + (element-label (current-node)) + (gentext-label-title-sep (gi))) + (empty-sosofo)) + (if (node-list-empty? titles) + (element-title-sosofo) ;; get a default! + (with-mode title-mode + (process-node-list titles))))) + (if (node-list-empty? subtitles) + (empty-sosofo) + (with-mode subtitle-mode + (make element gi: subtitlegi + (process-node-list subtitles))))))) + +(define ($chapter-toc$) + ;; Called by the TITLE element so that it can come after the TITLE + (build-toc (ancestor-member (current-node) (component-element-list)) + (toc-depth + (ancestor-member (current-node) (component-element-list))) + #t)) + +(element appendix ($component$)) +(element (appendix title) (empty-sosofo)) + +(element chapter ($component$)) +(element (chapter title) (empty-sosofo)) + +(element preface ($component$)) +(element (preface title) (empty-sosofo)) + +;; Dedication is empty except in a special mode so that it can be +;; reordered (made to come before the TOCs)...see dbttlpg.dsl +;; Dedication is empty except in a special mode so that it can be +;; reordered (made to come before the TOCs) + +(element dedication (empty-sosofo)) + +(mode dedication-page-mode + (element dedication + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + (make sequence + ($component-separator$) + ($component-title$) + (process-children)))) + (element (dedication title) (empty-sosofo)) +) + +(element colophon ($component$)) + +;; Articles are like components, except that if they may have much +;; more formal title pages (created with article-titlepage). +;; +(element article + (let* ((info (node-list-filter-by-gi (children (current-node)) + (list (normalize "artheader") + (normalize "articleinfo")))) + (ititle (select-elements (children info) (normalize "title"))) + (title (if (node-list-empty? ititle) + (select-elements (children (current-node)) + (normalize "title")) + (node-list-first ititle))) + (tsosofo (with-mode head-title-mode + (process-node-list title))) + (nl (titlepage-info-elements (current-node) info))) + (html-document + tsosofo + (make element gi: "DIV" + attributes: '(("CLASS" "ARTICLE")) + (if %generate-article-titlepage% + (make sequence + (article-titlepage nl 'recto) + (article-titlepage nl 'verso)) + ($component-title$)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if %generate-article-toc% + (make sequence + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (let loop ((gilist ($generate-article-lot-list$))) + (if (null? gilist) + (empty-sosofo) + (if (not (node-list-empty? + (select-elements (descendants (current-node)) + (car gilist)))) + (make sequence + (build-lot (current-node) (car gilist)) + (loop (cdr gilist))) + (loop (cdr gilist))))) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo)))))) + +(element (article title) (empty-sosofo)) + +(element (article appendix) ($section$)) ;; this is a special case diff --git a/html/dbdivis.dsl b/html/dbdivis.dsl new file mode 100644 index 0000000..9d622b8 --- /dev/null +++ b/html/dbdivis.dsl @@ -0,0 +1,176 @@ +;; $Id: dbdivis.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================= DIVISIONS ============================== + +(element set + (let* ((setinfo (select-elements (children (current-node)) (normalize "setinfo"))) + (ititle (select-elements (children setinfo) (normalize "title"))) + (title (if (node-list-empty? ititle) + (select-elements (children (current-node)) (normalize "title")) + (node-list-first ititle))) + (nl (titlepage-info-elements (current-node) setinfo)) + (tsosofo (with-mode head-title-mode + (process-node-list title)))) + (html-document + tsosofo + (make element gi: "DIV" + attributes: '(("CLASS" "SET")) + + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if %generate-set-titlepage% + (make sequence + (set-titlepage nl 'recto) + (set-titlepage nl 'verso)) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if %generate-set-toc% + (make sequence + (build-toc (current-node) (toc-depth (current-node)))) + (empty-sosofo)) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo)))))) + +(element (set title) (empty-sosofo)) + +(element book + (let* ((bookinfo (select-elements (children (current-node)) (normalize "bookinfo"))) + (ititle (select-elements (children bookinfo) (normalize "title"))) + (title (if (node-list-empty? ititle) + (select-elements (children (current-node)) (normalize "title")) + (node-list-first ititle))) + (nl (titlepage-info-elements (current-node) bookinfo)) + (tsosofo (with-mode head-title-mode + (process-node-list title))) + (dedication (select-elements (children (current-node)) (normalize "dedication")))) + (html-document + tsosofo + (make element gi: "DIV" + attributes: '(("CLASS" "BOOK")) + + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if %generate-book-titlepage% + (make sequence + (book-titlepage nl 'recto) + (book-titlepage nl 'verso)) + (empty-sosofo)) + + (if (node-list-empty? dedication) + (empty-sosofo) + (with-mode dedication-page-mode + (process-node-list dedication))) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if %generate-book-toc% + (build-toc (current-node) (toc-depth (current-node))) + (empty-sosofo)) + + (let loop ((gilist ($generate-book-lot-list$))) + (if (null? gilist) + (empty-sosofo) + (if (not (node-list-empty? + (select-elements (descendants (current-node)) + (car gilist)))) + (make sequence + (build-lot (current-node) (car gilist)) + (loop (cdr gilist))) + (loop (cdr gilist))))) + + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo)))))) + +(element (book title) (empty-sosofo)) + +(element part + (let* ((partinfo (select-elements (children (current-node)) + (normalize "docinfo"))) + (partintro (select-elements (children (current-node)) + (normalize "partintro"))) + (nl (titlepage-info-elements + (current-node) + partinfo + (if %generate-partintro-on-titlepage% + partintro + (empty-node-list)))) + (ititle (select-elements (children partinfo) (normalize "title"))) + (title (if (node-list-empty? ititle) + (select-elements (children (current-node)) (normalize "title")) + (node-list-first ititle))) + (tsosofo (with-mode head-title-mode + (process-node-list title)))) + (html-document + tsosofo + (make element gi: "DIV" + attributes: '(("CLASS" "PART")) + + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if %generate-part-titlepage% + (make sequence + (part-titlepage nl 'recto) + (part-titlepage nl 'verso)) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if (and (not (node-list-empty? partintro)) + (not %generate-partintro-on-titlepage%)) + ($process-partintro$ partintro) + (empty-sosofo)) + + (if (and %generate-part-toc% + (not %generate-part-toc-on-titlepage%)) + (make sequence + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo)))))) + +(element (part title) (empty-sosofo)) + +(element partintro (empty-sosofo)) + +(element (partintro title) + (make element gi: "H1" + (process-children))) + +(element (partintro sect1) + ($section-body$)) + +(define ($process-partintro$ partintro) + (make element gi: "DIV" + attributes: (list (list "CLASS" "PARTINTRO")) + + (make element gi: "A" + attributes: (list (list "NAME" (element-id partintro))) + (empty-sosofo)) + + (process-node-list (children partintro)) + (make-endnotes partintro))) diff --git a/html/dbefsyn.dsl b/html/dbefsyn.dsl new file mode 100644 index 0000000..c737003 --- /dev/null +++ b/html/dbefsyn.dsl @@ -0,0 +1,824 @@ +;; $Id: dbefsyn.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================ CLASS SYNOPSIS ============================= + +(define %indent-classsynopsisinfo-lines% #f) +(define %number-classsynopsisinfo-lines% #f) + +(define %default-classsynopsis-language% "java") + +(element classsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("cpp") (with-mode cs-cpp-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element methodsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("cpp") (with-mode cs-cpp-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element fieldsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("cpp") (with-mode cs-cpp-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element constructorsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("cpp") (with-mode cs-cpp-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element destructorsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("cpp") (with-mode cs-cpp-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +;; ===== Java ======================================================== + +(mode cs-java-mode + +(element classsynopsis + (let* ((classes (select-elements (children (current-node)) + (normalize "ooclass"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make element gi: "pre" + attributes: '(("class" "classsynopsis")) + (process-node-list classname) + (process-node-list superclasses) + (literal "{&#RE;") + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + (literal "}")))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element ooclass + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (make element gi: "SPAN" + attributes: '(("class" "ooclass")) + (process-children)))) + +(element oointerface + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (make element gi: "SPAN" + attributes: '(("class" "oointerface")) + (process-children)))) + +(element ooexception + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (make element gi: "SPAN" + attributes: '(("class" "ooexception")) + (process-children)))) + +(element modifier + (make element gi: "span" + attributes: '(("class" "modifier")) + (process-children) + (literal " "))) + +(element classname + (if (first-sibling?) + (make sequence + (literal "class ") + (make element gi: "span" + attributes: '(("class" "classname")) + (process-children) + (literal " ")) + (if (last-sibling?) + (empty-sosofo) + (literal "extends "))) + (make sequence + (make element gi: "span" + attributes: '(("class" "superclass")) + (process-children)) + (if (last-sibling?) + (literal " ") + (literal ", "))))) + +(element fieldsynopsis + (make element gi: "code" + attributes: '(("class" "fieldsynopsis")) + (literal " ") + (process-children) + (literal ";&#RE;"))) + +(element type + (make element gi: "span" + attributes: '(("class" "type")) + (process-children) + (literal " "))) + +(element varname + (make element gi: "span" + attributes: '(("class" "varname")) + (process-children))) + +(element initializer + (make element gi: "span" + attributes: '(("class" "initializer")) + (literal " = ") + (process-children))) + +(element constructorsynopsis + (java-method-synopsis)) + +(element destructorsynopsis + (java-method-synopsis)) + +(element methodsynopsis + (java-method-synopsis)) + +(element void + (make element gi: "span" + attributes: '(("class" "void")) + (literal "void "))) + +(element methodname + (process-children)) + +(element methodparam + (make element gi: "span" + attributes: '(("class" "methodparam")) + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (make element gi: "span" + attributes: '(("class" "parameter")) + (process-children))) + +(element exceptionname + (make element gi: "span" + attributes: '(("class" "exceptionname")) + (if (first-sibling?) + (literal "&#RE; throws ") + (literal ", ")) + (process-children))) +) + +(define (java-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "methodparam")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make element gi: "code" + attributes: (list (list "class" (gi nd))) + (if (first-sibling?) + (literal "&#RE;") + (empty-sosofo)) + (literal " ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal "(") + (process-node-list param) + (literal ")") + (process-node-list excep) + (literal ";&#RE;")))) + +;; ===== C++ ========================================================= + +(mode cs-cpp-mode + +(element classsynopsis + (let* ((classes (node-list-filter-by-gi (children (current-node)) + (list (normalize "classname") + (normalize "modifier")))) + (classname (let loop ((nl classes) (cn (empty-node-list))) + (if (node-list-empty? nl) + cn + (if (equal? (gi (node-list-first nl)) + (normalize "classname")) + (node-list cn (node-list-first nl)) + (loop (node-list-rest nl) + (node-list cn (node-list-first nl))))))) + + (superclasses (let loop ((nl classes)) + (if (node-list-empty? nl) + (empty-node-list) + (if (equal? (gi (node-list-first nl)) + (normalize "classname")) + (node-list-rest nl) + (loop (node-list-rest nl))))))) + (make element gi: "pre" + attributes: '(("class" "classsynopsis")) + (process-node-list classname) + (process-node-list superclasses) + (literal "{&#RE;") + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + (literal "}")))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element modifier + (make element gi: "span" + attributes: '(("class" "modifier")) + (process-children) + (literal " "))) + +(element classname + (if (first-sibling?) + (make sequence + (literal "class ") + (make element gi: "span" + attributes: '(("class" "classname")) + (process-children)) + (if (last-sibling?) + (empty-sosofo) + (literal ": "))) + (make sequence + (make element gi: "span" + attributes: '(("class" "superclass")) + (process-children)) + (if (last-sibling?) + (literal " ") + (literal ", "))))) + +(element fieldsynopsis + (make element gi: "code" + attributes: '(("class" "fieldsynopsis")) + (literal " ") + (process-children) + (literal ";&#RE;"))) + +(element type + (make element gi: "span" + attributes: '(("class" "type")) + (process-children) + (literal " "))) + +(element varname + (make element gi: "span" + attributes: '(("class" "varname")) + (process-children))) + +(element initializer + (make element gi: "span" + attributes: '(("class" "initializer")) + (literal " = ") + (process-children))) + +(element constructorsynopsis + (cpp-method-synopsis)) + +(element destructorsynopsis + (cpp-method-synopsis)) + +(element methodsynopsis + (cpp-method-synopsis)) + +(element void + (make element gi: "span" + attributes: '(("class" "void")) + (literal "void "))) + +(element methodname + (process-children)) + +(element methodparam + (make element gi: "span" + attributes: '(("class" "methodparam")) + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (make element gi: "span" + attributes: '(("class" "parameter")) + (process-children))) + +(element exceptionname + (make element gi: "span" + attributes: '(("class" "exceptionname")) + (if (first-sibling?) + (literal "&#RE; throws ") + (literal ", ")) + (process-children))) +) + +(define (cpp-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "methodparam")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make element gi: "code" + attributes: (list (list "class" (gi nd))) + (if (first-sibling?) + (literal "&#RE;") + (empty-sosofo)) + (literal " ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal "(") + (process-node-list param) + (literal ")") + (process-node-list excep) + (literal ";&#RE;")))) + +;; ===== Perl ======================================================== + +(mode cs-perl-mode + +(element classsynopsis + (let* ((modifiers (select-elements (children (current-node)) + (normalize "modifier"))) + (classes (select-elements (children (current-node)) + (normalize "classname"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make element gi: "pre" + attributes: '(("class" "classsynopsis")) + (literal "package ") + (process-node-list classname) + (literal ";&#RE;") + (if (node-list-empty? superclasses) + (empty-sosofo) + (make sequence + (literal "@ISA = ("); + (process-node-list superclasses) + (literal ";&#RE;"))) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo"))))))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element modifier + (literal "Perl ClassSynopses don't use Modifiers")) + +(element classname + (if (first-sibling?) + (make element gi: "span" + attributes: '(("class" "classname")) + (process-children)) + (make sequence + (make element gi: "span" + attributes: '(("class" "superclass")) + (process-children)) + (if (last-sibling?) + (empty-sosofo) + (literal ", "))))) + +(element fieldsynopsis + (make element gi: "code" + attributes: '(("class" "fieldsynopsis")) + (literal " "); + (process-children) + (literal ";&#RE;"))) + +(element type + (make element gi: "span" + attributes: '(("class" "type")) + (process-children) + (literal " "))) + +(element varname + (make element gi: "span" + attributes: '(("class" "varname")) + (process-children))) + +(element initializer + (make element gi: "span" + attributes: '(("class" "initializer")) + (literal " = ") + (process-children) + (literal " "))) + +(element constructorsynopsis + (perl-method-synopsis)) + +(element destructorsynopsis + (perl-method-synopsis)) + +(element methodsynopsis + (perl-method-synopsis)) + +(element void + (empty-sosofo)) + +(element methodname + (make element gi: "span" + attributes: '(("class" "methodname")) + (process-children))) + +(element methodparam + (make element gi: "span" + attributes: '(("class" "methodparam")) + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (make element gi: "span" + attributes: '(("class" "parameter")) + (process-children))) + +(element exceptionname + (literal "Perl ClassSynopses don't use Exceptions")) + +) + +(define (perl-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "type") + (normalize "void")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make element gi: "code" + attributes: (list (list "class" (gi nd))) + (literal "sub ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal " { ... }")))) + +;; ===== IDL ========================================================= + +(mode cs-idl-mode + +(element classsynopsis + (let* ((modifiers (select-elements (children (current-node)) + (normalize "modifier"))) + (classes (select-elements (children (current-node)) + (normalize "classname"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make element gi: "pre" + attributes: '(("class" "classsynopsis")) + (literal "interface ") + (process-node-list modifiers) + (process-node-list classname) + (if (node-list-empty? superclasses) + (literal " ") + (make sequence + (literal " : ") + (process-node-list superclasses))) + (literal " {&#RE;") + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + (literal "}")))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element modifier + (make element gi: "span" + attributes: '(("class" "modifier")) + (process-children) + (literal " "))) + +(element classname + (if (first-sibling?) + (make element gi: "span" + attributes: '(("class" "classname")) + (process-children)) + (make sequence + (make element gi: "span" + attributes: '(("class" "superclass")) + (process-children)) + (if (last-sibling?) + (empty-sosofo) + (literal ", "))))) + +(element fieldsynopsis + (make element gi: "code" + attributes: '(("class" "fieldsynopsis")) + (literal " "); + (process-children) + (literal ";&#RE;"))) + +(element type + (make element gi: "span" + attributes: '(("class" "type")) + (process-children) + (literal " "))) + +(element varname + (make element gi: "span" + attributes: '(("class" "varname")) + (process-children))) + +(element initializer + (make element gi: "span" + attributes: '(("class" "initializer")) + (literal " = ") + (process-children) + (literal " "))) + +(element constructorsynopsis + (idl-method-synopsis)) + +(element destructorsynopsis + (idl-method-synopsis)) + +(element methodsynopsis + (idl-method-synopsis)) + +(element void + (make element gi: "span" + attributes: '(("class" "void")) + (literal "void "))) + +(element methodname + (make element gi: "span" + attributes: '(("class" "methodname")) + (process-children))) + +(element methodparam + (make element gi: "span" + attributes: '(("class" "methodparam")) + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (make element gi: "span" + attributes: '(("class" "parameter")) + (process-children))) + +(element exceptionname + (make element gi: "span" + attributes: '(("class" "exceptionname")) + (if (first-sibling?) + (literal " raises(") + (literal ", ")) + (process-children) + (if (last-sibling?) + (literal ")") + (empty-sosofo)))) +) + +(define (idl-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "methodparam")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make element gi: "code" + attributes: (list (list "class" (gi nd))) + (literal " ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal "(") + (process-node-list param) + (literal ")") + (process-node-list excep) + (literal ";&#RE;")))) + +;; ===== Python ======================================================= +;; Contributed by Lane Stevens, lane@cycletime.com + +(mode cs-python-mode + (element classsynopsis + (let* ((classes (select-elements (children (current-node)) + (normalize "ooclass"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make element gi: "pre" + attributes: '(("class" "classsynopsis")) + (literal "class ") + (process-node-list classname) + (literal "(") + (process-node-list superclasses) + (literal ") :") + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + ) + ) + ) + + (element ooclass + (make sequence + (make element gi: "SPAN" + attributes: '(("class" "ooclass")) + (process-children) + (cond + ((first-sibling?) (literal " ")) + ((last-sibling?) (empty-sosofo)) + (#t (literal ", ")) + ) + ) + ) + ) + + (element classname + (if (first-sibling?) + (make element gi: "SPAN" + attributes: '(("class" "classname")) + (process-children)) + (make element gi: "SPAN" + attributes: '(("class" "superclass"))) + ) + ) + + (element methodsynopsis + (python-method-synopsis)) + + (element initializer + (make element gi: "SPAN" + attributes: '(("class" "initializer")) + (literal " = ") + (process-children))) + + (element methodname + (process-children)) + + (element methodparam + (make element gi: "SPAN" + attributes: '(("class" "methodparam")) + (process-children) + (if (last-sibling?) + (empty-sosofo) + (literal ", ")) + ) + ) + + + (element parameter + (make element gi: "SPAN" + attributes: '(("class" "parameter")) + (process-children))) + + + ) + +(define (python-method-synopsis #!optional (nd (current-node))) + (let* ((the-method-name (select-elements (children nd) (normalize "methodname"))) + (the-method-params (select-elements (children nd) (normalize "methodparam")))) + (make element gi: "code" + attributes: (list (list "class" (gi nd))) + (literal " def ") + (process-node-list the-method-name) + (literal "(") + (process-node-list the-method-params) + (literal ") :") + ) + ) + ) + +;; EOF diff --git a/html/dbfootn.dsl b/html/dbfootn.dsl new file mode 100644 index 0000000..cd4ad06 --- /dev/null +++ b/html/dbfootn.dsl @@ -0,0 +1,249 @@ +;; $Id: dbfootn.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ====================================================================== +;; Handle footnotes in body text + +(element footnote ;; A footnote inserts a reference to itself + (let ((id (if (attribute-string (normalize "id")) + (attribute-string (normalize "id")) + (generate-anchor)))) + (make element gi: "A" + attributes: (list + (list "NAME" id) + (list "HREF" (string-append "#FTN." id))) + ($footnote-literal$ (current-node))))) + +(element footnoteref + (let* ((target (element-with-id (attribute-string (normalize "linkend")))) + (id (if (attribute-string (normalize "id") target) + (attribute-string (normalize "id") target) + (generate-anchor target))) + (curdepth (directory-depth (html-file (current-node)))) + (entfile (html-file target)) + ;; can't use (href-to) here because we tinker with the fragid + (href (if nochunks + (string-append "#FTN." id) + (string-append (copy-string "../" curdepth) + entfile "#FTN." id)))) + (make element gi: "A" + attributes: (list + (list "HREF" href)) + ($footnote-literal$ target)))) + +(define (count-footnote? footnote) + ;; don't count footnotes in comments (unless you're showing comments) + ;; or footnotes in tables which are handled locally in the table + (if (or (and (has-ancestor-member? footnote (list (normalize "comment"))) + (not %show-comments%)) + (has-ancestor-member? footnote (list (normalize "tgroup")))) + #f + #t)) + +(define ($chunk-footnote-number$ footnote) + ;; This is more complex than it at first appears because footnotes + ;; can be in Comments which may be suppressed. + (let* ((footnotes (select-elements + (descendants (chunk-parent footnote)) + (normalize "footnote")))) + (let loop ((nl footnotes) (num 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? (node-list-first nl) footnote) + num + (if (count-footnote? (node-list-first nl)) + (loop (node-list-rest nl) (+ num 1)) + (loop (node-list-rest nl) num))))))) + +(define ($footnote-literal$ node) + (make element gi: "SPAN" + attributes: (list + (list "CLASS" "footnote")) + (literal + (string-append + "[" ($footnote-number$ node) "]")))) + +(define ($table-footnote-number$ footnote) + (let* ((chunk (ancestor (normalize "tgroup") footnote)) + (footnotes (select-elements (descendants chunk) (normalize "footnote")))) + (let loop ((nl footnotes) (num 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? footnote (node-list-first nl)) + num + (loop (node-list-rest nl) + (+ num 1))))))) + +(define ($footnote-number$ footnote) + (if (node-list-empty? (ancestor (normalize "tgroup") footnote)) + (format-number ($chunk-footnote-number$ footnote) "1") + (format-number ($table-footnote-number$ footnote) "a"))) + +(mode footnote-mode + (element footnote + (process-children)) + + (element (footnote para) + (let ((id (if (attribute-string (normalize "id") (parent (current-node))) + (attribute-string (normalize "id") (parent (current-node))) + (generate-anchor (parent (current-node)))))) + (make element gi: "P" + (if (= (child-number) 1) + (make sequence + (make element gi: "A" + attributes: (list + (list "NAME" (string-append "FTN." id)) + (list "HREF" (href-to (parent (current-node))))) + ($footnote-literal$ (parent (current-node)))) + (literal " ")) + (literal "")) + (process-children)))) +) + +(define (non-table-footnotes footnotenl) + (let loop ((nl footnotenl) (result (empty-node-list))) + (if (node-list-empty? nl) + result + (if (has-ancestor-member? (node-list-first nl) + (list (normalize "tgroup"))) + (loop (node-list-rest nl) + result) + (loop (node-list-rest nl) + (node-list result (node-list-first nl))))))) + +(define (make-endnotes #!optional (node (current-node))) + (if %footnotes-at-end% + (let* ((allfootnotes (select-elements (descendants node) + (normalize "footnote"))) + (allntfootnotes (non-table-footnotes allfootnotes)) + (this-chunk (chunk-parent node)) + (chunkfootnotes (let loop ((fn allntfootnotes) + (chunkfn (empty-node-list))) + (if (node-list-empty? fn) + chunkfn + (if (node-list=? this-chunk + (chunk-parent + (node-list-first fn))) + (loop (node-list-rest fn) + (node-list chunkfn + (node-list-first fn))) + (loop (node-list-rest fn) + chunkfn))))) + (footnotes (let loop ((nl chunkfootnotes) + (fnlist (empty-node-list))) + (if (node-list-empty? nl) + fnlist + (if (count-footnote? (node-list-first nl)) + (loop (node-list-rest nl) + (node-list fnlist + (node-list-first nl))) + (loop (node-list-rest nl) + fnlist)))))) + (if (node-list-empty? footnotes) + (empty-sosofo) + (if (and #f + ;; there was a time when make-endnotes was called in + ;; more places, and this code prevented footnotes from + ;; being output more than once. now that it's only + ;; called in footer-navigation, this code isn't necessary + ;; and does the wrong thing if -V nochunks is specified. + (or (equal? (gi node) (normalize "reference")) + (equal? (gi node) (normalize "part")) + (equal? (gi node) (normalize "set")) + (equal? (gi node) (normalize "book")))) + (empty-sosofo) ;; Each RefEntry/Component does its own... + (make sequence + (make-endnote-header) + (make element gi: "TABLE" + attributes: '(("BORDER" "0") + ("CLASS" "FOOTNOTES") + ("WIDTH" "100%")) + (with-mode endnote-mode + (process-node-list footnotes))))))) + (empty-sosofo))) + +(define (make-endnote-header) + (let ((headsize (if (equal? (gi) (normalize "refentry")) "H2" "H3"))) + (make element gi: headsize + attributes: '(("CLASS" "FOOTNOTES")) + (literal (gentext-endnotes))))) + +(mode endnote-mode + (element footnote + (let ((id (if (attribute-string (normalize "id") (current-node)) + (attribute-string (normalize "id") (current-node)) + (generate-anchor (current-node))))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "5%")) + (make element gi: "A" + attributes: (list + (list "NAME" (string-append "FTN." id)) + (list "HREF" (href-to (current-node)))) + ($footnote-literal$ (current-node)))) + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "95%")) + (process-children)))))) +) + +;; ====================================================================== +;; Handle table footnotes + +(define (table-footnote-number footnote) + (format-number (component-child-number footnote + (list (normalize "table") + (normalize "informaltable"))) + "a")) + +(element (entry para footnote) + (make element gi: "SUP" + (literal (table-footnote-number (current-node))))) + +(define (make-table-endnote-header) + (make sequence + (literal (gentext-table-endnotes)) + (make empty-element gi: "BR"))) + +(define (make-table-endnotes) + (let* ((footnotes (select-elements (descendants (current-node)) + (normalize "footnote"))) + (tgroup (ancestor-member (current-node) (list (normalize "tgroup")))) + (cols (string->number (attribute-string (normalize "cols") tgroup)))) + (if (node-list-empty? footnotes) + (empty-sosofo) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "COLSPAN" (number->string cols))) + (make-table-endnote-header) + (with-mode table-footnote-mode + (process-node-list footnotes))))))) + +(mode table-footnote-mode + (element footnote + (process-children)) + + (element (footnote para) + (let* ((target (parent (current-node))) + (fnnum (table-footnote-number target)) + (idstr (if (attribute-string (normalize "id") target) + (attribute-string (normalize "id") target) + (generate-anchor target)))) + (make sequence + (if (= (child-number) 1) + (make element gi: "A" + attributes: (list (list "NAME" (string-append "FTN." idstr))) + (literal fnnum + (gentext-label-title-sep (normalize "footnote")))) + (empty-sosofo)) + (process-children) + (make empty-element gi: "BR"))))) + diff --git a/html/dbgloss.dsl b/html/dbgloss.dsl new file mode 100644 index 0000000..3e83a20 --- /dev/null +++ b/html/dbgloss.dsl @@ -0,0 +1,193 @@ +;; $Id: dbgloss.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= GLOSSARY ELEMENTS ========================== + +;; HACK ALERT! There is no top-level wrapper around one or more GLOSSENTRYs, +;; so this code has to look around and output the right thing for the +;; front matter and then the GLOSSENTRYs. Ugh. + +(define ($glossary-frontmatter$) + (let loop ((nl (children (current-node))) (headlist (empty-node-list))) + (if (node-list-empty? nl) + headlist + (if (equal? (gi (node-list-first nl)) (normalize "glossentry")) + headlist + (loop (node-list-rest nl) (node-list + headlist + (node-list-first nl))))))) + +(define ($glossary-glossentrys$) + (let loop ((nl (children (current-node))) (gelist (empty-node-list))) + (if (node-list-empty? nl) + gelist + (loop (node-list-rest nl) + (if (equal? (gi (node-list-first nl)) (normalize "glossentry")) + (node-list gelist (node-list-first nl)) + gelist))))) + +(define ($glossary-body$) + (make element gi: "DIV" + attributes: '(("CLASS" "GLOSSARY")) + ($component-title$) + (process-node-list ($glossary-frontmatter$)) + (if (not (node-list-empty? ($glossary-glossentrys$))) + (make element gi: "DL" + (process-node-list ($glossary-glossentrys$))) + (empty-sosofo)))) + +(element glossary + (html-document (with-mode head-title-mode + (literal (element-title-string (current-node)))) + ($glossary-body$))) + +(element (glossary title) (empty-sosofo)) + +(element glossdiv + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + ($section-title$) + (process-node-list ($glossary-frontmatter$)) + (if (not (node-list-empty? ($glossary-glossentrys$))) + (make element gi: "DL" + (process-node-list ($glossary-glossentrys$))) + (empty-sosofo)))) + +(element (glossdiv title) (empty-sosofo)) + +(element glosslist + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "DL" + (process-children)))) + +(element glossentry (process-children)) + +(element (glossentry glossterm) + (let ((id (attribute-string (normalize "id") (parent (current-node))))) + (make element gi: "DT" + (if id + (make sequence + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (empty-sosofo)) + (make element gi: "B" + (process-children))) + (make element gi: "B" + (process-children)))))) + +(element (glossentry acronym) + (make sequence + (literal " (") + (process-children) + (literal ")"))) + +(element (glossentry abbrev) (empty-sosofo)) + +(element (glossentry glossdef) + (make element gi: "DD" + (process-children))) + +(element (glossterm revhistory) + (empty-sosofo)) + +(element (glossentry glosssee) + (make element gi: "DD" + (if (attribute-string (normalize "otherterm")) + (make element gi: "P" + (make element gi: "EM" + (literal (gentext-element-name (gi)) + (gentext-label-title-sep (gi)))) + (make element gi: "A" + attributes: (list (list "HREF" + (link-target + (attribute-string + (normalize "otherterm"))))) + (with-mode otherterm + (process-element-with-id + (attribute-string (normalize "otherterm")))))) + (process-children)))) + +;; When we hit the first GLOSSSEEALSO, process all of them as a node-list +(element glossseealso + (if (first-sibling?) + (make element gi: "P" + (make sequence + (make element gi: "EM" + (literal (gentext-element-name (gi)) + (gentext-label-title-sep (gi)))) + (with-mode glossseealso + (process-node-list + (select-elements (children (parent)) '(glossseealso)))) + (literal "."))) + (empty-sosofo))) + +(mode glossseealso + (element glossseealso + (make sequence + (if (first-sibling?) + (empty-sosofo) + (make element gi: "EM" + (literal ", "))) + (if (attribute-string (normalize "otherterm")) ;; but this should be required... + (make element gi: "A" + attributes: (list (list "HREF" + (link-target + (attribute-string + (normalize "otherterm"))))) + (with-mode otherterm + (process-element-with-id + (attribute-string (normalize "otherterm"))))) + (process-children))))) + +;; This is referenced within the GLOSSSEE and GLOSSSEEALSO element +;; construction expressions. The OTHERTERM attributes on GLOSSSEE and +;; GLOSSSEEALSO (should) refer to GLOSSENTRY elements but we're only +;; interested in the text within the GLOSSTERM. Discard the revision +;; history and the definition from the referenced term. +(mode otherterm + (element glossterm + (process-children)) + (element glossdef + (empty-sosofo)) + (element revhistory + (empty-sosofo)) + (element glosssee + (empty-sosofo)) + (element (glossentry acronym) + (empty-sosofo)) + (element (glossentry abbrev) + (empty-sosofo))) + +;; an inline gloss term +(element glossterm + (let* ((linkend (attribute-string (normalize "linkend")))) + (if linkend + (make element gi: "A" + attributes: (list (list "HREF" (href-to (element-with-id + linkend)))) + ($italic-seq$)) + ($italic-seq$)))) + +;; a first glossterm +(element firstterm + (let* ((linkend (attribute-string (normalize "linkend"))) + (sosofo (if linkend + (make element gi: "A" + attributes: (list (list "HREF" + (href-to + (element-with-id + linkend)))) + ($italic-seq$)) + ($italic-seq$)))) + (if firstterm-bold + (make element gi: "B" + sosofo) + sosofo))) + diff --git a/html/dbgraph.dsl b/html/dbgraph.dsl new file mode 100644 index 0000000..d3c0371 --- /dev/null +++ b/html/dbgraph.dsl @@ -0,0 +1,218 @@ +;; $Id: dbgraph.dsl,v 1.6 2003/03/25 19:53:40 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ==================== GRAPHICS ==================== + +(define (graphic-file filename) + (let ((ext (file-extension filename))) + (if (or (not filename) + (not %graphic-default-extension%) + (member ext %graphic-extensions%)) + filename + (string-append filename "." %graphic-default-extension%)))) + +(define (graphic-attrs imagefile instance-alt) + (let* ((grove (sgml-parse image-library-filename)) + (imagelib (node-property 'document-element + (node-property 'grove-root grove))) + (images (select-elements (children imagelib) "image")) + (image (let loop ((imglist images)) + (if (node-list-empty? imglist) + #f + (if (equal? (attribute-string + "filename" + (node-list-first imglist)) + imagefile) + (node-list-first imglist) + (loop (node-list-rest imglist)))))) + (prop (if image + (select-elements (children image) "properties") + #f)) + (metas (if prop + (select-elements (children prop) "meta") + #f)) + (attrs (if metas + (let loop ((meta metas) (attrlist '())) + (if (node-list-empty? meta) + attrlist + (if (equal? (attribute-string + "imgattr" + (node-list-first meta)) + "yes") + (loop (node-list-rest meta) + (append attrlist + (list + (list + (attribute-string + "name" + (node-list-first meta)) + (attribute-string + "content" + (node-list-first meta)))))) + (loop (node-list-rest meta) attrlist)))) + '())) + (width (if prop (attribute-string "width" prop) #f)) + (height (if prop (attribute-string "height" prop) #f)) + (alttext (if image + (select-elements (children image) "alttext") + (empty-node-list))) + (alt (if instance-alt + instance-alt + (if (node-list-empty? alttext) + #f + (data alttext))))) + (if (or width height alt (not (null? attrs))) + (append + attrs + (if width (list (list "WIDTH" width)) '()) + (if height (list (list "HEIGHT" height)) '()) + (if (not (node-list-empty? alttext)) (list (list "ALT" alt)) '())) + '()))) + +(define ($graphic$ fileref + #!optional (format #f) (alt #f) (align #f) (width #f) (height #f)) + (let ((img-attr (append + (list (list "SRC" (graphic-file fileref))) + (if align (list (list "ALIGN" align)) '()) + (if width (list (list "WIDTH" width)) '()) + (if height (list (list "HEIGHT" height)) '()) + (if image-library (graphic-attrs fileref alt) '())))) + (make empty-element gi: "IMG" + attributes: img-attr))) + +(define ($img$ #!optional (nd (current-node)) (alt #f)) + ;; This function now supports an extension to DocBook. It's + ;; either a clever trick or an ugly hack, depending on your + ;; point of view, but it'll hold us until XLink is finalized + ;; and we can extend DocBook the "right" way. + ;; + ;; If the entity passed to GRAPHIC has the FORMAT + ;; "LINESPECIFIC", either because that's what's specified or + ;; because it's the notation of the supplied ENTITYREF, then + ;; the text of the entity is inserted literally (via Jade's + ;; read-entity external procedure). + ;; + (let* ((fileref (attribute-string (normalize "fileref") nd)) + (entityref (attribute-string (normalize "entityref") nd)) + (format (if (attribute-string (normalize "format") nd) + (attribute-string (normalize "format") nd) + (if entityref + (entity-notation entityref) + #f))) + (align (attribute-string (normalize "align") nd)) + (width (attribute-string (normalize "width") nd)) + (height (attribute-string (normalize "depth") nd))) + (if (or fileref entityref) + (if (equal? format (normalize "linespecific")) + (if fileref + (include-file fileref) + (include-file (entity-generated-system-id entityref))) + (if fileref + ($graphic$ fileref format alt align width height) + ($graphic$ (system-id-filename entityref) + format alt align width height))) + (empty-sosofo)))) + +(element graphic + (make element gi: "P" + ($img$))) + +(element inlinegraphic + ($img$)) + +;; ====================================================================== +;; MediaObject and friends... + +(define preferred-mediaobject-notations + (list "JPG" "JPEG" "PNG" "linespecific")) + +(define preferred-mediaobject-extensions + (list "jpeg" "jpg" "png" "avi" "mpg" "mpeg" "qt")) + +(define acceptable-mediaobject-notations + (list "GIF" "GIF87a" "GIF89a" "BMP" "WMF")) + +(define acceptable-mediaobject-extensions + (list "gif" "bmp" "wmf")) + +(element mediaobject + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "P" + ($mediaobject$)))) + +(element inlinemediaobject + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + ($mediaobject$))) + +(element mediaobjectco + (process-children)) + +(element imageobjectco + (process-children)) + +(element objectinfo + (empty-sosofo)) + +(element videoobject + (process-children)) + +(element videodata + (let ((filename (data-filename (current-node)))) + (make element gi: "EMBED" + attributes: (list (list "SRC" filename))))) + +(element audioobject + (process-children)) + +(element audiodata + (let ((filename (data-filename (current-node)))) + (make element gi: "EMBED" + attributes: (list (list "SRC" filename))))) + +(element imageobject + (process-children)) + +(element imagedata + (let* ((filename (data-filename (current-node))) + (mediaobj (parent (parent (current-node)))) + (textobjs (select-elements (children mediaobj) + (normalize "textobject"))) + (alttext (let loop ((nl textobjs) (alttext #f)) + (if (or alttext (node-list-empty? nl)) + alttext + (let ((phrase (select-elements + (children + (node-list-first nl)) + (normalize "phrase")))) + (if (node-list-empty? phrase) + (loop (node-list-rest nl) #f) + (loop (node-list-rest nl) + (data (node-list-first phrase)))))))) + (fileref (attribute-string (normalize "fileref"))) + (entityref (attribute-string (normalize "entityref"))) + (format (if (attribute-string (normalize "format")) + (attribute-string (normalize "format")) + (if entityref + (entity-notation entityref) + #f)))) + (if (equal? format (normalize "linespecific")) + (if fileref + (include-file fileref) + (include-file (entity-generated-system-id entityref))) + ($img$ (current-node) alttext)))) + +(element textobject + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + +(element caption + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + diff --git a/html/dbhtml.dsl b/html/dbhtml.dsl new file mode 100644 index 0000000..e23f56b --- /dev/null +++ b/html/dbhtml.dsl @@ -0,0 +1,446 @@ +;; $Id: dbhtml.dsl,v 1.5 2004/10/10 11:55:10 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ====================================================================== +;; HTML Linking... +;; + +(define (element-id #!optional (nd (current-node))) + ;; IDs of TITLEs are the IDs of the PARENTs + (let ((elem (if (equal? (gi nd) + (normalize "title")) + (parent nd) + nd))) + (if (attribute-string (normalize "id") elem) + (attribute-string (normalize "id") elem) + (generate-anchor elem)))) + +(define (link-target idstring) + ;; Return the HTML HREF for the given idstring. For RefEntrys, this is + ;; just the name of the file, for anything else it's the name of the file + ;; with the fragment identifier for the specified id. + (href-to (element-with-id idstring))) + +(define (generate-anchor #!optional (nd (current-node))) + (string-append "AEN" (number->string (all-element-number nd)))) + +(define (generate-xptr #!optional (nd (current-node))) + ;; returns the location of the current node in a modified xptr + ;; syntax. This used to be used to calculate unique anchor names + ;; in the HTML document. all-element-number seems like a better + ;; way to go...so this function is probably never called anymore. + (let loop ((suffix "") + (nd nd)) + (let ((eid (id nd))) + (if eid + (string-append "I(" + eid + ")" + (if (= (string-length suffix) 0) + "" + (string-append "C" + suffix))) + (let ((par (parent nd))) + (if (not (node-list-empty? par)) + (loop (string-append "(" + (number->string (child-number nd)) + "," + (gi nd) + ")" + suffix) + par) + (string-append (if (= (string-length suffix) 0) + "R" + "R,C") + suffix))))))) + +;; ====================================================================== +;; HTML output +;; + +(define (html-document title-sosofo body-sosofo) + (let* (;; Let's look these up once, so that we can avoid calculating + ;; them over and over again. + (prev (prev-chunk-element)) + (next (next-chunk-element)) + (prevm (prev-major-component-chunk-element)) + (nextm (next-major-component-chunk-element)) + (navlist (list prev next prevm nextm)) + + ;; Let's make it possible to control the output even in the + ;; nochunks case. Note: in the nochunks case, (chunk?) will + ;; return #t for only the root element. + (make-entity? (and (or (not nochunks) rootchunk) + (chunk?))) + + (make-head? (or make-entity? + (and nochunks + (node-list=? (current-node) + (sgml-root-element))))) + (doc-sosofo + (if make-head? + (make element gi: "HTML" + (make element gi: "HEAD" + (make element gi: "TITLE" title-sosofo) + ($standard-html-header$ prev next prevm nextm)) + (make element gi: "BODY" + attributes: (append + (list (list "CLASS" (gi))) + %body-attr%) + (header-navigation (current-node) navlist) + body-sosofo + (footer-navigation (current-node) navlist))) + body-sosofo))) + (if make-entity? + (make entity + system-id: (html-entity-file (html-file)) + (html-doctype) + doc-sosofo) + (if (node-list=? (current-node) (sgml-root-element)) + (make sequence + (html-doctype) + doc-sosofo) + doc-sosofo)))) + +(define (html-doctype) + (cond + ((and %html-pubid% %html-sysid%) + (make document-type + name: "HTML" + public-id: %html-pubid% + system-id: %html-sysid%)) + (%html-pubid% + (make document-type + name: "HTML" + public-id: %html-pubid%)) + (%html-sysid% + (make document-type + name: "HTML" + system-id: %html-sysid%)) + (else + (empty-sosofo)))) + +(define ($standard-html-header$ #!optional + (prev (prev-chunk-element)) + (next (next-chunk-element)) + (prevm (prev-major-component-chunk-element)) + (nextm (next-major-component-chunk-element))) + ;; A hook function to add additional tags to the HEAD of your HTML files + (let* ((info (info-element)) + (kws (select-elements (descendants info) (normalize "keyword"))) + (home (nav-home (current-node))) + (up (parent (current-node)))) + (make sequence + ;; Add the META NAME=GENERATOR tag + (make empty-element gi: "META" + attributes: (list (list "NAME" "GENERATOR") + (list "CONTENT" (stylesheet-version)))) + + ;; Add the LINK REV=MADE tag + (if %link-mailto-url% + (make empty-element gi: "LINK" + attributes: (list (list "REV" "MADE") + (list "HREF" %link-mailto-url%))) + (empty-sosofo)) + + ;; Add the LINK REL=HOME tag + (if (nav-home? (current-node)) + (make empty-element gi: "LINK" + attributes: (append '(("REL" "HOME")) + (if (equal? (element-title-string home) + "") + '() + (list + (list "TITLE" + (element-title-string home)))) + (list (list "HREF" (href-to home))))) + (empty-sosofo)) + + ;; Add the LINK REL=UP tag + (if (nav-up? (current-node)) + (if (or (node-list-empty? up) + (node-list=? up (sgml-root-element))) + (empty-sosofo) + (make empty-element gi: "LINK" + attributes: (append '(("REL" "UP")) + (if (equal? (element-title-string up) + "") + '() + (list + (list "TITLE" + (element-title-string up)))) + (list (list "HREF" (href-to up)))))) + (empty-sosofo)) + + ;; Add the LINK REL=PREVIOUS tag + (if (node-list-empty? prev) + (empty-sosofo) + (make empty-element gi: "LINK" + attributes: (append '(("REL" "PREVIOUS")) + (if (equal? (element-title-string prev) "") + '() + (list + (list "TITLE" + (element-title-string prev)))) + (list (list "HREF" (href-to prev)))))) + + ;; Add the LINK REL=NEXT tag + (if (node-list-empty? next) + (empty-sosofo) + (make empty-element gi: "LINK" + attributes: (append '(("REL" "NEXT")) + (if (equal? (element-title-string next) "") + '() + (list + (list "TITLE" + (element-title-string next)))) + (list (list "HREF" (href-to next)))))) + + ;; Add META NAME=KEYWORD tags + (let loop ((nl kws)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (make empty-element gi: "META" + attributes: (list (list "NAME" "KEYWORD") + (list "CONTENT" (data (node-list-first nl))))) + (loop (node-list-rest nl))))) + + ;; Add LINK REL=STYLESHEET tag + (if %stylesheet% + (make empty-element gi: "LINK" + attributes: (list (list "REL" "STYLESHEET") + (list "TYPE" %stylesheet-type%) + (list "HREF" %stylesheet%))) + (empty-sosofo)) + + ($user-html-header$ home up prev next)))) + +(define ($user-html-header$ #!optional + (home (empty-node-list)) + (up (empty-node-list)) + (prev (empty-node-list)) + (next (empty-node-list))) + ;; Add additional header tags. + (let loop ((tl %html-header-tags%)) + (if (null? tl) + (empty-sosofo) + (make sequence + (make empty-element gi: (car (car tl)) + attributes: (cdr (car tl))) + (loop (cdr tl)))))) + +(define ($html-body-start$) + (empty-sosofo)) + +(define ($html-body-content-start$) + (empty-sosofo)) + +(define ($html-body-content-end$) + (empty-sosofo)) + +(define ($html-body-end$) + (empty-sosofo)) + +(define (dingbat usrname) + ;; Print dingbats and other characters selected by name + (let ((name (case-fold-down usrname))) + (case name + ;; For backward compatibility + (("copyright") "(C)") + (("trademark") "TM") + + ;; Straight out of Unicode + (("ldquo") "\"") + (("rdquo") "\"") + (("lsquo") "'") + (("rsquo") "'") + (("ldquor") "\"") + (("rdquor") "\"") + (("raquo") ">>") + (("laquo") "<<") + (("rsaquo") ">") + (("lsaquo") "<") + (("nbsp") " ") + (("en-dash") "-") + (("em-dash") "--") + (("en-space") " ") + (("em-space") " ") + (("bullet") "*") + (("copyright-sign") "(C)") + (("registered-sign") "(R)") + (else + (let ((err (debug (string-append "No dingbat defined for: " name)))) + "*"))))) + +(define (dingbat-sosofo usrname) + ;; Print dingbats and other characters selected by name + (let ((name (case-fold-down usrname))) + (case name + ;; For backward compatibility + (("copyright") (make entity-ref name: "copy")) + (("trademark") (make entity-ref name: "trade")) + + ;; Straight out of Unicode + (("ldquo") (literal "\"")) + (("rdquo") (literal "\"")) + (("lsquo") "'") + (("rsquo") "'") + (("raquo") (literal "\"")) + (("laquo") (literal "\"")) + (("rsaquo") (literal "\"")) + (("lsaquo") (literal "\"")) + (("nbsp") (make entity-ref name: "nbsp")) + (("en-dash") (literal "-")) + (("em-dash") (literal "--")) + (("en-space") (make entity-ref name: "nbsp")) + (("em-space") (make sequence + (make entity-ref name: "nbsp") + (make entity-ref name: "nbsp"))) + (("bullet") (literal "*")) + (("copyright-sign") (make entity-ref name: "copy")) + (("registered-sign") (literal "(R)")) + (else + (let ((err (debug (string-append "No dingbat defined for: " name)))) + (literal "*")))))) + +(define (para-check #!optional (place 'stop)) + (let ((inpara (equal? (gi (parent (current-node))) (normalize "para")))) + (if (and %fix-para-wrappers% inpara) + (if (equal? place 'stop) + (make formatting-instruction data: "</P>") + (make formatting-instruction data: "<P>")) + (empty-sosofo)))) + +;; ====================================================================== +;; HTML element functions + +(define ($block-container$) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (process-children))) + +(define ($paragraph$ #!optional (para-wrapper "P")) + (let ((footnotes (select-elements (descendants (current-node)) + (normalize "footnote"))) + (tgroup (have-ancestor? (normalize "tgroup")))) + (make sequence + (make element gi: para-wrapper + attributes: (append + (if %default-quadding% + (list (list "ALIGN" %default-quadding%)) + '())) + (process-children)) + (if (or %footnotes-at-end% tgroup (node-list-empty? footnotes)) + (empty-sosofo) + (make element gi: "BLOCKQUOTE" + attributes: (list + (list "CLASS" "FOOTNOTES")) + (with-mode footnote-mode + (process-node-list footnotes))))))) + +(define ($indent-para-container$) + (make element gi: "BLOCKQUOTE" + attributes: (list + (list "CLASS" (gi))) + (process-children))) + +(define ($bold-seq$ #!optional (sosofo (process-children))) + (make element gi: "B" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($italic-seq$ #!optional (sosofo (process-children))) + (make element gi: "I" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($bold-italic-seq$ #!optional (sosofo (process-children))) + (make element gi: "B" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "I" + sosofo))) + +(define ($mono-seq$ #!optional (sosofo (process-children))) + ;; please avoid using this, TT is presentational + (make element gi: "TT" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($code-seq$ #!optional (sosofo (process-children))) + ;; fragments of computer code + (make element gi: "CODE" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($samp-seq$ #!optional (sosofo (process-children))) + ;; sample output from programs, scripts, etc + (make element gi: "SAMP" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($kbd-seq$ #!optional (sosofo (process-children))) + ;; text to be entered by the user + (make element gi: "KBD" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($abbr-seq$ #!optional (sosofo (process-children))) + ;; abbreviated form + ;; FIXME: html4 only + (make element gi: "ABBR" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($acronym-seq$ #!optional (sosofo (process-children))) + ;; FIXME: html4 only + (make element gi: "ACRONYM" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($var-seq$ #!optional (sosofo (process-children))) + ;; variable or program argument + (make element gi: "VAR" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +(define ($italic-mono-seq$ #!optional (sosofo (process-children))) + (make element gi: "TT" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "I" + sosofo))) + +(define ($bold-mono-seq$ #!optional (sosofo (process-children))) + (make element gi: "TT" + attributes: (list + (list "CLASS" (gi))) + (make element gi: "B" + sosofo))) + +(define ($charseq$ #!optional (sosofo (process-children))) + (make element gi: "SPAN" + attributes: (list + (list "CLASS" (gi))) + sosofo)) + +;; EOF dbhtml.dsl + + diff --git a/html/dbindex.dsl b/html/dbindex.dsl new file mode 100644 index 0000000..e73a1d5 --- /dev/null +++ b/html/dbindex.dsl @@ -0,0 +1,374 @@ +;; $Id: dbindex.dsl,v 1.5 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ................... INDEX TERMS (EMBEDDED MARKERS) ................... + +(element indexterm + (if html-index + (let* ((id (if (attribute-string (normalize "id")) + (attribute-string (normalize "id")) + (generate-anchor)))) + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo))) + (empty-sosofo))) + +(element primary (empty-sosofo)) +(element secondary (empty-sosofo)) +(element tertiary (empty-sosofo)) +(element see (empty-sosofo)) +(element seealso (empty-sosofo)) + +;; =========================== INDEX ELEMENTS =========================== + +(element (setindex title) (empty-sosofo)) +(element setindex + (let ((preamble (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "indexentry")))) + (entries (node-list-filter-by-gi + (children (current-node)) + (list (normalize "indexentry"))))) + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($component-separator$) + ($component-title$) + (process-node-list preamble) + (if (node-list-empty? entries) + (empty-sosofo) + (make element gi: "DL" + (process-node-list entries))))))) + +(element (index title) (empty-sosofo)) +(element index + (let ((preamble (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "indexentry")))) + (entries (node-list-filter-by-gi + (children (current-node)) + (list (normalize "indexentry"))))) + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($component-separator$) + ($component-title$) + (process-node-list preamble) + (if (node-list-empty? entries) + (empty-sosofo) + (make element gi: "DL" + (process-node-list entries))))))) + + +(element (indexdiv title) (empty-sosofo)) +(element indexdiv + (let ((preamble (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "indexentry")))) + (entries (node-list-filter-by-gi + (children (current-node)) + (list (normalize "indexentry"))))) + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($section-separator$) + ($section-title$) + (process-node-list preamble) + (if (node-list-empty? entries) + (empty-sosofo) + (make element gi: "DL" + (process-node-list entries))))))) + +(define (break-node-list nodes breakatgi) + ;; Given a _node_ list "PRIM SEC TERT SEC SEC TERT PRIM SEC PRIM PRIM" + ;; and the breakatgi of "PRIM", returns the _list_ of _node_ lists: + ;; '("PRIM SEC TERT SEC SEC TERT" "PRIM SEC" "PRIM" "PRIM") + (let loop ((nl nodes) (result '()) (curlist (empty-node-list))) + (if (node-list-empty? nl) + (if (node-list-empty? curlist) + result + (append result (list curlist))) + (if (equal? (gi (node-list-first nl)) breakatgi) + (loop (node-list-rest nl) + (if (node-list-empty? curlist) + result + (append result (list curlist))) + (node-list-first nl)) + (loop (node-list-rest nl) + result + (node-list curlist (node-list-first nl))))))) + +(define (process-primary primnode secnl) + (let ((see? (equal? (gi (node-list-first secnl)) + (normalize "seeie"))) + (seealso? (equal? (gi (node-list-first secnl)) + (normalize "seealsoie"))) + (second (break-node-list secnl (normalize "secondaryie")))) + (if (or see? seealso?) + (process-terminal primnode secnl #t) + (make sequence + (process-nonterminal primnode) + (if (node-list-empty? secnl) + (empty-sosofo) + (make element gi: "DD" + (make element gi: "DL" + (let sloop ((secs second)) + (if (null? secs) + (empty-sosofo) + (make sequence + (let* ((nodes (car secs)) + (sec (node-list-first nodes)) + (terts (node-list-rest nodes))) + (process-secondary sec terts)) + (sloop (cdr secs)))))))))))) + +(define (process-secondary secnode tertnl) + (let ((see? (equal? (gi (node-list-first tertnl)) + (normalize "seeie"))) + (seealso? (equal? (gi (node-list-first tertnl)) + (normalize "seealsoie"))) + (tert (break-node-list tertnl (normalize "tertiaryie")))) + (if (or see? seealso?) + (process-terminal secnode tertnl) + (make sequence + (process-nonterminal secnode) + (make element gi: "DD" + (make element gi: "DL" + (let tloop ((terts tert)) + (if (null? terts) + (empty-sosofo) + (make sequence + (let* ((nodes (car terts)) + (tert (node-list-first nodes)) + (sees (node-list-rest nodes))) + (process-tertiary tert sees)) + (tloop (cdr terts))))))))))) + +(define (process-tertiary tertnode seenl) + (process-terminal tertnode seenl)) + +(define (process-terminal node seenl #!optional (output-id #f)) + (let ((id (attribute-string (normalize "id") (parent node)))) + (make sequence + (make element gi: "DT" + (if id + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + (process-node-list node)) + (if (node-list-empty? seenl) + (empty-sosofo) + (make element gi: "DD" + (make element gi: "DL" + (let loop ((nl seenl)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (make element gi: "DT" + (process-node-list + (node-list-first nl))) + (loop (node-list-rest nl))))))))))) + +(define (process-nonterminal node) + (make element gi: "DT" + (process-node-list node))) + +(element indexentry + (let* ((primary (break-node-list (children (current-node)) + (normalize "primaryie")))) + (make sequence + (let ploop ((prims primary)) + (if (null? prims) + (empty-sosofo) + (make sequence + (let* ((nodes (car prims)) + (prim (node-list-first nodes)) + (secs (node-list-rest nodes))) + (process-primary prim secs)) + (ploop (cdr prims)))))))) + +(element primaryie (process-children)) +(element secondaryie (process-children)) +(element tertiaryie (process-children)) + +(define (indexentry-link nd) + (let* ((preferred (not (node-list-empty? + (select-elements (children (current-node)) + (normalize "emphasis")))))) + (make element gi: "A" + attributes: (list (list "HREF" + (attribute-string (normalize "url")))) + (process-children)))) + +(element (primaryie ulink) + (indexentry-link (current-node))) + +(element (secondaryie ulink) + (indexentry-link (current-node))) + +(element (tertiaryie ulink) + (indexentry-link (current-node))) + +(element seeie + (let ((linkend (attribute-string (normalize "linkend")))) + (if linkend + (make element gi: "A" + attributes: (list (list "HREF" + (href-to (element-with-id linkend)))) + (literal (gentext-element-name (current-node))) + (literal (gentext-label-title-sep (current-node))) + (process-children)) + (make sequence + (literal (gentext-element-name (current-node))) + (literal (gentext-label-title-sep (current-node))) + (process-children))))) + +(element seealsoie + (let* ((alinkends (attribute-string (normalize "linkends"))) + (linkends (if alinkends + (split alinkends) + '())) + (linkend (if alinkends + (car linkends) + #f))) + (if linkend + (make element gi: "A" + attributes: (list (list "HREF" + (href-to (element-with-id linkend)))) + (literal (gentext-element-name (current-node))) + (literal (gentext-label-title-sep (current-node))) + (process-children)) + (make sequence + (literal (gentext-element-name (current-node))) + (literal (gentext-label-title-sep (current-node))) + (process-children))))) + +;; =====================HTML INDEX PROCESSING ============================== + +(define (htmlnewline) + (make formatting-instruction data: " ")) + +(define (htmlindexattr attr) + (if (attribute-string (normalize attr)) + (make sequence + (make formatting-instruction data: attr) + (make formatting-instruction data: " ") + (make formatting-instruction data: (attribute-string + (normalize attr))) + (htmlnewline)) + (empty-sosofo))) + +(define (htmlindexterm) + (let* ((attr (gi (current-node))) + (content (data (current-node))) + (string (string-replace content " " " ")) + (sortas (attribute-string (normalize "sortas")))) + (make sequence + (make formatting-instruction data: attr) + (if sortas + (make sequence + (make formatting-instruction data: "[") + (make formatting-instruction data: sortas) + (make formatting-instruction data: "]")) + (empty-sosofo)) + (make formatting-instruction data: " ") + (make formatting-instruction data: string) + (htmlnewline)))) + +(define (htmlindexzone zone) + (let loop ((idlist (split zone))) + (if (null? idlist) + (empty-sosofo) + (make sequence + (htmlindexzone1 (car idlist)) + (loop (cdr idlist)))))) + +(define (htmlindexzone1 id) + (let* ((target (ancestor-member (element-with-id id) + (append (book-element-list) + (division-element-list) + (component-element-list) + (section-element-list)))) + (title (string-replace (element-title-string target) " " " "))) + (make sequence + (make formatting-instruction data: "ZONE ") + (make formatting-instruction data: (href-to target)) + (htmlnewline) + + (make formatting-instruction data: "TITLE ") + (make formatting-instruction data: title) + (htmlnewline)))) + +(mode htmlindex + ;; this mode is really just a hack to get at the root element + (root (process-children)) + + (default + (if (node-list=? (current-node) (sgml-root-element)) + (make entity + system-id: (html-entity-file html-index-filename) + (process-node-list (select-elements + (descendants (current-node)) + (normalize "indexterm")))) + (empty-sosofo))) + + (element indexterm + (let* ((target (ancestor-member (current-node) + (append (book-element-list) + (division-element-list) + (component-element-list) + (section-element-list)))) + (title (string-replace (element-title-string target) " " " "))) + (make sequence + (make formatting-instruction data: "INDEXTERM ") + (make formatting-instruction data: (href-to target)) + (htmlnewline) + + (make formatting-instruction data: "INDEXPOINT ") + (make formatting-instruction data: (href-to (current-node))) + (htmlnewline) + + (make formatting-instruction data: "TITLE ") + (make formatting-instruction data: title) + (htmlnewline) + + (htmlindexattr "scope") + (htmlindexattr "significance") + (htmlindexattr "class") + (htmlindexattr "id") + (htmlindexattr "startref") + + (if (attribute-string (normalize "zone")) + (htmlindexzone (attribute-string (normalize "zone"))) + (empty-sosofo)) + + (process-children) + + (make formatting-instruction data: "/INDEXTERM") + (htmlnewline)))) + + (element primary + (htmlindexterm)) + + (element secondary + (htmlindexterm)) + + (element tertiary + (htmlindexterm)) + + (element see + (htmlindexterm)) + + (element seealso + (htmlindexterm)) +) diff --git a/html/dbinfo.dsl b/html/dbinfo.dsl new file mode 100644 index 0000000..5d03246 --- /dev/null +++ b/html/dbinfo.dsl @@ -0,0 +1,879 @@ +;; $Id: dbinfo.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ................................ INFO ................................ + +;; Rather than make the *INFO containers empty-sosofos, we make them +;; process-children and then make all of the elements they may contain +;; empty in this context. The advantage here is that we can then +;; more easily override some of them in stylesheets that use this one. + +;; SetInfo is handled differently in dbdivis.dsl by using a +;; special mode... + +(element setinfo (empty-sosofo)) + +(element (setinfo abbrev) (process-children)) +(element (setinfo abstract) (process-children)) +(element (setinfo address) (process-children)) +(element (setinfo affiliation) (process-children)) +(element (setinfo artpagenums) (process-children)) +(element (setinfo author) (process-children)) +(element (setinfo authorblurb) (process-children)) +(element (setinfo authorgroup) (process-children)) +(element (setinfo authorinitials) (process-children)) +(element (setinfo bibliomisc) (process-children)) +(element (setinfo biblioset) (process-children)) +(element (setinfo collab) (process-children)) +(element (setinfo confgroup) (process-children)) +(element (setinfo contractnum) (process-children)) +(element (setinfo contractsponsor) (process-children)) +(element (setinfo contrib) (process-children)) +(element (setinfo copyright) (process-children)) +(element (setinfo corpauthor) (process-children)) +(element (setinfo corpname) (process-children)) +(element (setinfo date) (process-children)) +(element (setinfo edition) (process-children)) +(element (setinfo editor) (process-children)) +(element (setinfo firstname) (process-children)) +(element (setinfo graphic) (process-children)) +(element (setinfo honorific) (process-children)) +(element (setinfo invpartnumber) (process-children)) +(element (setinfo isbn) (process-children)) +(element (setinfo issn) (process-children)) +(element (setinfo issuenum) (process-children)) +(element (setinfo itermset) (process-children)) +(element (setinfo keywordset) (process-children)) +(element (setinfo legalnotice) ($semiformal-object$)) +(element (setinfo lineage) (process-children)) +(element (setinfo modespec) (process-children)) +(element (setinfo orgname) (process-children)) +(element (setinfo othercredit) (process-children)) +(element (setinfo othername) (process-children)) +(element (setinfo pagenums) (process-children)) +(element (setinfo printhistory) (process-children)) +(element (setinfo productname) (process-children)) +(element (setinfo productnumber) (process-children)) +(element (setinfo pubdate) (process-children)) +(element (setinfo publisher) (process-children)) +(element (setinfo publishername) (process-children)) +(element (setinfo pubsnumber) (process-children)) +(element (setinfo releaseinfo) (process-children)) +(element (setinfo revhistory) ($book-revhistory$)) +(element (setinfo seriesvolnums) (process-children)) +(element (setinfo subjectset) (process-children)) +(element (setinfo subtitle) (process-children)) +(element (setinfo surname) (process-children)) +(element (setinfo title) (process-children)) +(element (setinfo titleabbrev) (process-children)) +(element (setinfo volumenum) (process-children)) + +;; BookInfo is handled differently in dbdivis.dsl by using a +;; special mode... + +(element bookinfo (empty-sosofo)) + +(element (bookinfo abbrev) (process-children)) +(element (bookinfo abstract) (process-children)) +(element (bookinfo address) (process-children)) +(element (bookinfo affiliation) (process-children)) +(element (bookinfo artpagenums) (process-children)) +(element (bookinfo author) (process-children)) +(element (bookinfo authorblurb) (process-children)) +(element (bookinfo authorgroup) (process-children)) +(element (bookinfo authorinitials) (process-children)) +(element (bookinfo bibliomisc) (process-children)) +(element (bookinfo biblioset) (process-children)) +(element (bookinfo bookbiblio) (process-children)) +(element (bookinfo collab) (process-children)) +(element (bookinfo confgroup) (process-children)) +(element (bookinfo contractnum) (process-children)) +(element (bookinfo contractsponsor) (process-children)) +(element (bookinfo contrib) (process-children)) +(element (bookinfo copyright) (process-children)) +(element (bookinfo corpauthor) (process-children)) +(element (bookinfo corpname) (process-children)) +(element (bookinfo date) (process-children)) +(element (bookinfo edition) (process-children)) +(element (bookinfo editor) (process-children)) +(element (bookinfo firstname) (process-children)) +(element (bookinfo graphic) (process-children)) +(element (bookinfo honorific) (process-children)) +(element (bookinfo invpartnumber) (process-children)) +(element (bookinfo isbn) (process-children)) +(element (bookinfo issn) (process-children)) +(element (bookinfo issuenum) (process-children)) +(element (bookinfo itermset) (process-children)) +(element (bookinfo keywordset) (process-children)) +(element (bookinfo legalnotice) ($semiformal-object$)) +(element (bookinfo lineage) (process-children)) +(element (bookinfo modespec) (process-children)) +(element (bookinfo orgname) (process-children)) +(element (bookinfo othercredit) (process-children)) +(element (bookinfo othername) (process-children)) +(element (bookinfo pagenums) (process-children)) +(element (bookinfo printhistory) (process-children)) +(element (bookinfo productname) (process-children)) +(element (bookinfo productnumber) (process-children)) +(element (bookinfo pubdate) (process-children)) +(element (bookinfo publisher) (process-children)) +(element (bookinfo publishername) (process-children)) +(element (bookinfo pubsnumber) (process-children)) +(element (bookinfo releaseinfo) (process-children)) +(element (bookinfo revhistory) ($book-revhistory$)) +(element (bookinfo seriesvolnums) (process-children)) +(element (bookinfo subjectset) (process-children)) +(element (bookinfo subtitle) (process-children)) +(element (bookinfo surname) (process-children)) +(element (bookinfo title) (process-children)) +(element (bookinfo titleabbrev) (process-children)) +(element (bookinfo volumenum) (process-children)) + +(element docinfo (empty-sosofo)) + +(element (docinfo abbrev) (empty-sosofo)) + +(element (docinfo abstract) + (make element gi: "DIV" + attributes: '(("CLASS" "ABSTRACT")) + (process-children))) + +(element (docinfo abstract para) + (make element gi: "P" + (process-children-trim))) + +(element (docinfo address) (empty-sosofo)) +(element (docinfo affiliation) (empty-sosofo)) +(element (docinfo artpagenums) (empty-sosofo)) +(element (docinfo author) (empty-sosofo)) +(element (docinfo authorblurb) (empty-sosofo)) +(element (docinfo authorgroup) (empty-sosofo)) +(element (docinfo authorinitials) (empty-sosofo)) +(element (docinfo bibliomisc) (empty-sosofo)) +(element (docinfo biblioset) (empty-sosofo)) +(element (docinfo collab) (empty-sosofo)) +(element (docinfo confgroup) (empty-sosofo)) +(element (docinfo contractnum) (empty-sosofo)) +(element (docinfo contractsponsor) (empty-sosofo)) +(element (docinfo contrib) (empty-sosofo)) +(element (docinfo copyright) (empty-sosofo)) +(element (docinfo corpauthor) (empty-sosofo)) +(element (docinfo corpname) (empty-sosofo)) +(element (docinfo date) (empty-sosofo)) +(element (docinfo edition) (empty-sosofo)) +(element (docinfo editor) (empty-sosofo)) +(element (docinfo firstname) (empty-sosofo)) +(element (docinfo graphic) (empty-sosofo)) +(element (docinfo honorific) (empty-sosofo)) +(element (docinfo invpartnumber) (empty-sosofo)) +(element (docinfo isbn) (empty-sosofo)) +(element (docinfo issn) (empty-sosofo)) +(element (docinfo issuenum) (empty-sosofo)) +(element (docinfo itermset) (empty-sosofo)) +(element (docinfo keywordset) (empty-sosofo)) +(element (docinfo legalnotice) (empty-sosofo)) +(element (docinfo lineage) (empty-sosofo)) +(element (docinfo modespec) (empty-sosofo)) +(element (docinfo orgname) (empty-sosofo)) +(element (docinfo othercredit) (empty-sosofo)) +(element (docinfo othername) (empty-sosofo)) +(element (docinfo pagenums) (empty-sosofo)) +(element (docinfo printhistory) (empty-sosofo)) +(element (docinfo productname) (empty-sosofo)) +(element (docinfo productnumber) (empty-sosofo)) +(element (docinfo pubdate) (empty-sosofo)) +(element (docinfo publisher) (empty-sosofo)) +(element (docinfo publishername) (empty-sosofo)) +(element (docinfo pubsnumber) (empty-sosofo)) +(element (docinfo releaseinfo) (empty-sosofo)) +(element (docinfo revhistory) (empty-sosofo)) +(element (docinfo seriesvolnums) (empty-sosofo)) +(element (docinfo subjectset) (empty-sosofo)) +(element (docinfo subtitle) (empty-sosofo)) +(element (docinfo surname) (empty-sosofo)) +(element (docinfo title) (empty-sosofo)) +(element (docinfo titleabbrev) (empty-sosofo)) +(element (docinfo volumenum) (empty-sosofo)) + +(element sect1info (process-children)) + +(element (sect1info abbrev) (empty-sosofo)) +(element (sect1info abstract) (empty-sosofo)) +(element (sect1info address) (empty-sosofo)) +(element (sect1info affiliation) (empty-sosofo)) +(element (sect1info artpagenums) (empty-sosofo)) +(element (sect1info author) (empty-sosofo)) +(element (sect1info authorblurb) (empty-sosofo)) +(element (sect1info authorgroup) (empty-sosofo)) +(element (sect1info authorinitials) (empty-sosofo)) +(element (sect1info bibliomisc) (empty-sosofo)) +(element (sect1info biblioset) (empty-sosofo)) +(element (sect1info collab) (empty-sosofo)) +(element (sect1info confgroup) (empty-sosofo)) +(element (sect1info contractnum) (empty-sosofo)) +(element (sect1info contractsponsor) (empty-sosofo)) +(element (sect1info contrib) (empty-sosofo)) +(element (sect1info copyright) (empty-sosofo)) +(element (sect1info corpauthor) (empty-sosofo)) +(element (sect1info corpname) (empty-sosofo)) +(element (sect1info date) (empty-sosofo)) +(element (sect1info edition) (empty-sosofo)) +(element (sect1info editor) (empty-sosofo)) +(element (sect1info firstname) (empty-sosofo)) +(element (sect1info graphic) (empty-sosofo)) +(element (sect1info honorific) (empty-sosofo)) +(element (sect1info invpartnumber) (empty-sosofo)) +(element (sect1info isbn) (empty-sosofo)) +(element (sect1info issn) (empty-sosofo)) +(element (sect1info issuenum) (empty-sosofo)) +(element (sect1info itermset) (empty-sosofo)) +(element (sect1info keywordset) (empty-sosofo)) +(element (sect1info legalnotice) (empty-sosofo)) +(element (sect1info lineage) (empty-sosofo)) +(element (sect1info modespec) (empty-sosofo)) +(element (sect1info orgname) (empty-sosofo)) +(element (sect1info othercredit) (empty-sosofo)) +(element (sect1info othername) (empty-sosofo)) +(element (sect1info pagenums) (empty-sosofo)) +(element (sect1info printhistory) (empty-sosofo)) +(element (sect1info productname) (empty-sosofo)) +(element (sect1info productnumber) (empty-sosofo)) +(element (sect1info pubdate) (empty-sosofo)) +(element (sect1info publisher) (empty-sosofo)) +(element (sect1info publishername) (empty-sosofo)) +(element (sect1info pubsnumber) (empty-sosofo)) +(element (sect1info releaseinfo) (empty-sosofo)) +(element (sect1info revhistory) (empty-sosofo)) +(element (sect1info seriesvolnums) (empty-sosofo)) +(element (sect1info subjectset) (empty-sosofo)) +(element (sect1info subtitle) (empty-sosofo)) +(element (sect1info surname) (empty-sosofo)) +(element (sect1info title) (empty-sosofo)) +(element (sect1info titleabbrev) (empty-sosofo)) +(element (sect1info volumenum) (empty-sosofo)) + +(element sect2info (process-children)) + +(element (sect2info abbrev) (empty-sosofo)) +(element (sect2info abstract) (empty-sosofo)) +(element (sect2info address) (empty-sosofo)) +(element (sect2info affiliation) (empty-sosofo)) +(element (sect2info artpagenums) (empty-sosofo)) +(element (sect2info author) (empty-sosofo)) +(element (sect2info authorblurb) (empty-sosofo)) +(element (sect2info authorgroup) (empty-sosofo)) +(element (sect2info authorinitials) (empty-sosofo)) +(element (sect2info bibliomisc) (empty-sosofo)) +(element (sect2info biblioset) (empty-sosofo)) +(element (sect2info collab) (empty-sosofo)) +(element (sect2info confgroup) (empty-sosofo)) +(element (sect2info contractnum) (empty-sosofo)) +(element (sect2info contractsponsor) (empty-sosofo)) +(element (sect2info contrib) (empty-sosofo)) +(element (sect2info copyright) (empty-sosofo)) +(element (sect2info corpauthor) (empty-sosofo)) +(element (sect2info corpname) (empty-sosofo)) +(element (sect2info date) (empty-sosofo)) +(element (sect2info edition) (empty-sosofo)) +(element (sect2info editor) (empty-sosofo)) +(element (sect2info firstname) (empty-sosofo)) +(element (sect2info graphic) (empty-sosofo)) +(element (sect2info honorific) (empty-sosofo)) +(element (sect2info invpartnumber) (empty-sosofo)) +(element (sect2info isbn) (empty-sosofo)) +(element (sect2info issn) (empty-sosofo)) +(element (sect2info issuenum) (empty-sosofo)) +(element (sect2info itermset) (empty-sosofo)) +(element (sect2info keywordset) (empty-sosofo)) +(element (sect2info legalnotice) (empty-sosofo)) +(element (sect2info lineage) (empty-sosofo)) +(element (sect2info modespec) (empty-sosofo)) +(element (sect2info orgname) (empty-sosofo)) +(element (sect2info othercredit) (empty-sosofo)) +(element (sect2info othername) (empty-sosofo)) +(element (sect2info pagenums) (empty-sosofo)) +(element (sect2info printhistory) (empty-sosofo)) +(element (sect2info productname) (empty-sosofo)) +(element (sect2info productnumber) (empty-sosofo)) +(element (sect2info pubdate) (empty-sosofo)) +(element (sect2info publisher) (empty-sosofo)) +(element (sect2info publishername) (empty-sosofo)) +(element (sect2info pubsnumber) (empty-sosofo)) +(element (sect2info releaseinfo) (empty-sosofo)) +(element (sect2info revhistory) (empty-sosofo)) +(element (sect2info seriesvolnums) (empty-sosofo)) +(element (sect2info subjectset) (empty-sosofo)) +(element (sect2info subtitle) (empty-sosofo)) +(element (sect2info surname) (empty-sosofo)) +(element (sect2info title) (empty-sosofo)) +(element (sect2info titleabbrev) (empty-sosofo)) +(element (sect2info volumenum) (empty-sosofo)) + +(element sect3info (process-children)) + +(element (sect3info abbrev) (empty-sosofo)) +(element (sect3info abstract) (empty-sosofo)) +(element (sect3info address) (empty-sosofo)) +(element (sect3info affiliation) (empty-sosofo)) +(element (sect3info artpagenums) (empty-sosofo)) +(element (sect3info author) (empty-sosofo)) +(element (sect3info authorblurb) (empty-sosofo)) +(element (sect3info authorgroup) (empty-sosofo)) +(element (sect3info authorinitials) (empty-sosofo)) +(element (sect3info bibliomisc) (empty-sosofo)) +(element (sect3info biblioset) (empty-sosofo)) +(element (sect3info collab) (empty-sosofo)) +(element (sect3info confgroup) (empty-sosofo)) +(element (sect3info contractnum) (empty-sosofo)) +(element (sect3info contractsponsor) (empty-sosofo)) +(element (sect3info contrib) (empty-sosofo)) +(element (sect3info copyright) (empty-sosofo)) +(element (sect3info corpauthor) (empty-sosofo)) +(element (sect3info corpname) (empty-sosofo)) +(element (sect3info date) (empty-sosofo)) +(element (sect3info edition) (empty-sosofo)) +(element (sect3info editor) (empty-sosofo)) +(element (sect3info firstname) (empty-sosofo)) +(element (sect3info graphic) (empty-sosofo)) +(element (sect3info honorific) (empty-sosofo)) +(element (sect3info invpartnumber) (empty-sosofo)) +(element (sect3info isbn) (empty-sosofo)) +(element (sect3info issn) (empty-sosofo)) +(element (sect3info issuenum) (empty-sosofo)) +(element (sect3info itermset) (empty-sosofo)) +(element (sect3info keywordset) (empty-sosofo)) +(element (sect3info legalnotice) (empty-sosofo)) +(element (sect3info lineage) (empty-sosofo)) +(element (sect3info modespec) (empty-sosofo)) +(element (sect3info orgname) (empty-sosofo)) +(element (sect3info othercredit) (empty-sosofo)) +(element (sect3info othername) (empty-sosofo)) +(element (sect3info pagenums) (empty-sosofo)) +(element (sect3info printhistory) (empty-sosofo)) +(element (sect3info productname) (empty-sosofo)) +(element (sect3info productnumber) (empty-sosofo)) +(element (sect3info pubdate) (empty-sosofo)) +(element (sect3info publisher) (empty-sosofo)) +(element (sect3info publishername) (empty-sosofo)) +(element (sect3info pubsnumber) (empty-sosofo)) +(element (sect3info releaseinfo) (empty-sosofo)) +(element (sect3info revhistory) (empty-sosofo)) +(element (sect3info seriesvolnums) (empty-sosofo)) +(element (sect3info subjectset) (empty-sosofo)) +(element (sect3info subtitle) (empty-sosofo)) +(element (sect3info surname) (empty-sosofo)) +(element (sect3info title) (empty-sosofo)) +(element (sect3info titleabbrev) (empty-sosofo)) +(element (sect3info volumenum) (empty-sosofo)) + +(element sect4info (process-children)) + +(element (sect4info abbrev) (empty-sosofo)) +(element (sect4info abstract) (empty-sosofo)) +(element (sect4info address) (empty-sosofo)) +(element (sect4info affiliation) (empty-sosofo)) +(element (sect4info artpagenums) (empty-sosofo)) +(element (sect4info author) (empty-sosofo)) +(element (sect4info authorblurb) (empty-sosofo)) +(element (sect4info authorgroup) (empty-sosofo)) +(element (sect4info authorinitials) (empty-sosofo)) +(element (sect4info bibliomisc) (empty-sosofo)) +(element (sect4info biblioset) (empty-sosofo)) +(element (sect4info collab) (empty-sosofo)) +(element (sect4info confgroup) (empty-sosofo)) +(element (sect4info contractnum) (empty-sosofo)) +(element (sect4info contractsponsor) (empty-sosofo)) +(element (sect4info contrib) (empty-sosofo)) +(element (sect4info copyright) (empty-sosofo)) +(element (sect4info corpauthor) (empty-sosofo)) +(element (sect4info corpname) (empty-sosofo)) +(element (sect4info date) (empty-sosofo)) +(element (sect4info edition) (empty-sosofo)) +(element (sect4info editor) (empty-sosofo)) +(element (sect4info firstname) (empty-sosofo)) +(element (sect4info graphic) (empty-sosofo)) +(element (sect4info honorific) (empty-sosofo)) +(element (sect4info invpartnumber) (empty-sosofo)) +(element (sect4info isbn) (empty-sosofo)) +(element (sect4info issn) (empty-sosofo)) +(element (sect4info issuenum) (empty-sosofo)) +(element (sect4info itermset) (empty-sosofo)) +(element (sect4info keywordset) (empty-sosofo)) +(element (sect4info legalnotice) (empty-sosofo)) +(element (sect4info lineage) (empty-sosofo)) +(element (sect4info modespec) (empty-sosofo)) +(element (sect4info orgname) (empty-sosofo)) +(element (sect4info othercredit) (empty-sosofo)) +(element (sect4info othername) (empty-sosofo)) +(element (sect4info pagenums) (empty-sosofo)) +(element (sect4info printhistory) (empty-sosofo)) +(element (sect4info productname) (empty-sosofo)) +(element (sect4info productnumber) (empty-sosofo)) +(element (sect4info pubdate) (empty-sosofo)) +(element (sect4info publisher) (empty-sosofo)) +(element (sect4info publishername) (empty-sosofo)) +(element (sect4info pubsnumber) (empty-sosofo)) +(element (sect4info releaseinfo) (empty-sosofo)) +(element (sect4info revhistory) (empty-sosofo)) +(element (sect4info seriesvolnums) (empty-sosofo)) +(element (sect4info subjectset) (empty-sosofo)) +(element (sect4info subtitle) (empty-sosofo)) +(element (sect4info surname) (empty-sosofo)) +(element (sect4info title) (empty-sosofo)) +(element (sect4info titleabbrev) (empty-sosofo)) +(element (sect4info volumenum) (empty-sosofo)) + +(element sect5info (process-children)) + +(element (sect5info abbrev) (empty-sosofo)) +(element (sect5info abstract) (empty-sosofo)) +(element (sect5info address) (empty-sosofo)) +(element (sect5info affiliation) (empty-sosofo)) +(element (sect5info artpagenums) (empty-sosofo)) +(element (sect5info author) (empty-sosofo)) +(element (sect5info authorblurb) (empty-sosofo)) +(element (sect5info authorgroup) (empty-sosofo)) +(element (sect5info authorinitials) (empty-sosofo)) +(element (sect5info bibliomisc) (empty-sosofo)) +(element (sect5info biblioset) (empty-sosofo)) +(element (sect5info collab) (empty-sosofo)) +(element (sect5info confgroup) (empty-sosofo)) +(element (sect5info contractnum) (empty-sosofo)) +(element (sect5info contractsponsor) (empty-sosofo)) +(element (sect5info contrib) (empty-sosofo)) +(element (sect5info copyright) (empty-sosofo)) +(element (sect5info corpauthor) (empty-sosofo)) +(element (sect5info corpname) (empty-sosofo)) +(element (sect5info date) (empty-sosofo)) +(element (sect5info edition) (empty-sosofo)) +(element (sect5info editor) (empty-sosofo)) +(element (sect5info firstname) (empty-sosofo)) +(element (sect5info graphic) (empty-sosofo)) +(element (sect5info honorific) (empty-sosofo)) +(element (sect5info invpartnumber) (empty-sosofo)) +(element (sect5info isbn) (empty-sosofo)) +(element (sect5info issn) (empty-sosofo)) +(element (sect5info issuenum) (empty-sosofo)) +(element (sect5info itermset) (empty-sosofo)) +(element (sect5info keywordset) (empty-sosofo)) +(element (sect5info legalnotice) (empty-sosofo)) +(element (sect5info lineage) (empty-sosofo)) +(element (sect5info modespec) (empty-sosofo)) +(element (sect5info orgname) (empty-sosofo)) +(element (sect5info othercredit) (empty-sosofo)) +(element (sect5info othername) (empty-sosofo)) +(element (sect5info pagenums) (empty-sosofo)) +(element (sect5info printhistory) (empty-sosofo)) +(element (sect5info productname) (empty-sosofo)) +(element (sect5info productnumber) (empty-sosofo)) +(element (sect5info pubdate) (empty-sosofo)) +(element (sect5info publisher) (empty-sosofo)) +(element (sect5info publishername) (empty-sosofo)) +(element (sect5info pubsnumber) (empty-sosofo)) +(element (sect5info releaseinfo) (empty-sosofo)) +(element (sect5info revhistory) (empty-sosofo)) +(element (sect5info seriesvolnums) (empty-sosofo)) +(element (sect5info subjectset) (empty-sosofo)) +(element (sect5info subtitle) (empty-sosofo)) +(element (sect5info surname) (empty-sosofo)) +(element (sect5info title) (empty-sosofo)) +(element (sect5info titleabbrev) (empty-sosofo)) +(element (sect5info volumenum) (empty-sosofo)) + +(element refsect1info (process-children)) + +(element (refsect1info abbrev) (empty-sosofo)) +(element (refsect1info abstract) (empty-sosofo)) +(element (refsect1info address) (empty-sosofo)) +(element (refsect1info affiliation) (empty-sosofo)) +(element (refsect1info artpagenums) (empty-sosofo)) +(element (refsect1info author) (empty-sosofo)) +(element (refsect1info authorblurb) (empty-sosofo)) +(element (refsect1info authorgroup) (empty-sosofo)) +(element (refsect1info authorinitials) (empty-sosofo)) +(element (refsect1info bibliomisc) (empty-sosofo)) +(element (refsect1info biblioset) (empty-sosofo)) +(element (refsect1info collab) (empty-sosofo)) +(element (refsect1info confgroup) (empty-sosofo)) +(element (refsect1info contractnum) (empty-sosofo)) +(element (refsect1info contractsponsor) (empty-sosofo)) +(element (refsect1info contrib) (empty-sosofo)) +(element (refsect1info copyright) (empty-sosofo)) +(element (refsect1info corpauthor) (empty-sosofo)) +(element (refsect1info corpname) (empty-sosofo)) +(element (refsect1info date) (empty-sosofo)) +(element (refsect1info edition) (empty-sosofo)) +(element (refsect1info editor) (empty-sosofo)) +(element (refsect1info firstname) (empty-sosofo)) +(element (refsect1info graphic) (empty-sosofo)) +(element (refsect1info honorific) (empty-sosofo)) +(element (refsect1info invpartnumber) (empty-sosofo)) +(element (refsect1info isbn) (empty-sosofo)) +(element (refsect1info issn) (empty-sosofo)) +(element (refsect1info issuenum) (empty-sosofo)) +(element (refsect1info itermset) (empty-sosofo)) +(element (refsect1info keywordset) (empty-sosofo)) +(element (refsect1info legalnotice) (empty-sosofo)) +(element (refsect1info lineage) (empty-sosofo)) +(element (refsect1info modespec) (empty-sosofo)) +(element (refsect1info orgname) (empty-sosofo)) +(element (refsect1info othercredit) (empty-sosofo)) +(element (refsect1info othername) (empty-sosofo)) +(element (refsect1info pagenums) (empty-sosofo)) +(element (refsect1info printhistory) (empty-sosofo)) +(element (refsect1info productname) (empty-sosofo)) +(element (refsect1info productnumber) (empty-sosofo)) +(element (refsect1info pubdate) (empty-sosofo)) +(element (refsect1info publisher) (empty-sosofo)) +(element (refsect1info publishername) (empty-sosofo)) +(element (refsect1info pubsnumber) (empty-sosofo)) +(element (refsect1info releaseinfo) (empty-sosofo)) +(element (refsect1info revhistory) (empty-sosofo)) +(element (refsect1info seriesvolnums) (empty-sosofo)) +(element (refsect1info subjectset) (empty-sosofo)) +(element (refsect1info subtitle) (empty-sosofo)) +(element (refsect1info surname) (empty-sosofo)) +(element (refsect1info title) (empty-sosofo)) +(element (refsect1info titleabbrev) (empty-sosofo)) +(element (refsect1info volumenum) (empty-sosofo)) + +(element refsect2info (process-children)) + +(element (refsect2info abbrev) (empty-sosofo)) +(element (refsect2info abstract) (empty-sosofo)) +(element (refsect2info address) (empty-sosofo)) +(element (refsect2info affiliation) (empty-sosofo)) +(element (refsect2info artpagenums) (empty-sosofo)) +(element (refsect2info author) (empty-sosofo)) +(element (refsect2info authorblurb) (empty-sosofo)) +(element (refsect2info authorgroup) (empty-sosofo)) +(element (refsect2info authorinitials) (empty-sosofo)) +(element (refsect2info bibliomisc) (empty-sosofo)) +(element (refsect2info biblioset) (empty-sosofo)) +(element (refsect2info collab) (empty-sosofo)) +(element (refsect2info confgroup) (empty-sosofo)) +(element (refsect2info contractnum) (empty-sosofo)) +(element (refsect2info contractsponsor) (empty-sosofo)) +(element (refsect2info contrib) (empty-sosofo)) +(element (refsect2info copyright) (empty-sosofo)) +(element (refsect2info corpauthor) (empty-sosofo)) +(element (refsect2info corpname) (empty-sosofo)) +(element (refsect2info date) (empty-sosofo)) +(element (refsect2info edition) (empty-sosofo)) +(element (refsect2info editor) (empty-sosofo)) +(element (refsect2info firstname) (empty-sosofo)) +(element (refsect2info graphic) (empty-sosofo)) +(element (refsect2info honorific) (empty-sosofo)) +(element (refsect2info invpartnumber) (empty-sosofo)) +(element (refsect2info isbn) (empty-sosofo)) +(element (refsect2info issn) (empty-sosofo)) +(element (refsect2info issuenum) (empty-sosofo)) +(element (refsect2info itermset) (empty-sosofo)) +(element (refsect2info keywordset) (empty-sosofo)) +(element (refsect2info legalnotice) (empty-sosofo)) +(element (refsect2info lineage) (empty-sosofo)) +(element (refsect2info modespec) (empty-sosofo)) +(element (refsect2info orgname) (empty-sosofo)) +(element (refsect2info othercredit) (empty-sosofo)) +(element (refsect2info othername) (empty-sosofo)) +(element (refsect2info pagenums) (empty-sosofo)) +(element (refsect2info printhistory) (empty-sosofo)) +(element (refsect2info productname) (empty-sosofo)) +(element (refsect2info productnumber) (empty-sosofo)) +(element (refsect2info pubdate) (empty-sosofo)) +(element (refsect2info publisher) (empty-sosofo)) +(element (refsect2info publishername) (empty-sosofo)) +(element (refsect2info pubsnumber) (empty-sosofo)) +(element (refsect2info releaseinfo) (empty-sosofo)) +(element (refsect2info revhistory) (empty-sosofo)) +(element (refsect2info seriesvolnums) (empty-sosofo)) +(element (refsect2info subjectset) (empty-sosofo)) +(element (refsect2info subtitle) (empty-sosofo)) +(element (refsect2info surname) (empty-sosofo)) +(element (refsect2info title) (empty-sosofo)) +(element (refsect2info titleabbrev) (empty-sosofo)) +(element (refsect2info volumenum) (empty-sosofo)) + +(element refsect3info (process-children)) + +(element (refsect3info abbrev) (empty-sosofo)) +(element (refsect3info abstract) (empty-sosofo)) +(element (refsect3info address) (empty-sosofo)) +(element (refsect3info affiliation) (empty-sosofo)) +(element (refsect3info artpagenums) (empty-sosofo)) +(element (refsect3info author) (empty-sosofo)) +(element (refsect3info authorblurb) (empty-sosofo)) +(element (refsect3info authorgroup) (empty-sosofo)) +(element (refsect3info authorinitials) (empty-sosofo)) +(element (refsect3info bibliomisc) (empty-sosofo)) +(element (refsect3info biblioset) (empty-sosofo)) +(element (refsect3info collab) (empty-sosofo)) +(element (refsect3info confgroup) (empty-sosofo)) +(element (refsect3info contractnum) (empty-sosofo)) +(element (refsect3info contractsponsor) (empty-sosofo)) +(element (refsect3info contrib) (empty-sosofo)) +(element (refsect3info copyright) (empty-sosofo)) +(element (refsect3info corpauthor) (empty-sosofo)) +(element (refsect3info corpname) (empty-sosofo)) +(element (refsect3info date) (empty-sosofo)) +(element (refsect3info edition) (empty-sosofo)) +(element (refsect3info editor) (empty-sosofo)) +(element (refsect3info firstname) (empty-sosofo)) +(element (refsect3info graphic) (empty-sosofo)) +(element (refsect3info honorific) (empty-sosofo)) +(element (refsect3info invpartnumber) (empty-sosofo)) +(element (refsect3info isbn) (empty-sosofo)) +(element (refsect3info issn) (empty-sosofo)) +(element (refsect3info issuenum) (empty-sosofo)) +(element (refsect3info itermset) (empty-sosofo)) +(element (refsect3info keywordset) (empty-sosofo)) +(element (refsect3info legalnotice) (empty-sosofo)) +(element (refsect3info lineage) (empty-sosofo)) +(element (refsect3info modespec) (empty-sosofo)) +(element (refsect3info orgname) (empty-sosofo)) +(element (refsect3info othercredit) (empty-sosofo)) +(element (refsect3info othername) (empty-sosofo)) +(element (refsect3info pagenums) (empty-sosofo)) +(element (refsect3info printhistory) (empty-sosofo)) +(element (refsect3info productname) (empty-sosofo)) +(element (refsect3info productnumber) (empty-sosofo)) +(element (refsect3info pubdate) (empty-sosofo)) +(element (refsect3info publisher) (empty-sosofo)) +(element (refsect3info publishername) (empty-sosofo)) +(element (refsect3info pubsnumber) (empty-sosofo)) +(element (refsect3info releaseinfo) (empty-sosofo)) +(element (refsect3info revhistory) (empty-sosofo)) +(element (refsect3info seriesvolnums) (empty-sosofo)) +(element (refsect3info subjectset) (empty-sosofo)) +(element (refsect3info subtitle) (empty-sosofo)) +(element (refsect3info surname) (empty-sosofo)) +(element (refsect3info title) (empty-sosofo)) +(element (refsect3info titleabbrev) (empty-sosofo)) +(element (refsect3info volumenum) (empty-sosofo)) + +(element seriesinfo (process-children)) + +(element (seriesinfo abbrev) (empty-sosofo)) +(element (seriesinfo abstract) (empty-sosofo)) +(element (seriesinfo address) (empty-sosofo)) +(element (seriesinfo affiliation) (empty-sosofo)) +(element (seriesinfo artpagenums) (empty-sosofo)) +(element (seriesinfo author) (empty-sosofo)) +(element (seriesinfo authorblurb) (empty-sosofo)) +(element (seriesinfo authorgroup) (empty-sosofo)) +(element (seriesinfo authorinitials) (empty-sosofo)) +(element (seriesinfo bibliomisc) (empty-sosofo)) +(element (seriesinfo biblioset) (empty-sosofo)) +(element (seriesinfo collab) (empty-sosofo)) +(element (seriesinfo confgroup) (empty-sosofo)) +(element (seriesinfo contractnum) (empty-sosofo)) +(element (seriesinfo contractsponsor) (empty-sosofo)) +(element (seriesinfo contrib) (empty-sosofo)) +(element (seriesinfo copyright) (empty-sosofo)) +(element (seriesinfo corpauthor) (empty-sosofo)) +(element (seriesinfo corpname) (empty-sosofo)) +(element (seriesinfo date) (empty-sosofo)) +(element (seriesinfo edition) (empty-sosofo)) +(element (seriesinfo editor) (empty-sosofo)) +(element (seriesinfo firstname) (empty-sosofo)) +(element (seriesinfo honorific) (empty-sosofo)) +(element (seriesinfo invpartnumber) (empty-sosofo)) +(element (seriesinfo isbn) (empty-sosofo)) +(element (seriesinfo issn) (empty-sosofo)) +(element (seriesinfo issuenum) (empty-sosofo)) +(element (seriesinfo lineage) (empty-sosofo)) +(element (seriesinfo orgname) (empty-sosofo)) +(element (seriesinfo othercredit) (empty-sosofo)) +(element (seriesinfo othername) (empty-sosofo)) +(element (seriesinfo pagenums) (empty-sosofo)) +(element (seriesinfo printhistory) (empty-sosofo)) +(element (seriesinfo productname) (empty-sosofo)) +(element (seriesinfo productnumber) (empty-sosofo)) +(element (seriesinfo pubdate) (empty-sosofo)) +(element (seriesinfo publisher) (empty-sosofo)) +(element (seriesinfo publishername) (empty-sosofo)) +(element (seriesinfo pubsnumber) (empty-sosofo)) +(element (seriesinfo releaseinfo) (empty-sosofo)) +(element (seriesinfo revhistory) (empty-sosofo)) +(element (seriesinfo seriesvolnums) (empty-sosofo)) +(element (seriesinfo subtitle) (empty-sosofo)) +(element (seriesinfo surname) (empty-sosofo)) +(element (seriesinfo title) (empty-sosofo)) +(element (seriesinfo titleabbrev) (empty-sosofo)) +(element (seriesinfo volumenum) (empty-sosofo)) + +(element artheader (empty-sosofo)) + +(element (artheader abbrev) (empty-sosofo)) +(element (artheader abstract) (empty-sosofo)) +(element (artheader address) (empty-sosofo)) +(element (artheader affiliation) (empty-sosofo)) +(element (artheader artpagenums) (empty-sosofo)) +(element (artheader author) (empty-sosofo)) +(element (artheader authorblurb) (empty-sosofo)) +(element (artheader authorgroup) (empty-sosofo)) +(element (artheader authorinitials) (empty-sosofo)) +(element (artheader bibliomisc) (empty-sosofo)) +(element (artheader biblioset) (empty-sosofo)) +(element (artheader bookbiblio) (empty-sosofo)) +(element (artheader collab) (empty-sosofo)) +(element (artheader confgroup) (empty-sosofo)) +(element (artheader contractnum) (empty-sosofo)) +(element (artheader contractsponsor) (empty-sosofo)) +(element (artheader contrib) (empty-sosofo)) +(element (artheader copyright) (empty-sosofo)) +(element (artheader corpauthor) (empty-sosofo)) +(element (artheader corpname) (empty-sosofo)) +(element (artheader date) (empty-sosofo)) +(element (artheader edition) (empty-sosofo)) +(element (artheader editor) (empty-sosofo)) +(element (artheader firstname) (empty-sosofo)) +(element (artheader honorific) (empty-sosofo)) +(element (artheader invpartnumber) (empty-sosofo)) +(element (artheader isbn) (empty-sosofo)) +(element (artheader issn) (empty-sosofo)) +(element (artheader issuenum) (empty-sosofo)) +(element (artheader lineage) (empty-sosofo)) +(element (artheader orgname) (empty-sosofo)) +(element (artheader othercredit) (empty-sosofo)) +(element (artheader othername) (empty-sosofo)) +(element (artheader pagenums) (empty-sosofo)) +(element (artheader printhistory) (empty-sosofo)) +(element (artheader productname) (empty-sosofo)) +(element (artheader productnumber) (empty-sosofo)) +(element (artheader pubdate) (empty-sosofo)) +(element (artheader publisher) (empty-sosofo)) +(element (artheader publishername) (empty-sosofo)) +(element (artheader pubsnumber) (empty-sosofo)) +(element (artheader releaseinfo) (empty-sosofo)) +(element (artheader revhistory) (empty-sosofo)) +(element (artheader seriesvolnums) (empty-sosofo)) +(element (artheader subtitle) (empty-sosofo)) +(element (artheader surname) (empty-sosofo)) +(element (artheader title) (empty-sosofo)) +(element (artheader titleabbrev) (empty-sosofo)) +(element (artheader volumenum) (empty-sosofo)) + +(element articleinfo (empty-sosofo)) + +(element (articleinfo abbrev) (empty-sosofo)) +(element (articleinfo abstract) (empty-sosofo)) +(element (articleinfo address) (empty-sosofo)) +(element (articleinfo affiliation) (empty-sosofo)) +(element (articleinfo artpagenums) (empty-sosofo)) +(element (articleinfo author) (empty-sosofo)) +(element (articleinfo authorblurb) (empty-sosofo)) +(element (articleinfo authorgroup) (empty-sosofo)) +(element (articleinfo authorinitials) (empty-sosofo)) +(element (articleinfo bibliomisc) (empty-sosofo)) +(element (articleinfo biblioset) (empty-sosofo)) +(element (articleinfo bookbiblio) (empty-sosofo)) +(element (articleinfo collab) (empty-sosofo)) +(element (articleinfo confgroup) (empty-sosofo)) +(element (articleinfo contractnum) (empty-sosofo)) +(element (articleinfo contractsponsor) (empty-sosofo)) +(element (articleinfo contrib) (empty-sosofo)) +(element (articleinfo copyright) (empty-sosofo)) +(element (articleinfo corpauthor) (empty-sosofo)) +(element (articleinfo corpname) (empty-sosofo)) +(element (articleinfo date) (empty-sosofo)) +(element (articleinfo edition) (empty-sosofo)) +(element (articleinfo editor) (empty-sosofo)) +(element (articleinfo firstname) (empty-sosofo)) +(element (articleinfo honorific) (empty-sosofo)) +(element (articleinfo invpartnumber) (empty-sosofo)) +(element (articleinfo isbn) (empty-sosofo)) +(element (articleinfo issn) (empty-sosofo)) +(element (articleinfo issuenum) (empty-sosofo)) +(element (articleinfo lineage) (empty-sosofo)) +(element (articleinfo orgname) (empty-sosofo)) +(element (articleinfo othercredit) (empty-sosofo)) +(element (articleinfo othername) (empty-sosofo)) +(element (articleinfo pagenums) (empty-sosofo)) +(element (articleinfo printhistory) (empty-sosofo)) +(element (articleinfo productname) (empty-sosofo)) +(element (articleinfo productnumber) (empty-sosofo)) +(element (articleinfo pubdate) (empty-sosofo)) +(element (articleinfo publisher) (empty-sosofo)) +(element (articleinfo publishername) (empty-sosofo)) +(element (articleinfo pubsnumber) (empty-sosofo)) +(element (articleinfo releaseinfo) (empty-sosofo)) +(element (articleinfo revhistory) (empty-sosofo)) +(element (articleinfo seriesvolnums) (empty-sosofo)) +(element (articleinfo subtitle) (empty-sosofo)) +(element (articleinfo surname) (empty-sosofo)) +(element (articleinfo title) (empty-sosofo)) +(element (articleinfo titleabbrev) (empty-sosofo)) +(element (articleinfo volumenum) (empty-sosofo)) + +(element refsynopsisdivinfo (process-children)) + +(element (refsynopsisdivinfo graphic) (empty-sosofo)) +(element (refsynopsisdivinfo legalnotice) (empty-sosofo)) +(element (refsynopsisdivinfo modespec) (empty-sosofo)) +(element (refsynopsisdivinfo subjectset) (empty-sosofo)) +(element (refsynopsisdivinfo keywordset) (empty-sosofo)) +(element (refsynopsisdivinfo itermset) (empty-sosofo)) +(element (refsynopsisdivinfo abbrev) (empty-sosofo)) +(element (refsynopsisdivinfo abstract) (empty-sosofo)) +(element (refsynopsisdivinfo address) (empty-sosofo)) +(element (refsynopsisdivinfo artpagenums) (empty-sosofo)) +(element (refsynopsisdivinfo author) (empty-sosofo)) +(element (refsynopsisdivinfo authorgroup) (empty-sosofo)) +(element (refsynopsisdivinfo authorinitials) (empty-sosofo)) +(element (refsynopsisdivinfo bibliomisc) (empty-sosofo)) +(element (refsynopsisdivinfo biblioset) (empty-sosofo)) +(element (refsynopsisdivinfo collab) (empty-sosofo)) +(element (refsynopsisdivinfo confgroup) (empty-sosofo)) +(element (refsynopsisdivinfo contractnum) (empty-sosofo)) +(element (refsynopsisdivinfo contractsponsor) (empty-sosofo)) +(element (refsynopsisdivinfo copyright) (empty-sosofo)) +(element (refsynopsisdivinfo corpauthor) (empty-sosofo)) +(element (refsynopsisdivinfo corpname) (empty-sosofo)) +(element (refsynopsisdivinfo date) (empty-sosofo)) +(element (refsynopsisdivinfo edition) (empty-sosofo)) +(element (refsynopsisdivinfo editor) (empty-sosofo)) +(element (refsynopsisdivinfo invpartnumber) (empty-sosofo)) +(element (refsynopsisdivinfo isbn) (empty-sosofo)) +(element (refsynopsisdivinfo issn) (empty-sosofo)) +(element (refsynopsisdivinfo issuenum) (empty-sosofo)) +(element (refsynopsisdivinfo orgname) (empty-sosofo)) +(element (refsynopsisdivinfo othercredit) (empty-sosofo)) +(element (refsynopsisdivinfo pagenums) (empty-sosofo)) +(element (refsynopsisdivinfo printhistory) (empty-sosofo)) +(element (refsynopsisdivinfo productname) (empty-sosofo)) +(element (refsynopsisdivinfo productnumber) (empty-sosofo)) +(element (refsynopsisdivinfo pubdate) (empty-sosofo)) +(element (refsynopsisdivinfo publisher) (empty-sosofo)) +(element (refsynopsisdivinfo publishername) (empty-sosofo)) +(element (refsynopsisdivinfo pubsnumber) (empty-sosofo)) +(element (refsynopsisdivinfo releaseinfo) (empty-sosofo)) +(element (refsynopsisdivinfo revhistory) (empty-sosofo)) +(element (refsynopsisdivinfo seriesvolnums) (empty-sosofo)) +(element (refsynopsisdivinfo subtitle) (empty-sosofo)) +(element (refsynopsisdivinfo title) (empty-sosofo)) +(element (refsynopsisdivinfo titleabbrev) (empty-sosofo)) +(element (refsynopsisdivinfo volumenum) (empty-sosofo)) +(element (refsynopsisdivinfo honorific) (empty-sosofo)) +(element (refsynopsisdivinfo firstname) (empty-sosofo)) +(element (refsynopsisdivinfo surname) (empty-sosofo)) +(element (refsynopsisdivinfo lineage) (empty-sosofo)) +(element (refsynopsisdivinfo othername) (empty-sosofo)) +(element (refsynopsisdivinfo affiliation) (empty-sosofo)) +(element (refsynopsisdivinfo authorblurb) (empty-sosofo)) +(element (refsynopsisdivinfo contrib) (empty-sosofo)) + +(element appendixinfo (empty-sosofo)) +(element bibliographyinfo (empty-sosofo)) +(element chapterinfo (empty-sosofo)) +(element glossaryinfo (empty-sosofo)) +(element indexinfo (empty-sosofo)) +(element partinfo (empty-sosofo)) +(element prefaceinfo (empty-sosofo)) +(element refentryinfo (empty-sosofo)) +(element referenceinfo (empty-sosofo)) +(element setindexinfo (empty-sosofo)) +(element sidebarinfo (empty-sosofo)) diff --git a/html/dbinline.dsl b/html/dbinline.dsl new file mode 100644 index 0000000..2f274b9 --- /dev/null +++ b/html/dbinline.dsl @@ -0,0 +1,312 @@ +;; $Id: dbinline.dsl,v 1.11 2004/09/14 14:47:10 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== INLINES =============================== + +(element abbrev (if %html40% + ($abbr-seq$) + ($charseq$))) +(element acronym (if %html40% + ($acronym-seq$) + ($charseq$))) +(element accel ($charseq$)) +(element action ($charseq$)) +(element application ($charseq$)) +(element classname ($code-seq$)) +(element constant ($code-seq$)) +(element command ($bold-seq$)) +(element computeroutput ($samp-seq$)) +(element database ($charseq$)) + +(element email + ($code-seq$ + (make sequence + (literal "<") + (make element gi: "A" + attributes: (list (list "HREF" + (string-append "mailto:" + (data (current-node))))) + (process-children)) + (literal ">")))) + +(element errorcode ($charseq$)) +(element errorname ($charseq$)) +(element errortype ($charseq$)) +(element envar ($code-seq$)) +(element filename ($mono-seq$)) ; unsure +(element function ($code-seq$)) +(element guibutton ($charseq$)) +(element guiicon ($charseq$)) +(element guilabel ($charseq$)) +(element guimenu ($charseq$)) +(element guimenuitem ($charseq$)) +(element guisubmenu ($charseq$)) +(element hardware ($charseq$)) +(element interface ($charseq$)) +(element interfacedefinition ($charseq$)) +(element keycap ($bold-seq$)) +(element keycode ($charseq$)) + +(element keycombo + (let* ((action (attribute-string (normalize "action"))) + (joinchar + (cond + ((equal? action (normalize "seq")) " ") ;; space + ((equal? action (normalize "simul")) "+") ;; + + ((equal? action (normalize "press")) "-") ;; ? I don't know + ((equal? action (normalize "click")) "-") ;; ? what to do + ((equal? action (normalize "double-click")) "-") ;; ? about the rest + ((equal? action (normalize "other")) "-") ;; ? of these + (else "-")))) + (let loop ((nl (children (current-node))) (count 1)) + (if (node-list-empty? nl) + (empty-sosofo) + (if (equal? count 1) + (make sequence + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl) (+ count 1))) + (make sequence + (literal joinchar) + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl) (+ count 1)))))))) + +(element keysym ($charseq$)) +(element literal ($mono-seq$)) +(element medialabel ($italic-seq$)) + +(element menuchoice + (let* ((shortcut (select-elements (children (current-node)) + (normalize "shortcut"))) + (items (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "shortcut"))))) + (make sequence + (let loop ((nl items) (first? #t)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if first? + (process-node-list (node-list-first nl)) + (make sequence + (if (or (equal? (gi (node-list-first nl)) + (normalize "guimenuitem")) + (equal? (gi (node-list-first nl)) + (normalize "guisubmenu"))) + (make sequence + (literal "-") + (make entity-ref name: "gt")) + (literal "+")) + (process-node-list (node-list-first nl)))) + (loop (node-list-rest nl) #f)))) + (if (node-list-empty? shortcut) + (empty-sosofo) + (make sequence + (literal " (") + (process-node-list shortcut) + (literal ")")))))) + +(element methodname ($code-seq$)) +(element shortcut ($bold-seq$)) +(element mousebutton ($charseq$)) +(element option ($code-seq$)) + +(element optional + (make sequence + (literal %arg-choice-opt-open-str%) + ($charseq$) + (literal %arg-choice-opt-close-str%))) + +(element parameter ($code-seq$)) +(element property ($charseq$)) +(element prompt ($samp-seq$)) +(element replaceable ($italic-mono-seq$)) +(element returnvalue ($charseq$)) +(element structfield ($code-seq$)) +(element structname ($code-seq$)) +(element symbol ($code-seq$)) +(element systemitem ($charseq$)) ; ambiguous, should look at class +(element token ($charseq$)) +(element type ($charseq$)) ; ambiguous +(element userinput ($kbd-seq$)) +(element varname ($code-seq$)) + +(element citation + (if biblio-citation-check + (let* ((bgraphies (select-elements (descendants (sgml-root-element)) + (normalize "bibliography"))) + (bchildren1 (expand-children bgraphies + (list (normalize "bibliography")))) + (bchildren2 (expand-children bchildren1 + (list (normalize "bibliodiv")))) + (bibentries (node-list-filter-by-gi + bchildren2 + (list (normalize "biblioentry") + (normalize "bibliomixed"))))) + (let loop ((bibs bibentries)) + (if (node-list-empty? bibs) + (make sequence + (error (string-append "Cannot find citation: " + (data (current-node)))) + (literal "[") ($charseq$) (literal "]")) + (if (citation-matches-target? (current-node) + (node-list-first bibs)) + (make element gi: "A" + attributes: (list + (list "HREF" (href-to + (node-list-first bibs)))) + (literal "[") ($charseq$) (literal "]")) + (loop (node-list-rest bibs)))))) + (make sequence + (literal "[") ($charseq$) (literal "]")))) + +(element citerefentry + (if %citerefentry-link% + (make element gi: "A" + attributes: (list (list "HREF" ($generate-citerefentry-link$))) + (if %refentry-xref-italic% + ($italic-seq$) + ($charseq$))) + (if %refentry-xref-italic% + ($italic-seq$) + ($charseq$)))) + +(define ($generate-citerefentry-link$) + (empty-sosofo)) + +(define ($x-generate-citerefentry-link$) + (let* ((refentrytitle (select-elements (children (current-node)) + (normalize "refentrytitle"))) + (manvolnum (select-elements (children (current-node)) + (normalize "manvolnum")))) + (string-append "http://example.com/cgi-bin/man.cgi?" + (data refentrytitle) + "(" + (data manvolnum) + ")"))) + +(element citetitle + (if (equal? (attribute-string (normalize "pubwork")) "article") + (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote))) + ($italic-seq$))) + +(element emphasis + (let* ((class (if (and (attribute-string (normalize "role")) + %emphasis-propagates-style%) + (attribute-string (normalize "role")) + "emphasis"))) + (make element gi: "SPAN" + attributes: (list (list "CLASS" class)) + (if (and (attribute-string (normalize "role")) + (or (equal? (attribute-string (normalize "role")) "strong") + (equal? (attribute-string (normalize "role")) "bold"))) + ($bold-seq$) + ($italic-seq$))))) + +(element foreignphrase ($italic-seq$)) +(element markup ($charseq$)) + +(element phrase + (let* ((class (if (and (attribute-string (normalize "role")) + %phrase-propagates-style%) + (attribute-string (normalize "role")) + "phrase"))) + (make element gi: "SPAN" + attributes: (list (list "CLASS" class)) + ($charseq$)))) + +(element quote + (let* ((hnr (hierarchical-number-recursive (normalize "quote") + (current-node))) + (depth (length hnr))) + (make element gi: "SPAN" + attributes: '(("CLASS" "QUOTE")) + (if (equal? (modulo depth 2) 1) + (make sequence + (literal (gentext-start-nested-quote)) + (process-children) + (literal (gentext-end-nested-quote))) + (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote))))))) + +(element sgmltag + (let ((class (if (attribute-string (normalize "class")) + (attribute-string (normalize "class")) + (normalize "element")))) +<![CDATA[ + (cond + ((or (equal? class (normalize "attribute")) + (equal? class (normalize "attvalue")) + (equal? class (normalize "element"))) ($code-seq$)) + ((equal? class (normalize "endtag")) ($code-seq$ (make sequence + (literal "</") + (process-children) + (literal ">")))) + ((equal? class (normalize "genentity")) ($code-seq$ (make sequence + (literal "&") + (process-children) + (literal ";")))) + ((equal? class (normalize "numcharref")) ($code-seq$ (make sequence + (literal "&#") + (process-children) + (literal ";")))) + ((equal? class (normalize "paramentity")) ($code-seq$ (make sequence + (literal "%") + (process-children) + (literal ";")))) + ((equal? class (normalize "pi")) ($code-seq$ (make sequence + (literal "<?") + (process-children) + (literal ">")))) + ((equal? class (normalize "xmlpi")) ($code-seq$ (make sequence + (literal "<?") + (process-children) + (literal "?>")))) + ((equal? class (normalize "starttag")) ($code-seq$ (make sequence + (literal "<") + (process-children) + (literal ">")))) + ((equal? class (normalize "emptytag")) ($code-seq$ (make sequence + (literal "<") + (process-children) + (literal "/>")))) + ((equal? class (normalize "sgmlcomment")) ($code-seq$ (make sequence + (literal "<!--") + (process-children) + (literal "-->")))) +]]> + (else ($charseq$))))) + +(element trademark + (make sequence + ($charseq$) + (cond + ((equal? (attribute-string "class") (normalize "copyright")) + (make entity-ref name: "copy")) + ((equal? (attribute-string "class") (normalize "registered")) + (make entity-ref name: "reg")) + ((equal? (attribute-string "class") (normalize "service")) + (make element gi: "SUP" + (literal "SM"))) + (else + (make entity-ref name: "#8482"))))) + +(element wordasword ($italic-seq$)) + +(element lineannotation + (process-children)) + +(element superscript + (make element gi: "SUP" + (process-children))) + +(element subscript + (make element gi: "SUB" + (process-children))) diff --git a/html/dblink.dsl b/html/dblink.dsl new file mode 100644 index 0000000..2f9c2cc --- /dev/null +++ b/html/dblink.dsl @@ -0,0 +1,433 @@ +;; $Id: dblink.dsl,v 1.6 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= LINKS AND ANCHORS ========================== + +(element link + (let* ((endterm (attribute-string (normalize "endterm"))) + (linkend (attribute-string (normalize "linkend"))) + (target (element-with-id linkend)) + (etarget (if endterm + (element-with-id endterm) + (empty-node-list)))) + ;; It isn't necessary to catch either of these errors. The normal + ;; ID/IDREF processing in Jade will catch them, and if -wno-idref + ;; is used, then it's your gun, your bullet, and your foot. +;; (if (node-list-empty? target) +;; (error (string-append "Link to missing ID '" linkend "'")) +;; (empty-sosofo)) +;; (if (and endterm (node-list-empty? etarget)) +;; (error (string-append "EndTerm to missing ID '" endterm "' on Link")) +;; (empty-sosofo)) + (if (node-list-empty? target) + (process-children) + (make element gi: "A" + attributes: (list (list "HREF" (href-to target))) + (if (and endterm (not (node-list-empty? etarget))) + (with-mode xref-endterm-mode (process-node-list etarget)) + (process-children)))))) + +(element ulink + (make element gi: "A" + attributes: (list + (list "HREF" (attribute-string (normalize "url"))) + (list "TARGET" "_top")) + (if (node-list-empty? (children (current-node))) + (literal (attribute-string (normalize "url"))) + (process-children)))) + +(element anchor + (make element gi: "A" + attributes: (list + (list "NAME" (attribute-string (normalize "id")))) + (empty-sosofo))) + +(element beginpage (empty-sosofo)) + +;; ====================================================================== + +(define (olink-link) + ;; This is an olink without a TARGETDOCENT, treat it as a link within + ;; the same document. + (let* ((localinfo (normalize (attribute-string (normalize "localinfo")))) + (target (element-with-id localinfo)) + (linkmode (attribute-string (normalize "linkmode"))) + (modespec (if linkmode (element-with-id linkmode) (empty-node-list))) + (xreflabel (if (node-list-empty? modespec) + #f + (attribute-string (normalize "xreflabel") modespec))) + (href (if (node-list-empty? target) + (error + (string-append "OLink to missing ID '" localinfo "'")) + (href-to target))) + (linktext (strip (data-of (current-node))))) + (make element gi: "A" + attributes: (list (list "HREF" href) + (list "CLASS" "OLINK")) + (if (equal? linktext "") + (if xreflabel + (xref-general target xreflabel) + (xref-general target)) + (process-children))))) + +(define (olink-href target modespec) + (let* ((pubid (entity-public-id target)) + (sysid (system-id-filename target)) + (localinfo (normalize (attribute-string (normalize "localinfo")))) + (qident (if pubid + (string-append %olink-pubid% (url-encode-string pubid)) + (string-append %olink-sysid% (url-encode-string sysid)))) + (qfragid (if localinfo + (string-append %olink-fragid% + (url-encode-string localinfo)) + "")) + (lb-href (string-append %olink-resolution% qident qfragid)) + (modetext (if (node-list-empty? modespec) "" (data-of modespec))) + (href (if (equal? (strip modetext) "") + lb-href + (if localinfo + (string-append + modetext "#" (url-encode-string localinfo)) + modetext)))) + href)) + +(define (olink-simple) + ;; Assumptions: + ;; - The TARGETDOCENT is identified by a public ID + ;; - LOLCALINFO contains the ID value (i.e. HREF fragment identifier) of + ;; the target resource + ;; - If the element has no content, the title extracted by + ;; (olink-resource-title) should be used + ;; - The (olink-resource-title) function can deduce the title from + ;; the pubid and the sysid + ;; - %olink-resolution% is the prefix to use on URLs (to point to a + ;; cgi-bin script, or whatever you can make work for you) + ;; - %olink-pubid% identifies the pubid in the query + ;; - %olink-fragid% identifies the fragment identifier in the query + (let* ((target (attribute-string (normalize "targetdocent"))) + (pubid (entity-public-id target)) + (sysid (system-id-filename target)) + (title (olink-resource-title pubid sysid)) + (href (olink-href target (empty-node-list))) + (linktext (strip (data-of (current-node))))) + (make element gi: "A" + attributes: (list (list "HREF" href) + (list "CLASS" "OLINK")) + (if (equal? linktext "") + (make element gi: "I" (literal title)) + (process-children))))) + +(define (olink-outline-xref olroot target linktext) + (let* ((name (attribute-string (normalize "name") target)) + (label (attribute-string (normalize "label") target)) + (title (select-elements (children target) (normalize "ttl"))) + (substitute (list + (list "%g" (if name (literal name) (literal ""))) + (list "%n" (if label (literal label) (literal ""))) + (list "%t" (with-mode olink-title-mode + (process-node-list title))))) + (tlist (match-split-list linktext (assoc-objs substitute)))) + (string-list-sosofo tlist substitute))) + +(define (olink-outline) + (let* ((target (attribute-string (normalize "targetdocent"))) + (localinfo (normalize (attribute-string (normalize "localinfo")))) + (sysid (entity-generated-system-id target)) + (basename (trim-string sysid '(".sgm" ".xml" ".sgml"))) + (olinkfile (string-append basename %olink-outline-ext%)) + (olinkdoc (sgml-parse olinkfile)) + (olinkroot (node-property 'document-element olinkdoc)) + (olnode (if localinfo + (element-with-id localinfo olinkroot) + olinkroot)) + (linkmode (attribute-string (normalize "linkmode"))) + (modespec (if linkmode (element-with-id linkmode) (empty-node-list))) + (xreflabel (if (node-list-empty? modespec) + "" + (attribute-string (normalize "xreflabel") modespec))) + (href (if (equal? (attribute-string (normalize "type")) "href") + (attribute-string (normalize "href") olnode) + (olink-href target modespec))) + (linktext (strip (data-of (current-node))))) + (make element gi: "A" + attributes: (list (list "HREF" href) + (list "CLASS" "OLINK")) + (if (equal? linktext "") + (olink-outline-xref olinkroot olnode xreflabel) + (process-children))))) + +(element olink + (if (not (attribute-string (normalize "targetdocent"))) + (olink-link) + (if (attribute-string (normalize "linkmode")) + (olink-outline) + (olink-simple)))) + +(mode olink-title-mode + (default (process-children)) + + (element ttl + (make element gi: "I" + (process-children))) + + (element it + (make element gi: "I" + (process-children))) + + (element tt + (make element gi: "TT" + (process-children))) + + (element sub + (make element gi: "SUB" + (process-children))) + + (element sup + (make element gi: "SUP" + (process-children))) +) + +;; ====================================================================== + +(element xref + (let* ((endterm (attribute-string (normalize "endterm"))) + (linkend (attribute-string (normalize "linkend"))) + (target (element-with-id linkend)) + (xreflabel (if (node-list-empty? target) + #f + (attribute-string (normalize "xreflabel") target)))) + (if (node-list-empty? target) + (error (string-append "XRef LinkEnd to missing ID '" linkend "'")) + (make element gi: "A" + attributes: (list + (list "HREF" (href-to target))) + (if xreflabel + (literal xreflabel) + (if endterm + (if (node-list-empty? (element-with-id endterm)) + (error (string-append + "XRef EndTerm to missing ID '" + endterm "'")) + (with-mode xref-endterm-mode + (process-node-list (element-with-id endterm)))) + (cond + ((or (equal? (gi target) (normalize "biblioentry")) + (equal? (gi target) (normalize "bibliomixed"))) + ;; xref to the bibliography is a special case + (xref-biblioentry target)) + ((equal? (gi target) (normalize "co")) + ;; callouts are a special case + ($callout-mark$ target #f)) + ((equal? (gi target) (normalize "listitem")) + ;; listitems are a special case + (if (equal? (gi (parent target)) (normalize "orderedlist")) + (literal (orderedlist-listitem-label-recursive target)) + (error (string-append "XRef to LISTITEM only supported in ORDEREDLISTs")))) + ((equal? (gi target) (normalize "varlistentry")) + (xref-varlistentry target)) + ((equal? (gi target) (normalize "question")) + ;; questions and answers are (yet another) special case + (make sequence + (literal (gentext-element-name target)) + (literal (gentext-label-title-sep target)) + (literal (question-answer-label target)))) + ((equal? (gi target) (normalize "answer")) + ;; questions and answers are (yet another) special case + (make sequence + (literal (gentext-element-name target)) + (literal (gentext-label-title-sep target)) + (literal (question-answer-label target)))) + ((equal? (gi target) (normalize "refentry")) + ;; so are refentrys + (xref-refentry target)) + ((equal? (gi target) (normalize "refnamediv")) + ;; and refnamedivs + (xref-refnamediv target)) + ((equal? (gi target) (normalize "glossentry")) + ;; as are glossentrys + (xref-glossentry target)) + ((equal? (gi target) (normalize "author")) + ;; and authors + (xref-author target)) + ((equal? (gi target) (normalize "authorgroup")) + ;; and authorgroups + (xref-authorgroup target)) +; this doesn't really work very well yet +; ((equal? (gi target) (normalize "substeps")) +; ;; and substeps +; (xref-substeps target)) + (else + (xref-general target))))))))) + +(define (xref-refentry target) +;; refmeta/refentrytitle, refmeta/manvolnum, refnamediv/refdescriptor, +;; refnamediv/refname + (let* ((refmeta (select-elements (children target) + (normalize "refmeta"))) + (refnamediv (select-elements (children target) + (normalize "refnamediv"))) + (rfetitle (select-elements (children refmeta) + (normalize "refentrytitle"))) + (manvolnum (select-elements (children refmeta) + (normalize "manvolnum"))) + (refdescrip (select-elements (children refnamediv) + (normalize "refdescriptor"))) + (refname (select-elements (children refnamediv) + (normalize "refname"))) + + (title (if (node-list-empty? rfetitle) + (if (node-list-empty? refdescrip) + (node-list-first refname) + (node-list-first refdescrip)) + (node-list-first rfetitle))) + + (xsosofo (make sequence + (process-node-list (children title)) + (if (and %refentry-xref-manvolnum% + (not (node-list-empty? manvolnum))) + (process-node-list manvolnum) + (empty-sosofo))))) + + (make sequence + (if %refentry-xref-italic% + (make element gi: "I" + xsosofo) + xsosofo)))) + +(define (xref-refnamediv target) + (let* ((refname (select-elements (children target) + (normalize "refname"))) + + (title (node-list-first refname)) + + (xsosofo (make sequence + (process-node-list (children title))))) + (make sequence + (if %refentry-xref-italic% + (make element gi: "I" + xsosofo) + xsosofo)))) + +(define (xref-varlistentry target) + (let ((terms (select-elements (children target) + (normalize "term")))) + (with-mode xref-varlistentry-mode + (process-node-list (node-list-first terms))))) + +(define (xref-glossentry target) + (let ((glossterms (select-elements (children target) + (normalize "glossterm")))) + (with-mode xref-glossentry-mode + (process-node-list (node-list-first glossterms))))) + +(define (xref-author target) + (literal (author-string target))) + +(define (xref-authorgroup target) + ;; it's a quirk of author-list-string that it needs to point to + ;; one of the authors in the authorgroup, not the authorgroup. + ;; go figure. + (let loop ((author (select-elements (children target) (normalize "author")))) + (if (node-list-empty? author) + (empty-sosofo) + (make sequence + (literal (author-list-string (node-list-first author))) + (loop (node-list-rest author)))))) + +;(define (xref-substeps target) +; (let* ((steps (select-elements (children target) (normalize "step"))) +; (firststep (node-list-first steps)) +; (laststep (node-list-last steps)) +; (firstlabel (auto-xref-direct firststep)) +; (lastlabel (auto-xref-direct laststep "%n"))) +; (make sequence +; firstlabel +; (literal "-") +; lastlabel))) + +(define (xref-general target #!optional (xref-string #f)) + ;; This function is used by both XREF and OLINK (when no TARGETDOCENT + ;; is specified). The only case where xref-string is supplied is + ;; on OLINK. + (let ((label (attribute-string (normalize "xreflabel") target))) + (if xref-string + (auto-xref target xref-string) + (if label + (xreflabel-sosofo label) + (auto-xref target))))) + +(define (xref-biblioentry target) + (let* ((abbrev (node-list-first + (node-list-filter-out-pis (children target)))) + (label (attribute-string (normalize "xreflabel") target))) + + (if biblio-xref-title + (let* ((citetitles (select-elements (descendants target) + (normalize "citetitle"))) + (titles (select-elements (descendants target) + (normalize "title"))) + (title (if (node-list-empty? citetitles) + (node-list-first titles) + (node-list-first citetitles)))) + (with-mode xref-title-mode + (process-node-list title))) + (if biblio-number + (make sequence + (literal "[" (number->string (bibentry-number target)) "]")) + (if label + (make sequence + (literal "[" label "]")) + (if (equal? (gi abbrev) (normalize "abbrev")) + (make sequence + (process-node-list abbrev)) + (make sequence + (literal "[" (id target) "]")))))))) + +(mode xref-endterm-mode + (default + (make element gi: "I" + (process-children-trim)))) + +(define (xreflabel-sosofo xreflabel) + (make element gi: "I" + (literal xreflabel))) + +;; Returns the title of the element as a sosofo, italicized for xref. +;; +(define (element-title-xref-sosofo nd) + (make element gi: "I" + (element-title-sosofo nd))) + +(mode xref-title-mode + (element title + (make element gi: "I" + (process-children-trim))) + + (element citetitle + (make element gi: "I" + (process-children-trim))) + + (element refname + (process-children-trim)) + + (element refentrytitle + (process-children-trim))) + +(mode xref-varlistentry-mode + (element term + ($italic-seq$))) + +(mode xref-glossentry-mode + (element glossterm + ($italic-seq$))) + +;; ====================================================================== + +(define (element-page-number-sosofo target) + (literal "???")) + +;; ====================================================================== + diff --git a/html/dblists.dsl b/html/dblists.dsl new file mode 100644 index 0000000..1585c2c --- /dev/null +++ b/html/dblists.dsl @@ -0,0 +1,435 @@ +;; $Id: dblists.dsl,v 1.6 2003/04/05 21:39:15 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; =============================== LISTS ================================ + +(element orderedlist + (let* ((depth (length (hierarchical-number-recursive + (normalize "orderedlist")))) + (numeration (attribute-string (normalize "numeration"))) + (firstitem (node-list-first + (select-elements (children (current-node)) + (normalize "listitem")))) + (start (orderedlist-listitem-number firstitem)) + (rawnum (cond + ((equal? numeration (normalize "arabic")) 0) + ((equal? numeration (normalize "loweralpha")) 1) + ((equal? numeration (normalize "lowerroman")) 2) + ((equal? numeration (normalize "upperalpha")) 3) + ((equal? numeration (normalize "upperroman")) 4) + (else (modulo depth 5)))) + (type (case rawnum + ((0) "1") + ((1) "a") + ((2) "i") + ((3) "A") + ((4) "I")))) + (make sequence + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (para-check) + (process-node-list (select-elements (children (current-node)) + (normalize "title"))) + (make element gi: "OL" + attributes: (append + (if (equal? start 1) + '() + (list (list "START" (number->string start)))) + (if (equal? (attribute-string (normalize "spacing")) + (normalize "compact")) + '(("COMPACT" "COMPACT")) + '()) + (list (list "TYPE" type))) + (process-node-list (select-elements (children (current-node)) + (normalize "listitem")))) + (para-check 'restart)))) + +(element (orderedlist title) + (make element gi: "P" + (make element gi: "B" + (process-children)))) + +(element itemizedlist + (make sequence + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (para-check) + (process-node-list (select-elements (children (current-node)) + (normalize "title"))) + (make element gi: "UL" + attributes: (if (equal? (attribute-string (normalize "spacing")) (normalize "compact")) + '(("COMPACT" "COMPACT")) + '()) + (process-node-list (select-elements (children (current-node)) + (normalize "listitem")))) + (para-check 'restart))) + +(element listitem + (let* ((override (inherited-attribute-string (normalize "override"))) + (mark (inherited-attribute-string (normalize "mark"))) + (usemark (if override override mark)) + (cssmark (if (and usemark (assoc usemark %css-liststyle-alist%)) + (car (cdr (assoc usemark %css-liststyle-alist%))) + usemark)) + (cssstyle (if (and %css-decoration% cssmark) + (list (list "STYLE" + (string-append "list-style-type: " + cssmark))) + '()))) + (make element gi: "LI" + attributes: cssstyle + (if (attribute-string (normalize "id")) + (make element gi: "A" + attributes: (list + (list "NAME" (attribute-string (normalize "id")))) + (empty-sosofo)) + (empty-sosofo)) + (process-children)))) + +(element (orderedlist listitem simpara) + (let* ((spacing (inherited-attribute-string (normalize "spacing"))) + (listitem (parent (current-node))) + (lichildren (node-list-filter-out-pis + (children listitem))) + (childcount (node-list-length lichildren))) + (if (and (equal? spacing (normalize "compact")) + (equal? childcount 1)) + ($paragraph$ "SPAN") + (next-match)))) + +(element (itemizedlist listitem simpara) + (let* ((spacing (inherited-attribute-string (normalize "spacing"))) + (listitem (parent (current-node))) + (lichildren (node-list-filter-out-pis + (children listitem))) + (childcount (node-list-length lichildren))) + (if (and (equal? spacing (normalize "compact")) + (equal? childcount 1)) + ($paragraph$ "SPAN") + (next-match)))) + +(element variablelist + (let* ((termlength (if (attribute-string (normalize "termlength")) + (string->number + (attribute-string (normalize "termlength"))) + %default-variablelist-termlength%)) + (too-long? (variablelist-term-too-long? termlength))) + (make sequence + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (para-check) + + (if (and (or (and termlength (not too-long?)) + %always-format-variablelist-as-table%) + (or %may-format-variablelist-as-table% + %always-format-variablelist-as-table%)) + (make element gi: "TABLE" + attributes: '(("CLASS" "VARIABLELIST") + ("BORDER" "0") + ("CELLSPACING" "1") + ("CELLPADDING" "1")) + (if %html40% + (make element gi: "TBODY" + (with-mode variablelist-table + (process-children))) + (with-mode variablelist-table + (process-children)))) + (make sequence + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-node-list + (select-elements (children (current-node)) + (normalize "title"))) + (make element gi: "DL" + (process-node-list + (select-elements (children (current-node)) + (normalize "varlistentry"))))))) + (para-check 'restart)))) + +(element varlistentry + (let ((terms (select-elements (children (current-node)) (normalize "term"))) + (listitem (select-elements (children (current-node)) (normalize "listitem")))) + (make sequence + (make element gi: "DT" + (if (attribute-string (normalize "id")) + (make sequence + (make element gi: "A" + attributes: (list + (list "NAME" (attribute-string (normalize "id")))) + (empty-sosofo)) + (process-node-list terms)) + (process-node-list terms))) + (process-node-list listitem)))) + +(element (varlistentry term) + (make sequence + (process-children-trim) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + +(element (varlistentry listitem) + (make element gi: "DD" + (process-children))) + +(mode variablelist-table + (element (variablelist title) + (make element gi: "TR" + attributes: '(("CLASS" "TITLE")) + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (process-children)))) + + (element varlistentry + (let* ((terms (select-elements (children (current-node)) + (normalize "term"))) + (listitem (select-elements (children (current-node)) + (normalize "listitem"))) + (termlen (if (attribute-string (normalize "termlength") + (parent (current-node))) + (string->number (attribute-string + (normalize "termlength") + (parent (current-node)))) + %default-variablelist-termlength%)) + (too-long? (varlistentry-term-too-long? (current-node) termlen))) + (if too-long? + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "A" + attributes: (list + (list "NAME" (element-id))) + (empty-sosofo)) + (process-node-list terms))) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "5")) + ;; where terms would have gone + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "5")) + ;; just a little spacer + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP")) + (process-node-list listitem)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP")) + (make element gi: "A" + attributes: (list + (list "NAME" (element-id))) + (empty-sosofo)) + (process-node-list terms)) + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("WIDTH" "5")) + ;; just a little spacer + (make entity-ref name: "nbsp")) + (make element gi: "TD" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP")) + (process-node-list listitem)))))) + + (element (varlistentry term) + (make sequence + (if %css-decoration% + (make element gi: "SPAN" + attributes: '(("STYLE" "white-space: nowrap")) + (process-children-trim)) + (make element gi: "NOBR" + (process-children-trim))) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element (varlistentry listitem) + (process-children)) +) + +(define (simplelist-table majororder cols members) + (let* ((termcount (node-list-length members)) + (rows (quotient (+ termcount (- cols 1)) cols)) + (htmlrows (let rowloop ((rownum 1)) + (if (> rownum rows) + (empty-sosofo) + (make sequence + (simplelist-row rownum majororder + rows cols members) + (rowloop (+ rownum 1))))))) + (make sequence + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo)) + (make element gi: "TABLE" + attributes: '(("BORDER" "0")) + (if %html40% + (make element gi: "TBODY" + htmlrows) + htmlrows)) + (if %spacing-paras% + (make element gi: "P" (empty-sosofo)) + (empty-sosofo))))) + +(define (simplelist-row rownum majororder rows cols members) + (make element gi: "TR" + (let colloop ((colnum 1)) + (if (> colnum cols) + (empty-sosofo) + (make sequence + (simplelist-entry rownum colnum majororder rows cols members) + (colloop (+ colnum 1))))))) + +(define (simplelist-entry rownum colnum majororder rows cols members) + (let ((membernum (if (equal? majororder 'row) + (+ (* (- rownum 1) cols) colnum) + (+ (* (- colnum 1) rows) rownum))) + (attlist (if %simplelist-column-width% + (list (list "WIDTH" %simplelist-column-width%)) + '()))) + (let loop ((nl members) (count membernum)) + (if (<= count 1) + (make element gi: "TD" + attributes: attlist + (if (node-list-empty? nl) + (make entity-ref name: "nbsp") + (process-node-list (node-list-first nl)))) + (loop (node-list-rest nl) (- count 1)))))) + +(element simplelist + (let ((type (attribute-string "type")) + (cols (if (attribute-string "columns") + (if (> (string->number (attribute-string "columns")) 0) + (string->number (attribute-string "columns")) + 1) + 1)) + (members (select-elements (children (current-node)) (normalize "member")))) + (cond + ((equal? type (normalize "inline")) + (process-children)) + ((equal? type (normalize "vert")) + (simplelist-table 'column cols members)) + ((equal? type (normalize "horiz")) + (simplelist-table 'row cols members))))) + +(element member + (let ((type (inherited-attribute-string (normalize "type")))) + (if (equal? type (normalize "inline")) + (make sequence + (process-children-trim) + (if (not (last-sibling?)) + (literal ", ") + (literal ""))) + (process-children)))) + +(element segmentedlist (process-children)) +(element (segmentedlist title) ($lowtitle$ 6)) + +(element segtitle (empty-sosofo)) + +(mode seglist-in-seg + (element segtitle + (process-children))) + +(element seglistitem (process-children)) +(element seg + (let* ((seg-num (child-number (current-node))) + (seglist (parent (parent (current-node)))) + (segtitle (nth-node (select-elements + (descendants seglist) (normalize "segtitle")) seg-num))) + + ;; Note: segtitle is only going to be the right thing in a well formed + ;; SegmentedList. If there are too many Segs or too few SegTitles, + ;; you'll get something odd...maybe an error + + (with-mode seglist-in-seg + (make element gi: "P" + (make element gi: "B" + (sosofo-append (process-node-list segtitle)) + (literal ": ")) + (process-children))))) + +(element calloutlist + (let* ((nsep (gentext-label-title-sep (gi))) + (id (attribute-string (normalize "id"))) + (titlesosofo (make sequence + (literal (gentext-element-name (gi))) + (if (string=? (element-label) "") + (literal nsep) + (literal " " (element-label) nsep)) + (element-title-sosofo)))) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (if (node-list-empty? + (select-elements (children (current-node)) (normalize "title"))) + (empty-sosofo) + (make element gi: "P" + (make element gi: "B" + (if id + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + titlesosofo) + titlesosofo)))) + (make element gi: "DL" + attributes: '(("COMPACT" "COMPACT")) + (process-children))))) + +(element (calloutlist title) (empty-sosofo)) + +(element callout + (process-children)) + +(element (calloutlist callout) + (process-children)) + +(element (calloutlist callout para) + (let ((footnotes (select-elements (descendants (current-node)) + (normalize "footnote")))) + (make sequence + (if (= (child-number) 1) + (let* ((ilevel (length (hierarchical-number-recursive + (normalize "calloutlist")))) + (arearefs (inherited-attribute-string (normalize "arearefs"))) + (idlist (split arearefs))) + (make sequence + (make element gi: "DT" + (let loop ((ids idlist)) + (if (null? ids) + (empty-sosofo) + (make sequence + ($callout-mark$ (element-with-id (car ids)) #f) + (loop (cdr ids)))))) + (make element gi: "DD" + (process-children)))) + (make element gi: "DD" + (make element gi: "P" + (process-children)))) + + (if (or %footnotes-at-end% (node-list-empty? footnotes)) + (empty-sosofo) + (make element gi: "BLOCKQUOTE" + attributes: (list + (list "CLASS" "FOOTNOTES")) + (with-mode footnote-mode + (process-node-list footnotes))))))) diff --git a/html/dblot.dsl b/html/dblot.dsl new file mode 100644 index 0000000..5524bd6 --- /dev/null +++ b/html/dblot.dsl @@ -0,0 +1,24 @@ +;; $Id: dblot.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; need test cases to do toc/lot; do these later + +(element toc (empty-sosofo)) +(element (toc title) (empty-sosofo)) +(element tocfront ($paragraph$)) +(element tocentry ($paragraph$)) +(element tocpart (process-children)) +(element tocchap (process-children)) +(element toclevel1 (process-children)) +(element toclevel2 (process-children)) +(element toclevel3 (process-children)) +(element toclevel4 (process-children)) +(element toclevel5 (process-children)) +(element tocback ($paragraph$)) +(element lot (empty-sosofo)) +(element (lot title) (empty-sosofo)) +(element lotentry ($paragraph$)) + diff --git a/html/dbmath.dsl b/html/dbmath.dsl new file mode 100644 index 0000000..c72d9ed --- /dev/null +++ b/html/dbmath.dsl @@ -0,0 +1,67 @@ +;; $Id: dbmath.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define %equation-autolabel% #f) + +(element equation + ;; derived from $semiformal-object$ + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + ($informal-object$ %informalequation-rules% %informalequation-rules%) + ($formal-object$ %informalequation-rules% %informalequation-rules%))) + +(element (equation title) (empty-sosofo)) +(element (equation alt) (empty-sosofo)) +(element (equation graphic) + (let ((alttag (select-elements (children (parent)) (normalize "alt")))) + (if alttag + ($img$ (current-node) (data alttag)) + ($img$)))) + +(element informalequation + ;; Derived from informal-object + (let ((rule-before? %informalequation-rules%) + (rule-after? %informalequation-rules%)) + (if %equation-autolabel% + (make sequence + (if rule-before? + (make empty-element gi: "HR") + (empty-sosofo)) + (make element gi: "TABLE" + attributes: '(("CLASS" "INFORMALEQUATION") + ("WIDTH" "100%") + ("BORDER" "0")) + (make element gi: "TR" + (make element gi: "TD" + attributes: '(("VALIGN" "MIDDLE") + ("ALIGN" "LEFT")) + (process-children)) + (make element gi: "TD" + attributes: '(("VALIGN" "MIDDLE") + ("ALIGN" "RIGHT") + ("WIDTH" "100")) + (literal "(" + (element-label (current-node)) + ")")))) + (if rule-after? + (make empty-element gi: "HR") + (empty-sosofo))) + ($informal-object$ rule-before? rule-after?)))) + +(element (informalequation alt) (empty-sosofo)) +(element (informalequation graphic) + (let ((alttag (select-elements (children (parent)) (normalize "alt")))) + (if alttag + ($img$ (current-node) (data alttag)) + ($img$)))) + +(element inlineequation ($inline-object$)) +(element (inlineequation alt) (empty-sosofo)) +(element (inlineequation graphic) + (let ((alttag (select-elements (children (parent)) (normalize "alt")))) + (if alttag + ($img$ (current-node) (data alttag)) + ($img$)))) diff --git a/html/dbmsgset.dsl b/html/dbmsgset.dsl new file mode 100644 index 0000000..6f6fb6e --- /dev/null +++ b/html/dbmsgset.dsl @@ -0,0 +1,42 @@ +;; $Id: dbmsgset.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ======================== ERROR MESSAGES (ETC.) ======================= + +(element msgset (process-children)) + +(element msgentry ($block-container$)) + +(element simplemsgentry ($block-container$)) + +(element msg ($block-container$)) + +(element msgmain (process-children)) + +(element msgsub + (process-children)) + +(element msgrel (empty-sosofo)) + +(element msgtext (process-children)) + +(element msginfo ($indent-para-container$)) + +(define ($genhead-para$ headtext) + (make element gi: "P" + (make element gi: "B" + (literal + (string-append headtext ": "))) + (process-children))) + +(element msglevel ($genhead-para$ (gentext-element-name (current-node)))) +(element msgorig ($genhead-para$ (gentext-element-name (current-node)))) +(element msgaud ($genhead-para$ (gentext-element-name (current-node)))) + +(element msgexplan ($indent-para-container$)) +(element (msgexplan title) ($runinhead$)) +(element (msgexplan para) (make sequence (process-children))) + diff --git a/html/dbnavig.dsl b/html/dbnavig.dsl new file mode 100644 index 0000000..eabcead --- /dev/null +++ b/html/dbnavig.dsl @@ -0,0 +1,1058 @@ +;; $Id: dbnavig.dsl,v 1.3 2001/07/05 12:08:42 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; The header of a chunk has this form: +;; +;; +-----------------------------------------+ +;; | nav-banner | +;; +------------+---------------+------------| +;; | prevlink | nav-context | nextlink | +;; +-----------------------------------------+ + +(define (nav-banner? elemnode) + ;; This node has a banner if: + ;; 1. There's an inherited dbhtml PI value for "banner-text" and that + ;; value is not the empty string, or + ;; 2. The element is not the root element + (let ((banner (inherited-dbhtml-value elemnode "banner-text"))) + (or (and banner (not (string=? banner ""))) + (not (node-list=? elemnode (sgml-root-element)))))) + +(define (nav-banner elemnode) + (let* ((rootelem (sgml-root-element)) + (info (info-element rootelem)) + (subtitle-child (select-elements (children rootelem) + (normalize "subtitle"))) + (subtitle-info (select-elements (children info) + (normalize "subtitle"))) + (subtitle (if (node-list-empty? subtitle-info) + subtitle-child + subtitle-info)) + (banner-text (inherited-dbhtml-value elemnode "banner-text")) + (banner-href (inherited-dbhtml-value elemnode "banner-href")) + (banner (if (and banner-text (not (string=? banner-text ""))) + (literal banner-text) + (make sequence + (element-title-sosofo rootelem) + (if (node-list-empty? subtitle) + (empty-sosofo) + (make sequence + (literal ": ") + (with-mode subtitle-mode + (process-node-list subtitle)))))))) + (make sequence + (if banner-href + (make element gi: "A" + attributes: (list (list "HREF" banner-href)) + banner) + banner)))) + +(define (nav-context? elemnode) + ;; Print a context header if + ;; 1. There's an inherited dbhtml PI value for "context-text" and that + ;; value is not the empty string, or + ;; 2. The chunk is a top level section and the parent component + ;; isn't the same as the root element (which appears in the nav-banner). + ;; + (let* ((context-text (inherited-dbhtml-value elemnode "context-text")) + (rootelem (sgml-root-element)) + (component (ancestor-member elemnode + (append (book-element-list) + (division-element-list) + (component-element-list)))) + (gencontext (and (or (equal? (gi elemnode) (normalize "sect1")) + (equal? (gi elemnode) (normalize "section"))) + (not (node-list=? component rootelem))))) + (or gencontext + (and context-text (not (string=? context-text "")))))) + +(define (nav-context elemnode) + ;; Print the context string for elemnode. If there's an inherited + ;; dbhtml value for 'context-text', use that. Otherwise, use the + ;; title of the parent component... + (let* ((context-href (inherited-dbhtml-value elemnode "context-href"))) + (if (nav-context? elemnode) + (if context-href + (make element gi: "A" + attributes: (list (list "HREF" context-href)) + (nav-context-sosofo elemnode)) + (nav-context-sosofo elemnode)) + (empty-sosofo)))) + +(define (nav-context-sosofo elemnode) + (let* ((component (ancestor-member elemnode + (append (book-element-list) + (division-element-list) + (component-element-list)))) + (context-text (inherited-dbhtml-value elemnode "context-text"))) + (if (and context-text (not (string=? context-text ""))) + (literal context-text) + (if (equal? (element-label component) "") + (make sequence + (element-title-sosofo component)) + (make sequence + ;; Special case. This is a bit of a hack. + ;; I need to revisit this aspect of + ;; appendixes. + (if (and (equal? (gi component) (normalize "appendix")) + (or (equal? (gi elemnode) (normalize "sect1")) + (equal? (gi elemnode) (normalize "section"))) + (equal? (gi (parent component)) (normalize "article"))) + (empty-sosofo) + (literal (gentext-element-name-space (gi component)))) + (element-label-sosofo component) + (literal (gentext-label-title-sep (gi component))) + (element-title-sosofo component)))))) + +;; The footer of a chunk has this form: +;; +;; +----------------------------------------+ +;; | prevlink | nav-home | nextlink | +;; +------------+--------------+------------| +;; | p. title | nav-up | n. title | +;; +-----------------------------------------+ + +(define (nav-home? elemnode) + (not (node-list=? elemnode (sgml-root-element)))) + +(define (nav-home elemnode) + (sgml-root-element)) + +(define (nav-home-link elemnode) + (let ((home (nav-home elemnode)) + (home-text (inherited-dbhtml-value elemnode "home-text"))) + (if (node-list=? elemnode home) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to home)) + (list "ACCESSKEY" "H")) + (if home-text + (literal home-text) + (gentext-nav-home home)))))) + +;; nav-up is displayed in the bottom center of the footer-navigation +;; table. The definition below will show "Up" for nested components +;; (the component wrapping a section, the division wrapping a component +;; etc.). It can be abused for other things, such as an index... +;; +(define (nav-up? elemnode) + (let ((up (parent elemnode)) + (up-text (inherited-dbhtml-value elemnode "up-text"))) + (if (and up-text (not (string=? up-text ""))) + #t + (if (or (node-list-empty? up) + (node-list=? up (sgml-root-element)) + (equal? (gi up) (normalize "bookinfo")) + (equal? (gi up) (normalize "docinfo")) + (equal? (gi up) (normalize "setinfo"))) + #f + #t)))) + +(define (nav-up elemnode) + (let* ((up (parent elemnode)) + (up-href (inherited-dbhtml-value elemnode "up-href")) + (uplink? (not (or (node-list-empty? up) + (node-list=? up (sgml-root-element))))) + (href (if up-href + up-href + (if uplink? + (href-to up) + #f)))) + (if href + (make element gi: "A" + attributes: (list + (list "HREF" href) + (list "ACCESSKEY" "U")) + (nav-up-sosofo elemnode)) + (nav-up-sosofo elemnode)))) + +(define (nav-up-sosofo elemnode) + (let* ((up (parent elemnode)) + (up-text (inherited-dbhtml-value elemnode "up-text"))) + (if (and up-text (not (string=? up-text ""))) + (literal up-text) + (if (or (node-list-empty? up) + (node-list=? up (sgml-root-element))) + (make entity-ref name: "nbsp") + (gentext-nav-up up))))) + +(define (nav-footer elemnode) + (empty-sosofo)) + +;; ====================================================================== + +(define (header-navigation nd #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element nd) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element nd) + (list-ref navlist 1))) + (prevm (if (null? navlist) + (prev-major-component-chunk-element nd) + (list-ref navlist 2))) + (nextm (if (null? navlist) + (next-major-component-chunk-element nd) + (list-ref navlist 3))) + (rnavlist (list prev next prevm nextm))) + (make sequence + ($html-body-start$) + (if %header-navigation% + (cond + ((equal? (gi nd) (normalize "set")) + (set-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "book")) + (book-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "part")) + (part-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "preface")) + (preface-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "chapter")) + (chapter-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "article")) + (article-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "appendix")) + (appendix-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "reference")) + (reference-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "refentry")) + (refentry-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "glossary")) + (glossary-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "bibliography")) + (bibliography-header-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "index")) + (index-header-navigation nd rnavlist)) + ;; LegalNotice only happens when %generate-legalnotice-link% is #t + ((equal? (gi nd) (normalize "legalnotice")) + (default-header-navigation nd + (empty-node-list) (empty-node-list) + (empty-node-list) (empty-node-list))) + ((member (gi nd) (section-element-list)) + (section-header-navigation nd rnavlist)) + (else (default-header-navigation nd prev next prevm nextm))) + (empty-sosofo)) + ($user-header-navigation$ prev next prevm nextm) + ($html-body-content-start$)))) + +(define (footer-navigation nd #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element nd) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element nd) + (list-ref navlist 1))) + (prevm (if (null? navlist) + (prev-major-component-chunk-element nd) + (list-ref navlist 2))) + (nextm (if (null? navlist) + (next-major-component-chunk-element nd) + (list-ref navlist 3))) + (rnavlist (list prev next prevm nextm))) + (make sequence + (make-endnotes) + ($html-body-content-end$) + ($user-footer-navigation$ prev next prevm nextm) + (if %footer-navigation% + (cond + ((equal? (gi nd) (normalize "set")) + (set-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "book")) + (book-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "part")) + (part-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "preface")) + (preface-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "chapter")) + (chapter-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "article")) + (article-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "appendix")) + (appendix-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "reference")) + (reference-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "refentry")) + (refentry-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "glossary")) + (glossary-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "bibliography")) + (bibliography-footer-navigation nd rnavlist)) + ((equal? (gi nd) (normalize "index")) + (index-footer-navigation nd rnavlist)) + ;; LegalNotice only happens when %generate-legalnotice-link% is #t + ((equal? (gi nd) (normalize "legalnotice")) + (default-footer-navigation nd + (empty-node-list) (empty-node-list) + (empty-node-list) (empty-node-list))) + ((member (gi nd) (section-element-list)) + (section-footer-navigation nd rnavlist)) + (else (default-footer-navigation nd prev next prevm nextm))) + (empty-sosofo)) + (nav-footer nd) + ($html-body-end$)))) + +(define (set-header-navigation elemnode #!optional (navlist '())) + (empty-sosofo)) + +(define (book-header-navigation elemnode #!optional (navlist '())) + (empty-sosofo)) + +(define (part-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (preface-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (chapter-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (appendix-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (article-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (if (node-list=? elemnode (sgml-root-element)) + (empty-sosofo) + (default-header-navigation elemnode prev next prevsib nextsib)))) + +(define (glossary-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (bibliography-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (index-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (reference-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (refentry-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (section-header-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-header-navigation elemnode prev next prevsib nextsib))) + +(define (set-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (book-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (part-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (preface-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (chapter-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (appendix-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (article-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (glossary-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (bibliography-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (index-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (reference-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (refentry-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +(define (section-footer-navigation elemnode #!optional (navlist '())) + (let* ((prev (if (null? navlist) + (prev-chunk-element elemnode) + (list-ref navlist 0))) + (next (if (null? navlist) + (next-chunk-element elemnode) + (list-ref navlist 1))) + (prevsib (if (null? navlist) + (prev-major-component-chunk-element elemnode) + (list-ref navlist 2))) + (nextsib (if (null? navlist) + (next-major-component-chunk-element elemnode) + (list-ref navlist 3)))) + (default-footer-navigation elemnode prev next prevsib nextsib))) + +;; ---------------------------------------------------------------------- + +(define (default-header-nav-tbl-ff elemnode prev next prevsib nextsib) + (let* ((r1? (nav-banner? elemnode)) + (r1-sosofo (make element gi: "TR" + (make element gi: "TH" + attributes: (list + (list "COLSPAN" "5") + (list "ALIGN" "center") + (list "VALIGN" "bottom")) + (nav-banner elemnode)))) + (r2? (or (not (node-list-empty? prev)) + (not (node-list-empty? next)) + (not (node-list-empty? prevsib)) + (not (node-list-empty? nextsib)) + (nav-context? elemnode))) + (r2-sosofo (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "left") + (list "VALIGN" "top")) + (if (node-list-empty? prev) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + prev)) + (list "ACCESSKEY" + "P")) + (gentext-nav-prev prev)))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "left") + (list "VALIGN" "top")) + (if (node-list-empty? prevsib) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + prevsib))) + (gentext-nav-prev-sibling prevsib)))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "60%") + (list "ALIGN" "center") + (list "VALIGN" "bottom")) + (nav-context elemnode)) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "right") + (list "VALIGN" "top")) + (if (node-list-empty? nextsib) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + nextsib))) + (gentext-nav-next-sibling nextsib)))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "right") + (list "VALIGN" "top")) + (if (node-list-empty? next) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + next)) + (list "ACCESSKEY" + "N")) + (gentext-nav-next next))))))) + (if (or r1? r2?) + (make element gi: "DIV" + attributes: '(("CLASS" "NAVHEADER")) + (make element gi: "TABLE" + attributes: (list + (list "SUMMARY" "Header navigation table") + (list "WIDTH" %gentext-nav-tblwidth%) + (list "BORDER" "0") + (list "CELLPADDING" "0") + (list "CELLSPACING" "0")) + (if r1? r1-sosofo (empty-sosofo)) + (if r2? r2-sosofo (empty-sosofo))) + (make empty-element gi: "HR" + attributes: (list + (list "ALIGN" "LEFT") + (list "WIDTH" %gentext-nav-tblwidth%)))) + (empty-sosofo)))) + +(define (default-header-nav-tbl-noff elemnode prev next prevsib nextsib) + (let* ((r1? (nav-banner? elemnode)) + (r1-sosofo (make element gi: "TR" + (make element gi: "TH" + attributes: (list + (list "COLSPAN" "3") + (list "ALIGN" "center")) + (nav-banner elemnode)))) + (r2? (or (not (node-list-empty? prev)) + (not (node-list-empty? next)) + (nav-context? elemnode))) + (r2-sosofo (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "left") + (list "VALIGN" "bottom")) + (if (node-list-empty? prev) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + prev)) + (list "ACCESSKEY" + "P")) + (gentext-nav-prev prev)))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "80%") + (list "ALIGN" "center") + (list "VALIGN" "bottom")) + (nav-context elemnode)) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "10%") + (list "ALIGN" "right") + (list "VALIGN" "bottom")) + (if (node-list-empty? next) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" + (href-to + next)) + (list "ACCESSKEY" + "N")) + (gentext-nav-next next))))))) + (if (or r1? r2?) + (make element gi: "DIV" + attributes: '(("CLASS" "NAVHEADER")) + (make element gi: "TABLE" + attributes: (list + (list "SUMMARY" "Header navigation table") + (list "WIDTH" %gentext-nav-tblwidth%) + (list "BORDER" "0") + (list "CELLPADDING" "0") + (list "CELLSPACING" "0")) + (if r1? r1-sosofo (empty-sosofo)) + (if r2? r2-sosofo (empty-sosofo))) + (make empty-element gi: "HR" + attributes: (list + (list "ALIGN" "LEFT") + (list "WIDTH" %gentext-nav-tblwidth%)))) + (empty-sosofo)))) + +(define (default-header-nav-notbl-ff elemnode prev next prevsib nextsib) + (make element gi: "DIV" + attributes: '(("CLASS" "NAVHEADER")) + (if (nav-banner? elemnode) + (make element gi: "H1" + (nav-banner elemnode)) + (empty-sosofo)) + + (if (and (node-list-empty? prev) + (node-list-empty? prevsib) + (node-list-empty? nextsib) + (node-list-empty? next)) + (empty-sosofo) + (make element gi: "P" + (if (node-list-empty? next) + (empty-sosofo) + (make sequence + (make element gi: "A" + attributes: (list + (list "HREF" (href-to next)) + (list "ACCESSKEY" "N")) + (gentext-nav-next next)))) + + (if (node-list-empty? prev) + (empty-sosofo) + (make sequence + (if (node-list-empty? next) + (empty-sosofo) + (literal ", ")) + (make element gi: "A" + attributes: (list + (list "HREF" (href-to prev)) + (list "ACCESSKEY" "P")) + (gentext-nav-prev prev)))) + + (if (node-list-empty? nextsib) + (empty-sosofo) + (make sequence + (if (and (node-list-empty? next) + (node-list-empty? prev)) + (empty-sosofo) + (literal ", ")) + (make element gi: "A" + attributes: (list + (list "HREF" (href-to nextsib))) + (gentext-nav-next-sibling nextsib)))) + + (if (node-list-empty? prevsib) + (empty-sosofo) + (make sequence + (if (and (node-list-empty? next) + (node-list-empty? prev) + (node-list-empty? nextsib)) + (empty-sosofo) + (literal ", ")) + (make element gi: "A" + attributes: (list + (list "HREF" (href-to prevsib))) + (gentext-nav-prev-sibling prevsib)))))) + + (if (nav-context? elemnode) + (make element gi: "H2" + (nav-context elemnode)) + (empty-sosofo)) + + (make empty-element gi: "HR"))) + +(define (default-header-nav-notbl-noff elemnode prev next prevsib nextsib) + (default-header-nav-notbl-ff elemnode prev next + (empty-node-list) (empty-node-list))) + +(define (default-header-navigation elemnode prev next prevsib nextsib) + (if %gentext-nav-use-tables% + (if %gentext-nav-use-ff% + (default-header-nav-tbl-ff elemnode prev next prevsib nextsib) + (default-header-nav-tbl-noff elemnode prev next prevsib nextsib)) + (if %gentext-nav-use-ff% + (default-header-nav-notbl-ff elemnode prev next prevsib nextsib) + (default-header-nav-notbl-noff elemnode prev next prevsib nextsib)))) + +(define (default-footer-navigation elemnode prev next prevsib nextsib) + (if %gentext-nav-use-tables% + (default-footer-nav-tbl elemnode prev next prevsib nextsib) + (default-footer-nav-notbl elemnode prev next prevsib nextsib))) + +(define (default-footer-nav-tbl elemnode prev next prevsib nextsib) + (let ((r1? (or (not (node-list-empty? prev)) + (not (node-list-empty? next)) + (nav-home? elemnode))) + (r2? (or (not (node-list-empty? prev)) + (not (node-list-empty? next)) + (nav-up? elemnode))) + + (r1-sosofo (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "WIDTH" "33%") + (list "ALIGN" "left") + (list "VALIGN" "top")) + (if (node-list-empty? prev) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" (href-to + prev)) + (list "ACCESSKEY" + "P")) + (gentext-nav-prev prev)))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "34%") + (list "ALIGN" "center") + (list "VALIGN" "top")) + (nav-home-link elemnode)) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "33%") + (list "ALIGN" "right") + (list "VALIGN" "top")) + (if (node-list-empty? next) + (make entity-ref name: "nbsp") + (make element gi: "A" + attributes: (list + (list "HREF" (href-to + next)) + (list "ACCESSKEY" + "N")) + (gentext-nav-next next)))))) + (r2-sosofo (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "WIDTH" "33%") + (list "ALIGN" "left") + (list "VALIGN" "top")) + (if (node-list-empty? prev) + (make entity-ref name: "nbsp") + (element-title-sosofo prev))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "34%") + (list "ALIGN" "center") + (list "VALIGN" "top")) + (if (nav-up? elemnode) + (nav-up elemnode) + (make entity-ref name: "nbsp"))) + (make element gi: "TD" + attributes: (list + (list "WIDTH" "33%") + (list "ALIGN" "right") + (list "VALIGN" "top")) + (if (node-list-empty? next) + (make entity-ref name: "nbsp") + (element-title-sosofo next)))))) + (if (or r1? r2?) + (make element gi: "DIV" + attributes: '(("CLASS" "NAVFOOTER")) + (make empty-element gi: "HR" + attributes: (list + (list "ALIGN" "LEFT") + (list "WIDTH" %gentext-nav-tblwidth%))) + (make element gi: "TABLE" + attributes: (list + (list "SUMMARY" "Footer navigation table") + (list "WIDTH" %gentext-nav-tblwidth%) + (list "BORDER" "0") + (list "CELLPADDING" "0") + (list "CELLSPACING" "0")) + (if r1? r1-sosofo (empty-sosofo)) + (if r2? r2-sosofo (empty-sosofo)))) + (empty-sosofo)))) + +(define (default-footer-nav-notbl elemnode prev next prevsib nextsib) + (make element gi: "DIV" + attributes: '(("CLASS" "NAVFOOTER")) + (make empty-element gi: "HR") + + (if (nav-home? elemnode) + (nav-home-link elemnode) + (empty-sosofo)) + + (if (nav-up? elemnode) + (make sequence + (if (nav-home? elemnode) + (literal ", ") + (empty-sosofo)) + (nav-up elemnode)) + (empty-sosofo)) + + (if (or (nav-home? elemnode) (nav-up? elemnode)) + (make empty-element gi: "BR") + (empty-sosofo)) + + (if (node-list-empty? prev) + (empty-sosofo) + (make sequence + (make element gi: "A" + attributes: (list + (list "HREF" (href-to prev)) + (list "ACCESSKEY" "P")) + (gentext-nav-prev prev)) + (literal ": " (element-title-string prev)) + (make empty-element gi: "BR"))) + + (if (node-list-empty? next) + (empty-sosofo) + (make sequence + (make element gi: "A" + attributes: (list + (list "HREF" (href-to next)) + (list "ACCESSKEY" "N")) + (gentext-nav-next next)) + (literal ": " (element-title-string next)) + (make empty-element gi: "BR"))))) + +(define ($user-header-navigation$ #!optional + (prev (empty-node-list)) + (next (empty-node-list)) + (prevm (empty-node-list)) + (nextm (empty-node-list))) + (empty-sosofo)) + +(define ($user-footer-navigation$ #!optional + (prev (empty-node-list)) + (next (empty-node-list)) + (prevm (empty-node-list)) + (nextm (empty-node-list))) + (empty-sosofo)) + +;; EOF dbnavig.dsl; diff --git a/html/dbparam.dsl b/html/dbparam.dsl new file mode 100644 index 0000000..c913cb8 --- /dev/null +++ b/html/dbparam.dsl @@ -0,0 +1,1723 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN"> + +<style-sheet> +<style-specification> +<style-specification-body> + +;; $Id: dbparam.dsl,v 1.10 2004/10/10 11:55:10 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://www.nwalsh.com/docbook/dsssl/ +;; + +;; === Book intro, for dsl2man ========================================== + +<![CDATA[ +;; DOCINFO +;; <title>DocBook HTML Parameters</title> +;; <subtitle>Part of the Modular DocBook Stylesheet distribution</subtitle> +;; <author><firstname>Norman</firstname><surname>Walsh</surname> +;; </author> +;; <edition>$Revision: 1.10 $</edition> +;; <copyright><year>1997</year><year>1998</year><year>1999</year> +;; <holder>Norman Walsh</holder></copyright> +;; <legalnotice> +;; <para> +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER +;; CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +;; OTHER DEALINGS IN THE SOFTWARE. +;; </para> +;; </legalnotice> +;; <legalnotice> +;; <para> +;; Please direct all questions, bug reports, or suggestions for changes +;; to Norman Walsh, <<literal>ndw@nwalsh.com</literal>>. +;; </para> +;; <para> +;; See <ulink url="http://nwalsh.com/docbook/dsssl/">http://nwalsh.com/docbook/dsssl/</ulink> for more information.</para> +;; </legalnotice> +;; /DOCINFO +]]> + +;; REFERENCE TOC/LOT Apparatus + +(define %generate-set-toc% + ;; REFENTRY generate-set-toc + ;; PURP Should a Table of Contents be produced for Sets? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Set'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-book-toc% + ;; REFENTRY generate-book-toc + ;; PURP Should a Table of Contents be produced for Books? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Book'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define ($generate-book-lot-list$) + ;; REFENTRY generate-book-lot-list + ;; PURP Which Lists of Titles should be produced for Books? + ;; DESC + ;; This parameter should be a list (possibly empty) of the elements + ;; for which Lists of Titles should be produced for each 'Book'. + ;; + ;; It is meaningless to put elements that do not have titles in this + ;; list. If elements with optional titles are placed in this list, only + ;; the instances of those elements that do have titles will appear in + ;; the LOT. + ;; + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list (normalize "table") +(normalize "figure") +(normalize "example") +(normalize "equation"))) + +(define %generate-part-toc% + ;; REFENTRY generate-part-toc + ;; PURP Should a Table of Contents be produced for Parts? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Part'. + ;; Note: '%generate-part-toc-on-titlepage%' controls whether the Part TOC + ;; is placed on the bottom of the part titlepage or on page(s) of its own. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-part-toc-on-titlepage% + ;; REFENTRY generate-part-toc-on-titlepage + ;; PURP Should the Part TOC appear on the Part title page? + ;; DESC + ;; If true, the Part TOC will be placed on the Part title page. If false, + ;; the TOC will be placed on separate page(s) after the Part title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define $generate-chapter-toc$ + ;; REFENTRY generate-chapter-toc + ;; PURP Should a Chapter Table of Contents be produced? + ;; DESC + ;; If true, an automatically generated + ;; chapter TOC should be included. By default, it's true. It's false if + ;; the output is going to a single file and the current node isn't the + ;; root element. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (lambda () + (or (not nochunks) +(node-list=? (current-node) (sgml-root-element))))) + +(define %force-chapter-toc% + ;; REFENTRY force-chapter-toc + ;; PURP Force a chapter TOC even if it includes only a single entry + ;; DESC + ;; Force chapter toc indicates whether or not an automatically generated + ;; chapter TOC should be included even if it has only one entry. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-article-toc% + ;; REFENTRY generate-article-toc + ;; PURP Should a Table of Contents be produced for Articles? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Article'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define ($generate-article-lot-list$) + ;; REFENTRY generate-article-lot-list + ;; PURP Which Lists of Titles should be produced for Books? + ;; DESC + ;; This parameter should be a list (possibly empty) of the elements + ;; for which Lists of Titles shold be produced for each 'Article'. + ;; + ;; It is meaningless to put elements that do not have titles in this + ;; list. If elements with optional titles are placed in this list, only + ;; the instances of those elements that do have titles will appear in + ;; the LOT. + ;; + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY +(list)) + +(define %generate-reference-toc% + ;; REFENTRY generate-reference-toc + ;; PURP Should a Table of Contents be produced for References? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Reference'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-reference-toc-on-titlepage% + ;; REFENTRY generate-reference-toc-on-titlepage + ;; PURP Should the Reference TOC appear on the Reference title page? + ;; DESC + ;; If true, the Reference TOC will be placed on the Reference title page. + ;; If false, + ;; the TOC will be placed after the Reference title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %annotate-toc% + ;; REFENTRY annotate-toc + ;; PURP Annotate TOC entries + ;; DESC + ;; If #t, TOC entries will be annotated (e.g., the RefPurpose + ;; of a RefEntry will be displayed in the TOC). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define ($generate-qandaset-toc$) + ;; REFENTRY generate-qandaset-toc + ;; PURP Should a QandASet Table of Contents be produced? + ;; DESC + ;; If true, an automatically generated TOC is produced for each + ;; QandASet. + ;; /DESC + ;; /REFENTRY + #t) + +;; REFERENCE Titlepages + +(define %generate-set-titlepage% + ;; REFENTRY generate-set-titlepage + ;; PURP Should a set title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Set'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-book-titlepage% + ;; REFENTRY generate-book-titlepage + ;; PURP Should a book title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Book'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-part-titlepage% + ;; REFENTRY generate-part-titlepage + ;; PURP Should a part title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Part'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-partintro-on-titlepage% + ;; REFENTRY generate-partintro-on-titlepage + ;; PURP Should the PartIntro appear on the Part/Reference title page? + ;; DESC + ;; If true, the PartIntro content will appear on the title page of + ;; Parts and References. If false, + ;; it will be placed on separate page(s) after the title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-reference-titlepage% + ;; REFENTRY generate-reference-titlepage + ;; PURP Should a reference title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Reference'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-article-titlepage% + ;; REFENTRY generate-article-titlepage + ;; PURP Should an article title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Article'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %titlepage-in-info-order% + ;; REFENTRY titlepage-in-info-order + ;; PURP Place elements on title page in document order? + ;; DESC + ;; If true, the elements on the title page will be set in the order that + ;; they appear in the *info element. Otherwise, they will be set in + ;; the order specified in the *-titlepage-*-elements list. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-legalnotice-link% + ;; REFENTRY generate-legalnotice-link + ;; PURP Should legal notices be a link to a separate file? + ;; DESC + ;; If true, legal notices will be references to a separate file. + ;; Note: the support for this handles the case where a single *INFO + ;; node contains several distinct legal notices, but won't + ;; handle multiple legal notices in different *INFO nodes. + ;; (Each set will overwrite the previous.) A more complex + ;; approach could be implemented, but this is sufficient for + ;; the current demand. Let me know... + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define ($legalnotice-link-file$ legalnotice) + ;; REFENTRY legalnotice-link-file + ;; PURP Name of output file for legal notices + ;; DESC + ;; Name of the output file for legal notices if + ;; '%generate-legalnotice-link%' is true. Since several legal notices + ;; may occur (in a Set of Books, for example), this is no longer a fixed + ;; filename. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (if (and %use-id-as-filename% (attribute-string (normalize "id") legalnotice)) + (string-append (attribute-string (normalize "id") legalnotice) + %html-ext%) + (string-append "ln" + (number->string (all-element-number legalnotice)) + %html-ext%))) + +(define %author-othername-in-middle% + ;; REFENTRY othername-in-middle + ;; PURP Author OTHERNAME appears between FIRSTNAME and SURNAME? + ;; DESC + ;; If true, the OTHERNAME of an AUTHOR appears between the + ;; FIRSTNAME and SURNAME. Otherwise, OTHERNAME is suppressed. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Admonitions + +(define %admon-graphics% + ;; REFENTRY admon-graphics + ;; PURP Use graphics in admonitions? + ;; DESC + ;; If true, admonitions are presented in an alternate style that uses + ;; a graphic. Default graphics are provided in the distribution. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %admon-graphics-path% + ;; REFENTRY admon-graphics-path + ;; PURP Path to admonition graphics + ;; DESC + ;; Sets the path, probably relative to the directory where the HTML + ;; files are created, to the admonition graphics. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "../images/") + +(define ($admon-graphic$ #!optional (nd (current-node))) + ;; REFENTRY admon-graphic + ;; PURP Admonition graphic file + ;; DESC + ;; Given an admonition node, returns the name of the graphic that should + ;; be used for that admonition. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (cond ((equal? (gi nd) (normalize "tip")) + (string-append %admon-graphics-path% "tip" %stock-graphics-extension%)) + ((equal? (gi nd) (normalize "note")) + (string-append %admon-graphics-path% "note" %stock-graphics-extension%)) + ((equal? (gi nd) (normalize "important")) + (string-append %admon-graphics-path% "important" %stock-graphics-extension%)) + ((equal? (gi nd) (normalize "caution")) + (string-append %admon-graphics-path% "caution" %stock-graphics-extension%)) + ((equal? (gi nd) (normalize "warning")) + (string-append %admon-graphics-path% "warning" %stock-graphics-extension%)) + (else (error (string-append (gi nd) " is not an admonition."))))) + +(define ($admon-graphic-width$ #!optional (nd (current-node))) + ;; REFENTRY admon-graphic-width + ;; PURP Admonition graphic file width + ;; DESC + ;; Given an admonition node, returns the width of the graphic that will + ;; be used for that admonition. + ;; + ;; All of the default graphics in the distribution are 25 pixels wide. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "25") + +;; REFERENCE Callouts + +(define %callout-graphics% + ;; REFENTRY callout-graphics + ;; PURP Use graphics in callouts? + ;; DESC + ;; If true, callouts are presented with graphics (e.g., reverse-video + ;; circled numbers instead of "(1)", "(2)", etc.). + ;; Default graphics are provided in the distribution. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %callout-graphics-path% + ;; REFENTRY callout-graphics-path + ;; PURP Path to callout graphics + ;; DESC + ;; Sets the path, probably relative to the directory where the HTML + ;; files are created, to the callout graphics. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "../images/callouts/") + +(define %callout-graphics-number-limit% + ;; REFENTRY callout-graphics-number-limit + ;; PURP Number of largest callout graphic + ;; DESC + ;; If '%callout-graphics%' is true, graphics are used to represent + ;; callout numbers. The value of '%callout-graphics-number-limit%' is + ;; the largest number for which a graphic exists. If the callout number + ;; exceeds this limit, the default presentation "(nnn)" will always + ;; be used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 10) + +;; REFERENCE VariableLists + +(define %always-format-variablelist-as-table% + ;; REFENTRY always-format-variablelist-as-table + ;; PURP Always format VariableLists as tables? + ;; DESC + ;; When a 'VariableList' is formatted, if any of the + ;; terms in the list are too long, the whole list is formatted as a + ;; list. + ;; + ;; If '%always-format-variablelist-as-table%' is + ;; '#t', the 'VariableList' will be + ;; formatted as a table, even if some terms are too long. The terms that + ;; are too long will format span above their associated description. + ;; /DESC + ;; /REFENTRY + #f) + +(define %default-variablelist-termlength% + ;; REFENTRY default-variablelist-termlength + ;; PURP Default term length on variablelists + ;; DESC + ;; When formatting a 'VariableList', this value is + ;; used as the default term length, if no 'TermLength' is specified. + ;; + ;; If all of the terms in a list shorter than the term length, the + ;; stylesheet may format them "side-by-side" in a table. + ;; /DESC + ;; /REFENTRY + 20) + +(define %may-format-variablelist-as-table% + ;; REFENTRY may-format-variablelist-as-table + ;; PURP Format VariableLists as tables? + ;; DESC + ;; If '%may-format-variablelist-as-table%' is + ;; '#t', a 'VariableList' will be + ;; formatted as a table, if *all of* + ;; the terms are shorter than the specified + ;; 'TermLength'. + ;; /DESC + ;; /REFENTRY + #f) + +;; REFERENCE Navigation + +(define %header-navigation% + ;; REFENTRY header-navigation + ;; PURP Should navigation links be added to the top of each page? + ;; DESC + ;; If '#t', navigation links will be added to the top of each page. + ;; If '#f', no navigation links will be added. Note that this has + ;; no effect on '($user-header-navigation$)', which will still be + ;; called (but does nothing by default). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %footer-navigation% + ;; REFENTRY footer-navigation + ;; PURP Should navigation links be added to the bottom of each page? + ;; DESC + ;; If '#t', navigation links will be added to the bottom of each page. + ;; If '#f', no navigation links will be added. Note that this has + ;; no effect on '($user-footer-navigation$)' or '(nav-footer)', which + ;; will still be called (but do nothing by default). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %gentext-nav-tblwidth% + ;; REFENTRY gentext-nav-tblwidth + ;; PURP If using tables for navigation, how wide should the tables be? + ;; DESC + ;; If tables are used for navigation (see '%gentext-nav-use-tables%'), + ;; how wide should the tables be? + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "100%") + +(define %gentext-nav-use-ff% + ;; REFENTRY gentext-nav-use-ff + ;; PURP Add "fast-forward" to the navigation links? + ;; DESC + ;; Do you want "fast-forward" navigation? Probably not is my guess. + ;; I'm not sure this works real well yet. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %gentext-nav-use-tables% + ;; REFENTRY gentext-nav-use-tables + ;; PURP Use tables to build the navigation headers and footers? + ;; DESC + ;; If true, HTML TABLEs will be used to format the header and footer + ;; navigation information. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Verbatim Environments + +(define %indent-address-lines% + ;; REFENTRY indent-address-lines + ;; PURP Indent lines in a 'Address'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-funcsynopsisinfo-lines% + ;; REFENTRY indent-funcsynopsisinfo-lines + ;; PURP Indent lines in a 'FuncSynopsisInfo'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-literallayout-lines% + ;; REFENTRY indent-literallayout-lines + ;; PURP Indent lines in a 'LiteralLayout'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-programlisting-lines% + ;; REFENTRY indent-programlisting-lines + ;; PURP Indent lines in a 'ProgramListing'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-screen-lines% + ;; REFENTRY indent-screen-lines + ;; PURP Indent lines in a 'Screen'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-synopsis-lines% + ;; REFENTRY indent-synopsis-lines + ;; PURP Indent lines in a 'Synopsis'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %number-address-lines% + ;; REFENTRY number-address-lines + ;; PURP Enumerate lines in a 'Address'? + ;; DESC + ;; If true, lines in each 'Address' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-funcsynopsisinfo-lines% + ;; REFENTRY number-funcsynopsisinfo-lines + ;; PURP Enumerate lines in a 'FuncSynopsisInfo'? + ;; DESC + ;; If true, lines in each 'FuncSynopsisInfo' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-literallayout-lines% + ;; REFENTRY number-literallayout-lines + ;; PURP Enumerate lines in a 'LiteralLayout'? + ;; DESC + ;; If true, lines in each 'LiteralLayout' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-programlisting-lines% + ;; REFENTRY number-programlisting-lines + ;; PURP Enumerate lines in a 'ProgramListing'? + ;; DESC + ;; If true, lines in each 'ProgramListing' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-screen-lines% + ;; REFENTRY number-screen-lines + ;; PURP Enumerate lines in a 'Screen'? + ;; DESC + ;; If true, lines in each 'Screen' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-synopsis-lines% + ;; REFENTRY number-synopsis-lines + ;; PURP Enumerate lines in a 'Synopsis'? + ;; DESC + ;; If true, lines in each 'Synopsis' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %linenumber-length% + ;; REFENTRY linenumber-length + ;; PURP Width of line numbers in enumerated environments + ;; DESC + ;; Line numbers will be padded to '%linenumber-length%' + ;; characters. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 3) + +(define %linenumber-mod% + ;; REFENTRY linenumber-mod + ;; PURP Controls line-number frequency in enumerated environments. + ;; DESC + ;; Every '%linenumber-mod%' line will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 5) + +(define %linenumber-padchar% + ;; REFENTRY linenumber-padchar + ;; PURP Pad character in line numbers + ;; DESC + ;; Line numbers will be padded (on the left) with '%linenumber-padchar%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + " ") + +(define ($linenumber-space$) + ;; REFENTRY linenumber-space + ;; PURP Returns the sosofo which separates line numbers from the text + ;; DESC + ;; The sosofo returned by '($linenumber-space$)' is placed + ;; between the line number and the corresponding line in + ;; enumerated environments. + ;; + ;; Note: '%linenumber-padchar%'s are separated from lines + ;; that are not enumerated (because they don't match '%linenumber-mod%'). + ;; In other words, '($linenumber-space$)' occurs + ;; on every line. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (make entity-ref name: "nbsp")) + +(define %shade-verbatim% + ;; REFENTRY shade-verbatim + ;; PURP Should verbatim environments be shaded? + ;; DESC + ;; If true, a table with '($shade-verbatim-attr$)' attributes will be + ;; wrapped around each verbatim environment. This gives the effect + ;; of a shaded verbatim environment. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define ($shade-verbatim-attr$) + ;; REFENTRY shade-verbatim-attr + ;; PURP Attributes used to create a shaded verbatim environment. + ;; DESC + ;; See '%shade-verbatim%' + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list + (list "BORDER" "0") + (list "BGCOLOR" "#E0E0E0") + (list "WIDTH" ($table-width$)))) + +(define %callout-default-col% + ;; REFENTRY callout-default-col + ;; PURP Default column for callouts + ;; DESC + ;; If the coordinates of a callout include only a line number, the callout + ;; bug will appear in column '%callout-default-col%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 60) + +;; REFERENCE Labelling + +(define %chapter-autolabel% + ;; REFENTRY chapter-autolabel + ;; PURP Are chapters enumerated? + ;; DESC + ;; If true, chapters will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %section-autolabel% + ;; REFENTRY section-autolabel + ;; PURP Are sections enumerated? + ;; DESC + ;; If true, unlabeled sections will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %label-preface-sections% + ;; REFENTRY label-preface-sections + ;; PURP Are sections in the Preface enumerated? + ;; DESC + ;; If true, unlabeled sections in the Preface will be enumerated + ;; if '%section-autolabel%' is true. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %qanda-inherit-numeration% + ;; REFENTRY qanda-inherit-numeration + ;; PURP Should numbered questions inherit the surrounding numeration? + ;; DESC + ;; If true, question numbers are prefixed with the surrounding + ;; component or section number. Has no effect unless + ;; '%section-autolabel%' is also true. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Tables + +(define %cals-table-class% + ;; REFENTRY cals-table-class + ;; PURP Class attribute for CALS tables + ;; DESC + ;; This value, if not '#f', will be used as the value of the CLASS + ;; attribute on CALS tables. This allows the HTML stylesheet to + ;; distinguish between HTML tables generated from tables in the + ;; source document from HTML tables generated for other reasons + ;; (simplelists and navigation, for example). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "CALSTABLE") + +(define ($table-element-list$) + ;; REFENTRY table-element-list + ;; PURP List of table element names + ;; DESC + ;; The list of table elements in the DTD. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list (normalize "table") (normalize "informaltable"))) + +(define ($table-width$) + ;; REFENTRY table-width + ;; PURP Calculate table width + ;; DESC + ;; This function is called to calculate the width of tables that should + ;; theoretically be "100%" wide. Unfortunately, in HTML, a 100% width + ;; table in a list hangs off the right side of the browser window. (Who's + ;; mistake was that!). So this function provides a way to massage + ;; the width appropriately. + ;; + ;; This version is fairly dumb. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (if (has-ancestor-member? (current-node) '("LISTITEM")) + "90%" + "100%")) + +(define %simplelist-column-width% + ;; REFENTRY simplelist-column-width + ;; PURP Width of columns in tabular simple lists + ;; DESC + ;; If SimpleLists are presented in a table, how wide should the table + ;; columns be? If '#f', no width will be specified. + ;; + ;; If not #f, this value should be a string (it will be used in the WIDTH + ;; attribute on the TD for each table entry). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %epigraph-start-col% + ;; REFENTRY epigraph-start-col + ;; PURP Size of start indent for epigraphs. + ;; DESC + ;; Width of the table column which provides a starting indent for + ;; epigraphs, expressed as a percentage. + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + "45%") + +(define %epigraph-content-col% + ;; REFENTRY epigraph-content-col + ;; PURP Size of epigraph text column. + ;; DESC + ;; Width of the table column which contains the contents of + ;; epigraphs, expressed as a percentage. + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + "45%") + +(define %blockquote-start-col% + ;; REFENTRY blockquote-start-col + ;; PURP Size of start indent for blockquoted text. + ;; DESC + ;; Width of the table column which provides a starting indent for + ;; blockquoted text, expressed as a percentage. + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + "10%") + +(define %blockquote-end-col% + ;; REFENTRY blockquote-end-col + ;; PURP Size of end indent for blockquoted text. + ;; DESC + ;; Width of the table column which provides and end indent after + ;; blockquoted text, expressed as a percentage. + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + "10%") + + +;; REFERENCE Bibliographies + +(define biblio-citation-check + ;; REFENTRY biblio-citation-check + ;; PURP Check citations + ;; DESC + ;; If true, the content of CITATIONs will be checked against possible + ;; biblioentries. If the citation cannot be found, an error is issued + ;; and the citation is generated. If the citation is found, it is generated + ;; with a cross reference to the appropriate biblioentry. + ;; + ;; A citation matches if the content of the citation element matches the + ;; ID, XREFLABEL, or leading ABBREV of a biblioentry. + ;; + ;; This setting may have significant performance implications on large + ;; documents, hence it is false by default. + ;; + ;; (This option can conveniently be set with '-V biblio-citation-check' + ;; on the Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-filter-used + ;; REFENTRY filter-used + ;; PURP Suppress unreferenced bibliography entries + ;; DESC + ;; If true, bibliography entries which are not cited are suppressed. + ;; A biblioentry is cited if an XREF or LINK matches its ID, or if + ;; a CITE element matches its + ;; ID, XREFLABEL, or leading ABBREV. + ;; + ;; A BIBLIOGRAPHY with no entries will still be output (making a whole + ;; component conditional would be _A LOT_ of work and seems unnecessary), + ;; but BIBLIDIVs with no entries will be suppressed. + ;; + ;; This setting may have significant performance implications, + ;; hence it is false by default. + ;; + ;; (This option can conveniently be set with '-V biblio-filter-used' on the + ;; Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-number + ;; REFENTRY biblio-number + ;; PURP Enumerate bibliography entries + ;; DESC + ;; If true, bibliography entries will be numbered. If you cross-reference + ;; bibliography entries, you should probably use biblio-number or + ;; consistently use XREFLABEL or ABBREV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-xref-title + ;; REFENTRY biblio-xref-title + ;; PURP Use the titles of bibliography entries in XREFs + ;; DESC + ;; If true, cross references to bibliography entries will use the + ;; title of the entry as the cross reference text. Otherwise, either + ;; the number (see 'biblio-number') or XREFLABEL/ABBREV will be used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE OLinks + +(define %olink-fragid% + ;; REFENTRY olink-fragid + ;; PURP Portion of the URL which identifies the fragment identifier + ;; DESC + ;; Portion of the URL which identifies the fragment identifier + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "&fragid=") + +(define %olink-outline-ext% + ;; REFENTRY olink-outline-ext + ;; PURP Extension for olink outline file + ;; DESC + ;; The extension used to find the outline information file. When searching + ;; for outline information about a document, the extension is discarded + ;; from the system ID of the file and '%olinke-outline-ext%' is appended. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".olink") + +(define %olink-pubid% + ;; REFENTRY olink-pubid + ;; PURP Portion of the URL which identifies the public identifier + ;; DESC + ;; Portion of the URL which identifies the public identifier + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "pubid=") + +(define %olink-resolution% + ;; REFENTRY olink-resolution + ;; PURP URL script for OLink resolution + ;; DESC + ;; OLink resolution requires a server component, '%olink-resolution%' + ;; identifies that component. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "/cgi-bin/olink?") + +(define %olink-sysid% + ;; REFENTRY olink-sysid + ;; PURP Portion of the URL which identifies the system identifier + ;; DESC + ;; Portion of the URL which identifies the system identifier. System + ;; identifiers are only used if no public identifier is provided. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "sysid=") + +;; REFERENCE Graphics + +(define %graphic-default-extension% + ;; REFENTRY graphic-default-extension + ;; PURP Default extension for graphic FILEREFs + ;; DESC + ;; The '%graphic-default-extension%' will be + ;; added to the end of all 'fileref' filenames on + ;; 'Graphic's if they do not end in one of the + ;; '%graphic-extensions%'. Set this to '#f' + ;; to turn off this feature. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %stock-graphics-extension% + ;; REFENTRY stock-graphics-extension + ;; PURP Suffix for "stock" graphic files + ;; DESC + ;; The extension to for the graphic files which ship with the + ;; Modular DocBook Stylesheet distribution. This applies to callout + ;; graphics and admonition graphics. Should include the intervening + ;; period in the suffix, if any. + ;; /DESC + ;; AUTHOR Yann Dirson, Adam Di Carlo + ;; /REFENTRY + ".gif") + +(define %graphic-extensions% + ;; REFENTRY graphic-extensions + ;; PURP List of graphic filename extensions + ;; DESC + ;; The list of extensions which may appear on a 'fileref' + ;; on a 'Graphic' which are indicative of graphic formats. + ;; + ;; Filenames that end in one of these extensions will not have + ;; the '%graphic-default-extension%' added to them. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '("gif" "jpg" "jpeg" "png" "tif" "tiff" "eps" "epsf")) + +(define image-library + ;; REFENTRY image-library + ;; PURP Load image library database for additional info about images? + ;; DESC + ;; If true, an image library database is loaded and extra information + ;; about web graphics is retrieved from it. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define image-library-filename + ;; REFENTRY image-library-filename + ;; PURP Name of the image library database + ;; DESC + ;; If 'image-library' is true, then the database is loaded from + ;; 'image-library-filename'. It's a current limitation that only a + ;; single database can be loaded. + ;; + ;; The image library database is stored in a separate directory + ;; because it must be parsed with the XML declaration. The only + ;; practical way to accomplish this with Jade, if you are processing a + ;; document that uses another declaration, is by having a catalog + ;; file in the directory that contains the image library that + ;; specifies the SGMLDECL. (So if it was in the same directory + ;; as your document, your document would also be parsed with the + ;; XML declaration, which may not be correct.) + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "imagelib/imagelib.xml") + +;; REFERENCE HTML Parameters and Chunking + +(define %body-attr% + ;; REFENTRY body-attr + ;; PURP What attributes should be hung off of BODY? + ;; DESC + ;; A list of the the BODY attributes that should be generated. + ;; The format is a list of lists, each interior list contains the + ;; name and value of a BODY attribute. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list + (list "BGCOLOR" "#FFFFFF") + (list "TEXT" "#000000") + (list "LINK" "#0000FF") + (list "VLINK" "#840084") + (list "ALINK" "#0000FF"))) + +(define %html-prefix% + ;; REFENTRY html-prefix + ;; PURP Add the specified prefix to HTML output filenames + ;; DESC + ;; The specified prefix will be added to all HTML output filenames. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "") + +(define %html-use-lang-in-filename% + ;; REFENTRY html-use-lang-in-filename + ;; PURP Add the source language code to the HTML output filename? + ;; DESC + ;; If '#t', the source language code (or the default language code, if + ;; none is specified), will be added to the filename of each HTML + ;; output file. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %html-ext% + ;; REFENTRY html-ext + ;; PURP Default extension for HTML output files + ;; DESC + ;; The default extension for HTML output files. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".htm") + +(define %html-header-tags% + ;; REFENTRY html-header-tags + ;; PURP What additional HEAD tags should be generated? + ;; DESC + ;; A list of the the HTML HEAD tags that should be generated. + ;; The format is a list of lists, each interior list consists + ;; of a tag name and a set of attribute/value pairs: + ;; '(("META" ("NAME" "name") ("CONTENT" "content"))) + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '()) + +(define %html-pubid% + ;; REFENTRY html-pubid + ;; PURP What public ID are you declaring your HTML compliant with? + ;; DESC + ;; The public ID used in output HTML files. If '#f', then no public ID + ;; is produced. If both this and %html-sysid% are '#f', then no + ;; doctype declaration is produced. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (if %html40% + "-//W3C//DTD HTML 4.01 Transitional//EN" + #f)) + +(define %html-sysid% + ;; REFENTRY html-sysid + ;; PURP What system ID are you declaring your HTML compliant with? + ;; DESC + ;; The system ID used in output HTML files. If '#f', then no system ID + ;; is produced. If both this and %html-pubid% are '#f', then no + ;; doctype declaration is produced. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (if %html40% + "http://www.w3.org/TR/html4/loose.dtd" + #f)) + +(define %root-filename% + ;; REFENTRY root-filename + ;; PURP Name for the root HTML document + ;; DESC + ;; The filename of the root HTML document (e.g, "index"). + ;; If '#f', then a default name will be selected based on the element + ;; type of the root element (e.g, book1.htm, set1.htm, c1.htm, etc.). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define html-index + ;; REFENTRY html-index + ;; PURP HTML indexing? + ;; DESC + ;; Turns on HTML indexing. If true, then index data will be written + ;; to the file defined by 'html-index-filename'. This data can be + ;; collated and turned into a DocBook index with bin/collateindex.pl. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define html-index-filename + ;; REFENTRY html-index-filename + ;; PURP Name of HTML index file + ;; DESC + ;; The name of the file to which index data will be written if + ;; 'html-index' is not '#f'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "HTML.index") + +(define html-manifest + ;; REFENTRY html-manifest + ;; PURP Write a manifest? + ;; DESC + ;; If not '#f' then the list of HTML files created by the stylesheet + ;; will be written to the file named by 'html-manifest-filename'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define html-manifest-filename + ;; REFENTRY html-manifest-filename + ;; PURP Name of HTML manifest file + ;; DESC + ;; The name of the file to which a manifest will be written if + ;; 'html-manifest' is not '#f'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "HTML.manifest") + +(define nochunks + ;; REFENTRY nochunks + ;; PURP Suppress chunking of output pages + ;; DESC + ;; If true, the entire source document is formatted as a single HTML + ;; document and output on stdout. + ;; (This option can conveniently be set with '-V nochunks' on the + ;; Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define rootchunk + ;; REFENTRY rootchunk + ;; PURP Make a chunk for the root element when nochunks is used + ;; DESC + ;; If true, a chunk will be created for the root element, even though + ;; nochunks is specified. This option has no effect if nochunks is not + ;; true. + ;; (This option can conveniently be set with '-V rootchunk' on the + ;; Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define use-output-dir + ;; REFENTRY use-output-dir + ;; PURP If an output-dir is specified, should it be used? + ;; DESC + ;; If true, chunks will be written to the 'output-dir' instead of + ;; the current directory. + ;; (This option can conveniently be set with '-V use-output-dir' on the + ;; Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %output-dir% + ;; REFENTRY output-dir + ;; PURP The directory to which HTML files should be written + ;; DESC + ;; The output directory can be set in two ways. An individual document + ;; can specify 'output-dir="directory"' in the dbhtml PI, or the stylesheet + ;; can specify the '%output-dir%'. If both are specified, the PI value + ;; will be used. + ;; + ;; Note: the output directory is ignored if 'use-output-dir' is not '#t'. + ;; (This allows the author to test stylesheets and documents without + ;; accidentally overwriting existing documents.) + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %stylesheet% + ;; REFENTRY stylesheet + ;; PURP Name of the stylesheet to use + ;; DESC + ;; The name of the stylesheet to place in the HTML LINK TAG, or '#f' to + ;; suppress the stylesheet LINK. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %stylesheet-type% + ;; REFENTRY stylesheet-type + ;; PURP The type of the stylesheet to use + ;; DESC + ;; The type of the stylesheet to place in the HTML LINK TAG. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "text/css") + +(define %use-id-as-filename% + ;; REFENTRY use-id-as-filename + ;; PURP Use ID attributes as name for component HTML files? + ;; DESC + ;; If '%use-id-as-filename%' is true, the stylesheet will use the + ;; value of the ID attribute on a component as the base filename instead + ;; of using the auto-generated base. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %citerefentry-link% + ;; REFENTRY citerefentry-link + ;; PURP Generate URL links when cross-referencing RefEntrys? + ;; DESC + ;; If true, a web link will be generated, presumably + ;; to an online man->HTML gateway. The text of the link is + ;; generated by the $generate-citerefentry-link$ function. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE RefEntries and FuncSynopses + +(define %refentry-generate-name% + ;; REFENTRY refentry-generate-name + ;; PURP Output NAME header before 'RefName'(s)? + ;; DESC + ;; If true, a "NAME" section title is output before the list + ;; of 'RefName's. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %refentry-xref-italic% + ;; REFENTRY refentry-xref-italic + ;; PURP Use italic text when cross-referencing RefEntrys? + ;; DESC + ;; If true, italics are used when cross-referencing RefEntrys, either + ;; with XRef or CiteRefEntry. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %refentry-xref-manvolnum% + ;; REFENTRY refentry-xref-manvolnum + ;; PURP Output manvolnum as part of RefEntry cross-reference? + ;; DESC + ;; If true, the manvolnum is used when cross-referencing RefEntrys, either + ;; with XRef or CiteRefEntry. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %funcsynopsis-decoration% + ;; REFENTRY funcsynopsis-decoration + ;; PURP Decorate elements of a FuncSynopsis? + ;; DESC + ;; If true, elements of the FuncSynopsis will be decorated (e.g. bold or + ;; italic). The decoration is controlled by functions that can be redefined + ;; in a customization layer. See 'edbsynop.dsl'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %funcsynopsis-style% + ;; REFENTRY funcsynopsis-style + ;; PURP What style of 'FuncSynopsis' should be generated? + ;; DESC + ;; If '%funcsynopsis-style%' is 'ansi', + ;; ANSI-style function synopses are generated for a 'FuncSynopsis', + ;; otherwise K<![CDATA[&]]>R-style function synopses are generated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'ansi) + +;; REFERENCE HTML Content and CSS + +(define %html40% + ;; REFENTRY html40 + ;; PURP Generate HTML 4.0 + ;; DESC + ;; If '%html40%' is true then the output more closely resembles HTML 4.0. + ;; In particular, the HTML table module includes COL, THEAD, TBODY, and TFOOT + ;; elements, and the output documents have a proper doctype declaration. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %css-decoration% + ;; REFENTRY css-decoration + ;; PURP Enable CSS decoration of elements + ;; DESC + ;; If '%css-decoration%' is turned on then HTML elements produced by the + ;; stylesheet may be decorated with STYLE attributes. For example, the + ;; LI tags produced for list items may include a fragment of CSS in the + ;; STYLE attribute which sets the CSS property "list-style-type". + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %css-liststyle-alist% + ;; REFENTRY css-liststyle-alist + ;; PURP Map DocBook OVERRIDE and MARK attributes to CSS + ;; DESC + ;; If '%css-decoration%' is turned on then the list-style-type property of + ;; list items will be set to reflect the list item style selected in the + ;; DocBook instance. This associative list maps the style type names used + ;; in your instance to the appropriate CSS names. If no mapping exists, + ;; the name from the instance will be used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '(("bullet" "disc") + ("box" "square"))) + +(define %fix-para-wrappers% + ;; REFENTRY fix-para-wrappers + ;; PURP Block element in para hack + ;; DESC + ;; Block elements are allowed in PARA in DocBook, but not in P in + ;; HTML. With '%fix-para-wrappers%' turned on, the stylesheets attempt + ;; to avoid putting block elements in HTML P tags by outputting + ;; additional end/begin P pairs around them. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %spacing-paras% + ;; REFENTRY spacing-paras + ;; PURP Block-element spacing hack + ;; DESC + ;; Should extraneous "P" tags be output to force the correct vertical + ;; spacing around things like tables. This is ugly because different + ;; browsers do different things. Turning this one can also create + ;; illegal HTML. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %emphasis-propagates-style% + ;; REFENTRY emphasis-propagates-style + ;; PURP Support propagating emphasis role attributes to HTML + ;; DESC + ;; Should the role attribute of emphasis be propagated to HTML as + ;; a class attribute value? + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %phrase-propagates-style% + ;; REFENTRY phrase-propagates-style + ;; PURP Support propagating phrase role attributes to HTML + ;; DESC + ;; Should the role attribute of phrase be propagated to HTML as + ;; a class attribute value? + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Object Rules + +(define %example-rules% + ;; REFENTRY example-rules + ;; PURP Specify rules before and after an Example + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Example'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %figure-rules% + ;; REFENTRY figure-rules + ;; PURP Specify rules before and after an Figure + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Figure'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %table-rules% + ;; REFENTRY table-rules + ;; PURP Specify rules before and after an Table + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Table'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %equation-rules% + ;; REFENTRY equation-rules + ;; PURP Specify rules before and after an Equation + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Equation'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalexample-rules% + ;; REFENTRY informalexample-rules + ;; PURP Specify rules before and after an InformalExample + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalExample'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalfigure-rules% + ;; REFENTRY informalfigure-rules + ;; PURP Specify rules before and after an InformalFigure + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalFigure'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informaltable-rules% + ;; REFENTRY informaltable-rules + ;; PURP Specify rules before and after an InformalTable + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalTable'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalequation-rules% + ;; REFENTRY informalequation-rules + ;; PURP Specify rules before and after an InformalEquation + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalEquation'. + ;; /DESC + ;; /REFENTRY + #f) + +;; REFERENCE Miscellaneous + +(define %content-title-end-punct% + ;; REFENTRY content-title-end-punct + ;; PURP List of punctuation chars at the end of a run-in head + ;; DESC + ;; If a run-in head ends in any of these characters, the + ;; '%default-title-end-punct%' is not used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '(#\. #\! #\? #\:)) + +(define %honorific-punctuation% + ;; REFENTRY honorific-punctuation + ;; PURP Punctuation to follow honorifics in names + ;; DESC + ;; The honorific punctuation is placed after the honorific in + ;; a name. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".") + +(define %default-quadding% + ;; REFENTRY default-quadding + ;; PURP The default quadding + ;; DESC + ;; At present, this is only used on paragraphs. It specifies the + ;; value of the ALIGN attribute on the paragraph. This would be better + ;; done with CSS, but not all browsers support it yet and this has been + ;; oft requested functionality. + ;; + ;; A value of #f suppresses the ALIGN attribute altogether. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %default-simplesect-level% + ;; REFENTRY default-simplesect-level + ;; PURP Default section level for 'SimpleSect's. + ;; DESC + ;; If 'SimpleSect's appear inside other section-level + ;; elements, they are rendered at the appropriate section level, but if they + ;; appear in a component-level element, they are rendered at + ;; '%default-simplesect-level%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 4) + +(define %default-title-end-punct% + ;; REFENTRY default-title-end-punct + ;; PURP Default punctuation at the end of a run-in head. + ;; DESC + ;; The punctuation used at the end of a run-in head (e.g. on FORMALPARA). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".") + +(define %footnotes-at-end% + ;; REFENTRY footnotes-at-end + ;; PURP Should footnotes appear at the end of HTML pages? + ;; DESC + ;; If '#t', footnotes will be placed at the end of each HTML page + ;; instead of immediately following the place where they occur. + ;; Note: support for this feature is dependent on the processing + ;; performed by the (footer-navigation) function; if you replace + ;; that function, make sure that you're replacement calls + ;; (make-endnotes). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %link-mailto-url% + ;; REFENTRY link-mailto-url + ;; PURP Mailto URL for LINK REL=made + ;; DESC + ;; If not '#f', the '%link-mailto-url%' address will be used in a + ;; LINK REL=made element in the HTML HEAD. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %show-comments% + ;; REFENTRY show-comments + ;; PURP Display Comment elements? + ;; DESC + ;; If true, comments will be displayed, otherwise they are suppressed. + ;; Comments here refers to the 'Comment' element, which will be renamed + ;; 'Remark' in DocBook V4.0, not SGML/XML comments which are unavailable. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %writing-mode% + ;; REFENTRY writing-mode + ;; PURP The writing mode + ;; DESC + ;; The writing mode is either 'left-to-right', or + ;; 'right-to-left'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'left-to-right) + +(define ($object-titles-after$) + ;; REFENTRY object-titles-after + ;; PURP List of objects who's titles go after the object + ;; DESC + ;; Titles of formal objects (Figures, Equations, Tables, etc.) + ;; in this list will be placed below the object instead of above it. + ;; + ;; This is a list of element names, for example: + ;; '(list (normalize "figure") (normalize "table"))'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '()) + +(define firstterm-bold + ;; REFENTRY firstterm-bold + ;; PURP Make FIRSTTERM elements bold? + ;; DESC + ;; If '#t', FIRSTTERMs will be bold, to distinguish them from + ;; simple GLOSSTERMs. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(declare-initial-value writing-mode %writing-mode%) + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/html/dbpi.dsl b/html/dbpi.dsl new file mode 100644 index 0000000..12ca0f6 --- /dev/null +++ b/html/dbpi.dsl @@ -0,0 +1,62 @@ +;; $Id: dbpi.dsl,v 1.2 2003/04/28 05:18:24 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +(define (pi-value component piname) + ;; Returns the value of the (?piname value) PI (if one exists) + ;; as a child of component, otherwise returns #f + ;; + (let loop ((nl (select-by-class (children component) 'pi))) + (if (node-list-empty? nl) + #f + (let ((pidata (node-property 'system-data (node-list-first nl)))) + (if (and (> (string-length pidata) (string-length piname)) + (equal? piname + (substring pidata 0 (string-length piname)))) + (substring pidata + (+ (string-length piname) 1) + (string-length pidata)) + (loop (node-list-rest nl))))))) + +(define (inherited-pi-value component piname) + (let loop ((value #f) (nd component)) + (if (or value (node-list-empty? nd)) + value + (loop (pi-value nd piname) (parent nd))))) + +(define (dbhtml-findvalue pi-field-list name) + ;; pi-field-list is '(pitarget name1 value1 name2 value2 ...) + (let loop ((slist (cdr pi-field-list))) + (if (or (null? slist) + (not (pair? slist))) + #f + (if (string=? (car slist) name) + (car (cdr slist)) + (loop (cdr (cdr slist))))))) + +(define (dbhtml-value component name) + ;; Returns the value of "name='value'" in the <?dbhtml ...> PI + (let loop ((nl (select-by-class (children component) 'pi))) + (if (node-list-empty? nl) + #f + (let* ((pidata (node-property 'system-data (node-list-first nl))) + (pilist (if (and (> (string-length pidata) 7) + (string=? (substring pidata 0 7) "dbhtml ")) + (parse-starttag-pi pidata) + '())) + (value (if (null? pilist) #f (dbhtml-findvalue pilist name)))) + (if value + value + (loop (node-list-rest nl))))))) + +(define (inherited-dbhtml-value component name) + (let loop ((value #f) (nd component)) + (if (or value (node-list-empty? nd)) + value + (loop (dbhtml-value nd name) (parent nd))))) + +;; EOF dbpi.dsl + + diff --git a/html/dbprocdr.dsl b/html/dbprocdr.dsl new file mode 100644 index 0000000..f853583 --- /dev/null +++ b/html/dbprocdr.dsl @@ -0,0 +1,69 @@ +;; $Id: dbprocdr.dsl,v 1.4 2004/09/23 20:34:58 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================= PROCEDURES ============================= + +(define (PROCSTEP ilvl) + (if (> ilvl 1) 2.0em 1.8em)) + +(element procedure + (let ((titles (select-elements (children (current-node)) (normalize "title"))) + (preamble (node-list-filter-by-not-gi (children (current-node)) + (list (normalize "step")))) + (steps (node-list-filter-by-gi (children (current-node)) + (list (normalize "step")))) + (id (attribute-string (normalize "id")))) + (make element gi: "DIV" + attributes: (list + (list "CLASS" (gi))) + (if (not (node-list-empty? titles)) + (make element gi: "P" + (make element gi: "B" + (make sequence + (if id + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + (with-mode title-mode + (process-node-list titles))))) + (if id + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo))) + (process-node-list preamble) + (make element gi: "OL" + attributes: (list + (list "TYPE" ($proc-hierarch-number-format$ 1))) + (process-node-list steps))))) + +(element (procedure title) (empty-sosofo)) + +(element substeps + (make element gi: "OL" + attributes: (list + (list "CLASS" "SUBSTEPS") + (list "TYPE" ($proc-hierarch-number-format$ + (+ ($proc-step-depth$ (current-node)) 1)))) + (process-children))) + +(element step + (let ((id (attribute-string (normalize "id")))) + (make sequence + (make element gi: "LI" + attributes: (list (list "CLASS" (gi))) + (if id + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (empty-sosofo)) + (empty-sosofo)) + (process-children))))) + + diff --git a/html/dbqanda.dsl b/html/dbqanda.dsl new file mode 100644 index 0000000..633b26e --- /dev/null +++ b/html/dbqanda.dsl @@ -0,0 +1,172 @@ +;; $Id: dbqanda.dsl,v 1.1 2003/03/25 19:53:41 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== QANDASET ============================== + +(define (qanda-defaultlabel) + (normalize "number")) + +(define (qanda-section-level) + ;; FIXME: what if they nest inside each other? + (let* ((enclsect (ancestor-member (current-node) + (list (normalize "section") + (normalize "simplesect") + (normalize "sect5") + (normalize "sect4") + (normalize "sect3") + (normalize "sect2") + (normalize "sect1") + (normalize "refsect3") + (normalize "refsect2") + (normalize "refsect1"))))) + (SECTLEVEL enclsect))) + +(define (qandadiv-section-level) + (let ((depth (length (hierarchical-number-recursive + (normalize "qandadiv"))))) + (+ (qanda-section-level) depth))) + +(element qandaset + (let ((title (select-elements (children (current-node)) + (normalize "title"))) + ;; process title and rest separately so that we can put the TOC + ;; in the rigth place... + (rest (node-list-filter-by-not-gi (children (current-node)) + (list (normalize "title"))))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-node-list title) + (if ($generate-qandaset-toc$) + (process-qanda-toc) + (empty-sosofo)) + (process-node-list rest)))) + +(element (qandaset title) + (let* ((htmlgi (string-append "H" (number->string + (+ (qanda-section-level) 1))))) + (make element gi: htmlgi + attributes: (list (list "CLASS" (gi (current-node)))) + (process-children)))) + +(element qandadiv + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + +(element (qandadiv title) + (let* ((hnr (hierarchical-number-recursive (normalize "qandadiv") + (current-node))) + (number (let loop ((numlist hnr) (number "") (sep "")) + (if (null? numlist) + number + (loop (cdr numlist) + (string-append number + sep + (number->string (car numlist))) + ".")))) + (htmlgi (string-append "H" (number->string + (+ (qandadiv-section-level) 1))))) + (make element gi: htmlgi + (make element gi: "A" + attributes: (list (list "NAME" (element-id + (parent (current-node))))) + (empty-sosofo)) + (literal number ". ") + (process-children)))) + +(element qandaentry + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + +(element question + (let* ((chlist (children (current-node))) + (firstch (node-list-first chlist)) + (restch (node-list-rest chlist))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "P" + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (make element gi: "B" + (literal (question-answer-label (current-node)) " ")) + (process-node-list (children firstch))) + (process-node-list restch)))) + +(element answer + (let* ((inhlabel (inherited-attribute-string (normalize "defaultlabel"))) + (deflabel (if inhlabel inhlabel (qanda-defaultlabel))) + (label (attribute-string (normalize "label"))) + (chlist (children (current-node))) + (firstch (node-list-first chlist)) + (restch (node-list-rest chlist))) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "P" + (make element gi: "B" + (literal (question-answer-label (current-node)) " ")) + (process-node-list (children firstch))) + (process-node-list restch)))) + +;; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +(define (process-qanda-toc #!optional (node (current-node))) + (let* ((divs (node-list-filter-by-gi (children node) + (list (normalize "qandadiv")))) + (entries (node-list-filter-by-gi (children node) + (list (normalize "qandaentry")))) + (inhlabel (inherited-attribute-string (normalize "defaultlabel"))) + (deflabel (if inhlabel inhlabel (qanda-defaultlabel)))) + (make element gi: "DL" + (with-mode qandatoc + (process-node-list divs)) + (with-mode qandatoc + (process-node-list entries))))) + +(mode qandatoc + (element qandadiv + (let ((title (select-elements (children (current-node)) + (normalize "title")))) + (make sequence + (make element gi: "DT" + (process-node-list title)) + (make element gi: "DD" + (process-qanda-toc))))) + + (element (qandadiv title) + (let* ((hnr (hierarchical-number-recursive (normalize "qandadiv") + (current-node))) + (number (let loop ((numlist hnr) (number "") (sep "")) + (if (null? numlist) + number + (loop (cdr numlist) + (string-append number + sep + (number->string (car numlist))) + "."))))) + (make sequence + (literal number ". ") + (make element gi: "A" + attributes: (list (list "HREF" + (href-to (parent (current-node))))) + (process-children))))) + + (element qandaentry + (process-children)) + + (element question + (let* ((chlist (children (current-node))) + (firstch (node-list-first chlist))) + (make element gi: "DT" + (literal (question-answer-label (current-node)) " ") + (make element gi: "A" + attributes: (list (list "HREF" (href-to (current-node)))) + (process-node-list (children firstch)))))) + + (element answer + (empty-sosofo)) +) diff --git a/html/dbrfntry.dsl b/html/dbrfntry.dsl new file mode 100644 index 0000000..4c487eb --- /dev/null +++ b/html/dbrfntry.dsl @@ -0,0 +1,170 @@ +;; $Id: dbrfntry.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; =========================== REFERENCE PAGES ========================== + +;;(element reference ($component$)) + +(element reference + (let* ((refinfo (select-elements (children (current-node)) + (normalize "docinfo"))) + (refintro (select-elements (children (current-node)) + (normalize "partintro"))) + (nl (titlepage-info-elements + (current-node) + refinfo + (if %generate-partintro-on-titlepage% + refintro + (empty-node-list))))) + (html-document + (with-mode head-title-mode + (literal (element-title-string (current-node)))) + (make sequence + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + + (if %generate-reference-titlepage% + (make sequence + (reference-titlepage nl 'recto) + (reference-titlepage nl 'verso)) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if (and (not (node-list-empty? refintro)) + (not %generate-partintro-on-titlepage%)) + ($process-partintro$ refintro) + (empty-sosofo)) + + (if (and %generate-reference-toc% + (not %generate-reference-toc-on-titlepage%)) + (make sequence + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo))))))) + +;; If each RefEntry begins on a new page, this title is going to wind +;; up on its own page, too, so make it a divtitlepage instead. Otherwise, +;; just let it be a component title. +(element (reference title) + (empty-sosofo)) + +(mode refentry-head-title-mode + (default (process-children)) + + (element refnamediv + (let* ((refdesc (select-elements (children (current-node)) + (normalize "refdescriptor"))) + (refname (select-elements (children (current-node)) + (normalize "refname"))) + (title (if (node-list-empty? refdesc) + (node-list-first refname) + (node-list-first refdesc)))) + (process-node-list title))) + + (element refdescriptor + (process-children)) + + (element refname + (process-children)) + + (element graphic (empty-sosofo)) + (element inlinegraphic (empty-sosofo))) + +(define ($refentry-body$) + (let ((id (element-id (current-node)))) + (make sequence + (make element gi: "H1" + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" id)) + (empty-sosofo)) + (element-title-sosofo (current-node)))) + (process-children)))) + +(element refentry + (html-document (with-mode refentry-head-title-mode + (literal (element-title-string (current-node)))) + ($refentry-body$))) + +(element refmeta (empty-sosofo)) + +(element manvolnum + ;; only called for xrefs and citerefentry + (if %refentry-xref-manvolnum% + (sosofo-append + (literal "(") + (process-children) + (literal ")")) + (empty-sosofo))) + +(element refmiscinfo (empty-sosofo)) + +(element refentrytitle ($charseq$)) + +(element refnamediv ($block-container$)) + +(element refname + (make sequence + (if (and %refentry-generate-name% (first-sibling? (current-node))) + ($lowtitlewithsosofo$ 2 (literal (gentext-element-name + (gi (current-node))))) + (empty-sosofo)) + (make sequence + (process-children) + (if (last-sibling? (current-node)) + (empty-sosofo) + (literal (gentext-intra-label-sep (gi (current-node)))))))) + +(element refpurpose + (make sequence + (make entity-ref name: "nbsp") + (literal (dingbat "em-dash")) + (make entity-ref name: "nbsp") + (process-children))) + +(element refdescriptor (empty-sosofo)) ;; TO DO: finish this + +(element refclass + (let ((role (attribute-string (normalize "role")))) + (make element gi: "P" + (make element gi: "B" + (literal + (if role + (string-append role ": ") + ""))) + (process-children-trim)))) + +(element refsynopsisdiv + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (make element gi: "H2" + (element-title-sosofo (current-node))) + (process-children))) + +(element (refsynopsisdiv title) (empty-sosofo)) + +(element refsect1 ($block-container$)) +(element (refsect1 title) ($lowtitle$ 2)) +(element refsect2 ($block-container$)) +(element (refsect2 title) ($lowtitle$ 3)) +(element refsect3 ($block-container$)) +(element (refsect3 title) ($lowtitle$ 4)) + + diff --git a/html/dbsect.dsl b/html/dbsect.dsl new file mode 100644 index 0000000..151fc49 --- /dev/null +++ b/html/dbsect.dsl @@ -0,0 +1,160 @@ +;; $Id: dbsect.dsl,v 1.8 2003/03/25 19:53:41 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== SECTIONS ============================== + +(define (SECTLEVEL #!optional (sect (current-node))) + (section-level-by-node (not nochunks) sect)) + +;; BRIDGEHEAD isn't a proper section, but appears to be a section title +(element bridgehead + (let* ((renderas (attribute-string "renderas")) + ;; the apparent section level + (hlevel + ;; if not real section level, then get the apparent level + ;; from "renderas" + (if renderas + (section-level-by-gi (not nochunks) (normalize renderas)) + ;; else use the real level + (SECTLEVEL))) + (helem + (string-append "H" (number->string hlevel)))) + (make element gi: helem + attributes: '(("CLASS" "BRIDGEHEAD")) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (process-children)))) + +(define ($section-separator$) + (let* (;; There are several situations in which we don't want a + ;; separator here: + ;; 1. This document is being chunked: + (chunks (not nochunks)) + ;; 2. This node is the root element of the document: + (isroot (node-list=? (current-node) (sgml-root-element))) + ;; 3. This node is the first section in the root element + ;; and no other content (except the *info elements and + ;; the title) precedes it. This means that the + ;; titlepage-separator was the last thing we put out. + ;; No one expects two separators in a row, or the Spanish + ;; inquisition. + (s1ofrt (node-list=? (parent (current-node)) (sgml-root-element))) + (precnd (ipreced (current-node))) + (infond (info-element (parent (current-node)))) + (isfirst (or (equal? (gi precnd) (normalize "title")) + (node-list=? precnd infond)))) + (if (or chunks isroot isfirst) + (empty-sosofo) + (make empty-element gi: "HR")))) + +(define ($section$) + (html-document (with-mode head-title-mode + (literal (element-title-string (current-node)))) + ($section-body$))) + +(define ($section-body$) + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($section-separator$) + ($section-title$) + + (if (not (node-list-empty? (select-elements (children (current-node)) + (normalize "refentry")))) + (build-toc (current-node) 1) + (empty-sosofo)) + + (process-children))) + +(define ($section-title$) + (let* ((sect (current-node)) + (info (info-element)) + (subtitles (select-elements (children info) (normalize "subtitle"))) + (renderas (inherited-attribute-string (normalize "renderas") sect)) + ;; the apparent section level + (hlevel + ;; if not real section level, then get the apparent level + ;; from "renderas" + (if renderas + (section-level-by-gi (not nochunks) (normalize renderas)) + ;; else use the real level + (SECTLEVEL))) + (h1elem + (string-append "H" (number->string hlevel))) + (h2elem + (string-append "H" (number->string (+ hlevel 1)))) + (name (element-id)) + (isep (gentext-intra-label-sep (gi sect))) + (nsep (gentext-label-title-sep (gi sect)))) + (make sequence + (make element gi: h1elem + attributes: (list (list "CLASS" (gi sect))) + (make element gi: "A" + attributes: (list (list "NAME" name)) + (make sequence + (if (string=? (element-label (current-node)) "") + (empty-sosofo) + (literal (element-label (current-node)) nsep)) + (element-title-sosofo sect)))) + (if (node-list-empty? subtitles) + (empty-sosofo) + (with-mode subtitle-mode + (make element gi: h2elem + (process-node-list subtitles)))) + ($proc-section-info$ info)))) + +(define ($proc-section-info$ info) + (cond ((equal? (gi) (normalize "sect1")) + ($sect1-info$ info)) + ((equal? (gi) (normalize "sect2")) + ($sect2-info$ info)) + ((equal? (gi) (normalize "sect3")) + ($sect3-info$ info)) + ((equal? (gi) (normalize "sect4")) + ($sect4-info$ info)) + ((equal? (gi) (normalize "sect5")) + ($sect5-info$ info)) + ((equal? (gi) (normalize "section")) + ($section-info$ info)) + ((equal? (gi) (normalize "refsect1")) + ($refsect1-info$ info)) + ((equal? (gi) (normalize "refsect2")) + ($refsect2-info$ info)) + ((equal? (gi) (normalize "refsect3")) + ($refsect3-info$ info)) + (else (empty-sosofo)))) + +(define ($sect1-info$ info) (empty-sosofo)) +(define ($sect2-info$ info) (empty-sosofo)) +(define ($sect3-info$ info) (empty-sosofo)) +(define ($sect4-info$ info) (empty-sosofo)) +(define ($sect5-info$ info) (empty-sosofo)) +(define ($section-info$ info) (empty-sosofo)) +(define ($refsect1-info$ info) (empty-sosofo)) +(define ($refsect2-info$ info) (empty-sosofo)) +(define ($refsect3-info$ info) (empty-sosofo)) + +(element section ($section$)) +(element (section title) (empty-sosofo)) + +(element sect1 ($section$)) +(element (sect1 title) (empty-sosofo)) + +(element sect2 ($section$)) +(element (sect2 title) (empty-sosofo)) + +(element sect3 ($section$)) +(element (sect3 title) (empty-sosofo)) + +(element sect4 ($section$)) +(element (sect4 title) (empty-sosofo)) + +(element sect5 ($section$)) +(element (sect5 title) (empty-sosofo)) + +(element simplesect ($section$)) +(element (simplesect title) (empty-sosofo)) + diff --git a/html/dbsynop.dsl b/html/dbsynop.dsl new file mode 100644 index 0000000..f4f7a7e --- /dev/null +++ b/html/dbsynop.dsl @@ -0,0 +1,201 @@ +;; $Id: dbsynop.dsl,v 1.3 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= SYNTAX DEFINITIONS ========================= + +(element synopsis ($verbatim-display$ %indent-synopsis-lines% + %number-synopsis-lines%)) +(element cmdsynopsis ($paragraph$)) + +;; Support for ARG provided by James Bostock, augmented by norm +;; + +(element (cmdsynopsis command) + (make sequence + (if (first-sibling? (current-node)) + (empty-sosofo) + (make empty-element gi: "BR")) + (next-match) + (literal " "))) + +(element group + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep"))) + (sepchar (if (inherited-attribute-string (normalize "sepchar")) + (inherited-attribute-string (normalize "sepchar")) + " "))) + (make sequence + (if (equal? (absolute-child-number (current-node)) 1) + (empty-sosofo) + (literal sepchar)) + (cond + ((equal? choice (normalize "plain")) + (literal %arg-choice-plain-open-str%)) + ((equal? choice (normalize "req")) + (literal %arg-choice-req-open-str%)) + ((equal? choice (normalize "opt")) + (literal %arg-choice-opt-open-str%)) + (else (literal %arg-choice-def-open-str%))) + (process-children) + (cond + ((equal? choice (normalize "plain")) + (literal %arg-choice-plain-close-str%)) + ((equal? choice (normalize "req")) + (literal %arg-choice-req-close-str%)) + ((equal? choice (normalize "opt")) + (literal %arg-choice-opt-close-str%)) + (else (literal %arg-choice-def-close-str%))) + (cond + ((equal? rep (normalize "repeat")) + (literal %arg-rep-repeat-str%)) + ((equal? rep (normalize "norepeat")) + (literal %arg-rep-norepeat-str%)) + (else (literal %arg-rep-def-str%)))))) + +(element arg + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep"))) + (sepchar (if (inherited-attribute-string (normalize "sepchar")) + (inherited-attribute-string (normalize "sepchar")) + " "))) + (make sequence + (if (equal? (absolute-child-number (current-node)) 1) + (empty-sosofo) + (literal sepchar)) + (cond + ((equal? choice (normalize "plain")) + (literal %arg-choice-plain-open-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%)) + (else (literal %arg-choice-def-open-str%))) + (process-children) + (cond + ((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%)) + ((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%)) + (else (literal %arg-rep-def-str%))) + (cond + ((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%)) + (else (literal %arg-choice-def-close-str%)))))) + + +(element (group arg) + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep")))) + (make sequence + (if (not (first-sibling? (current-node))) + (literal %arg-or-sep%) + (empty-sosofo)) + (process-children)))) + +(element sbr + (make empty-element gi: "BR")) + +;; ---------------------------------------------------------------------- +;; Syntax highlighting... + +(define (funcsynopsis-function #!optional (sosofo (process-children))) + (make element gi: "B" + attributes: '(("CLASS" "FSFUNC")) + sosofo)) + +(define (paramdef-parameter #!optional (sosofo (process-children))) + (make element gi: "VAR" + attributes: '(("CLASS" "PDPARAM")) + sosofo)) + +;; ---------------------------------------------------------------------- + +(element synopfragmentref + (let* ((target (element-with-id (attribute-string (normalize "linkend")))) + (snum (child-number target))) + (make element gi: "I" + (make element gi: "A" + attributes: (list + (list "HREF" (href-to target))) + (literal "(" (number->string snum) ")")) + (process-children)))) + +(element synopfragment + (let ((id (element-id (current-node))) + (snum (child-number (current-node)))) + (make element gi: "P" + (make element gi: "A" + attributes: (list + (list "NAME" id)) + (literal "(" (number->string snum) ")")) + (make entity-ref name: "nbsp") + (process-children)))) + +(element funcsynopsis ($informal-object$)) + +(element funcsynopsisinfo ($verbatim-display$ %indent-funcsynopsisinfo-lines% + %number-funcsynopsisinfo-lines%)) + +(element funcprototype + (let ((paramdefs (select-elements (children (current-node)) (normalize "paramdef")))) + (make sequence + (make element gi: "P" + (make element gi: "CODE" + (process-children) + (if (equal? %funcsynopsis-style% 'kr) + (with-mode kr-funcsynopsis-mode + (process-node-list paramdefs)) + (empty-sosofo))))))) + +(element funcdef + (make element gi: "CODE" + attributes: '(("CLASS" "FUNCDEF")) + (process-children))) + +(element (funcdef function) + (if %funcsynopsis-decoration% + (funcsynopsis-function) + (process-children))) + +(element void + (if (equal? %funcsynopsis-style% 'ansi) + (literal "(void);") + (literal "();"))) + +(element varargs (literal "(...);")) + +(element paramdef + (let ((param (select-elements (children (current-node)) (normalize "parameter")))) + (make sequence + (if (equal? (child-number (current-node)) 1) + (literal "(") + (empty-sosofo)) + (if (equal? %funcsynopsis-style% 'ansi) + (process-children) + (process-node-list param)) + (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) + (literal ", ") + (literal ");"))))) + +(element (paramdef parameter) + (make sequence + (if %funcsynopsis-decoration% + (paramdef-parameter) + (process-children)) + (if (equal? (gi (ifollow (current-node))) (normalize "parameter")) + (literal ", ") + (empty-sosofo)))) + +(element funcparams + (make sequence + (literal "(") + (process-children) + (literal ")"))) + +(mode kr-funcsynopsis-mode + (element paramdef + (make sequence + (make empty-element gi: "BR") + (process-children) + (literal ";")))) + diff --git a/html/dbtable.dsl b/html/dbtable.dsl new file mode 100644 index 0000000..91387b0 --- /dev/null +++ b/html/dbtable.dsl @@ -0,0 +1,494 @@ +;; $Id: dbtable.dsl,v 1.6 2003/02/11 01:20:04 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; +;; Table support completely reimplemented by norm 15/16 Nov 1997. +;; Adapted from print support. +;; +;; ====================================================================== +;; +;; This code is intended to implement the SGML Open Exchange Table Model +;; (http://www.sgmlopen.org/sgml/docs/techpubs.htm) as far as is possible +;; in HTML. There are a few areas where this code probably fails to +;; perfectly implement the model: +;; +;; - Mixed column width units (4*+2pi) are not supported. +;; - The behavior that results from mixing relative units with +;; absolute units has not been carefully considered. +;; +;; ====================================================================== +;; +;; My goal in reimplementing the table model was to provide correct +;; formatting in tables that use MOREROWS. The difficulty is that +;; correct formatting depends on calculating the column into which +;; an ENTRY will fall. +;; +;; This is a non-trivial problem because MOREROWS can hang down from +;; preceding rows and ENTRYs may specify starting columns (skipping +;; preceding ones). +;; +;; A simple, elegant recursive algorithm exists. Unfortunately it +;; requires calculating the column number of every preceding cell +;; in the entire table. Without memoization, performance is unacceptable +;; even in relatively small tables (5x5, for example). +;; +;; In order to avoid recursion, the algorithm used below is one that +;; works forward from the beginning of the table and "passes along" +;; the relevant information (column number of the preceding cell and +;; overhang from the MOREROWS in preceding rows). +;; +;; Unfortunately, this means that element construction rules +;; can't always be used to fire the appropriate rule. Instead, +;; each TGROUP has to process each THEAD/BODY/FOOT explicitly. +;; And each of those must process each ROW explicitly, then each +;; ENTRY/ENTRYTBL explicitly. +;; +;; ---------------------------------------------------------------------- +;; +;; I attempted to simplify this code by relying on inheritence from +;; table-column flow objects, but that wasn't entirely successful. +;; Horizontally spanning cells didn't seem to inherit from table-column +;; flow objects that didn't specify equal spanning. There seemed to +;; be other problems as well, but they could have been caused by coding +;; errors on my part. +;; +;; Anyway, by the time I understood how I could use table-column +;; flow objects for inheritence, I'd already implemented all the +;; machinery below to "work it out by hand". +;; +;; ====================================================================== +;; NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +;; ---------------------------------------------------------------------- +;; A fairly large chunk of this code is in dbcommon.dsl! +;; ====================================================================== + +;; Default for COLSEP/ROWSEP if unspecified +(define %cals-rule-default% "0") + +;; Default for VALIGN if unspecified +(define %cals-valign-default% "TOP") + +;; ====================================================================== +;; Convert colwidth units into table-unit measurements + +(define (colwidth-length lenstr) + (if (string? lenstr) + (let ((number (length-string-number-part lenstr)) + (units (length-string-unit-part lenstr))) + (if (or (string=? units "*") (string=? number "")) + ;; relative units or no number, give up + 0pt + (if (string=? units "") + ;; no units, default to pixels + (* (string->number number) 1px) + (let* ((unum (string->number number)) + (uname (case-fold-down units))) + (case uname + (("mm") (* unum 1mm)) + (("cm") (* unum 1cm)) + (("in") (* unum 1in)) + (("pi") (* unum 1pi)) + (("pt") (* unum 1pt)) + (("px") (* unum 1px)) + ;; unrecognized units; use pixels + (else (* unum 1px))))))) + ;; lenstr is not a string...probably #f + 0pt)) + +(define (cals-relative-colwidth? colwidth) + (if (string? colwidth) + (let ((strlen (string-length colwidth))) + (if (string=? colwidth "*") + #t + (string=? (substring colwidth (- strlen 1) strlen) "*"))) + #f)) + +(define (cals-relative-colwidth colwidth) + (let ((number (length-string-number-part colwidth)) + (units (length-string-unit-part colwidth))) + (if (string=? units "*") + (if (string=? number "") + 1 + (string->number number)) + 0))) + +(define (cell-relative-colwidth cell relative) + ;; given a cell and a relative width, work out the HTML cell WIDTH attribute + (let* ((tgroup (find-tgroup cell)) + (pgwide? (equal? (attribute-string (normalize "pgwide") (parent tgroup)) "1"))) + (if (and (not pgwide?) %html40%) + ;; html4 allows widths like "1*", we don't wanna use 50% if pgwide is not on + (string-append (number->string relative) "*") + (let loop ((colspecs (select-elements (children tgroup) + (normalize "colspec"))) + (reltotal 0)) + (if (not (node-list-empty? colspecs)) + (loop (node-list-rest colspecs) + (+ reltotal (cals-relative-colwidth + (colspec-colwidth + (node-list-first colspecs))))) + (if (equal? reltotal 0) + "" + (string-append (number->string (round (* (/ relative reltotal) 100))) "%"))))))) + +(define (cell-colwidth cell colnum) + ;; return the width of a cell, or "" if not specified + (let* ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl")))) + (colspec (find-colspec-by-number colnum)) + (colwidth (colspec-colwidth colspec)) + (width (round (/ (colwidth-length colwidth) 1px)))) + (if (node-list-empty? colspec) + "" + (if (and (equal? (hspan entry) 1) colwidth) + (if (cals-relative-colwidth? colwidth) + (cell-relative-colwidth cell (cals-relative-colwidth colwidth)) + (number->string width)) + "")))) + +;; ====================================================================== + +(define (cell-align cell colnum) + ;; horizontal alignment for the cell, or "" if not set; efficiency + ;; here is important + (let* ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl")))) + (spanname (attribute-string (normalize "spanname") entry))) + (if (attribute-string (normalize "align") entry) + (attribute-string (normalize "align") entry) + (if (and spanname (spanspec-align (find-spanspec spanname))) + (spanspec-align (find-spanspec spanname)) + (if %html40% + ;; no need to set align explictly, let COL do the work + "" + (if (colspec-align (find-colspec-by-number colnum)) + (colspec-align (find-colspec-by-number colnum)) + (let ((tgroup (find-tgroup entry))) + (if (tgroup-align tgroup) + (tgroup-align tgroup) + (normalize "left"))))))))) + +(define (cell-valign cell colnum) + ;; vertical alignment for the cell, or "" if not set; efficiency + ;; here is important + (let ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl"))))) + (if (attribute-string (normalize "valign") entry) + (attribute-string (normalize "valign") entry) + ""))) + +(define ($table-frame$ table) + ;; determine the proper setting for the html 4 FRAME attribute + (let* ((wrapper (parent (current-node))) + (frameattr (attribute-string (normalize "frame") wrapper))) + (if (and %html40% frameattr) + (cond + ((equal? frameattr (normalize "all")) + (list (list "FRAME" "border"))) + ((equal? frameattr (normalize "bottom")) + (list (list "FRAME" "below"))) + ((equal? frameattr (normalize "none")) + (list (list "FRAME" "void"))) + ((equal? frameattr (normalize "sides")) + (list (list "FRAME" "vsides"))) + ((equal? frameattr (normalize "top")) + (list (list "FRAME" "above"))) + ((equal? frameattr (normalize "topbot")) + (list (list "FRAME" "hsides"))) + (else '())) + '()))) + +(define ($table-border$ table) + ;; determine the proper setting for the html 4 BORDER attribute (cell frames) + ;; FIXME: rules can be overriden by COLSPEC elements, use "group" value? + (let* ((wrapper (parent (current-node))) + (rowsepattr (or (attribute-string (normalize "rowsep") (current-node)) + (attribute-string (normalize "rowsep") wrapper))) + (colsepattr (or (attribute-string (normalize "colsep") (current-node)) + (attribute-string (normalize "colsep") wrapper)))) + (if (and %html40% (or rowsepattr colsepattr)) + ;; remember there are actually 3 possible values: 0, 1, unset + (cond + ((and (equal? colsepattr "1") (equal? rowsepattr "1")) + (list (list "RULES" "all"))) + ((and (equal? colsepattr "0") (equal? rowsepattr "0")) + (list (list "RULES" "none"))) + ((and (equal? colsepattr "1") (equal? rowsepattr "0")) + (list (list "RULES" "cols"))) + ((and (equal? colsepattr "0") (equal? rowsepattr "1")) + (list (list "RULES" "rows"))) + (else '())) ; if rowsep set but not colsep, ignore it + '()))) + +;; ====================================================================== +;; Element rules + +(element tgroup + (let* ((wrapper (parent (current-node))) + (frameattr (attribute-string (normalize "frame") wrapper)) + (pgwide (attribute-string (normalize "pgwide") wrapper))) + (make element gi: "TABLE" + attributes: (append + (if (equal? frameattr (normalize "none")) + '(("BORDER" "0")) + '(("BORDER" "1"))) + ($table-frame$ (current-node)) + ($table-border$ (current-node)) + (if (equal? pgwide "1") + (list (list "WIDTH" ($table-width$))) + '()) + (if %cals-table-class% + (list (list "CLASS" %cals-table-class%)) + '())) + ($process-colspecs$ (current-node)) + (process-node-list (select-elements (children (current-node)) (normalize "thead"))) + (process-node-list (select-elements (children (current-node)) (normalize "tbody"))) + (process-node-list (select-elements (children (current-node)) (normalize "tfoot"))) + (make-table-endnotes)))) + +(element entrytbl ;; sortof like a tgroup... + (let* ((wrapper (parent (parent (parent (parent (current-node)))))) + ;; table tgroup tbody row + (frameattr (attribute-string (normalize "frame") wrapper)) + (tgrstyle (attribute-string (normalize "tgroupstyle")))) + (make element gi: "TABLE" + attributes: (append + (if (and (or (equal? frameattr (normalize "none")) + (equal? tgrstyle (normalize "noborder"))) + (not (equal? tgrstyle (normalize "border")))) + '(("BORDER" "0")) + '(("BORDER" "1"))) + ($table-frame$ (current-node)) + ($table-border$ (current-node)) + (if %cals-table-class% + (list (list "CLASS" %cals-table-class%)) + '())) + ($process-colspecs$ (current-node)) + (process-node-list (select-elements (children (current-node)) (normalize "thead"))) + (process-node-list (select-elements (children (current-node)) (normalize "tbody")))))) + +(element colspec + ;; now handled by $process-colspecs$ + (empty-sosofo)) + +(element spanspec + (empty-sosofo)) + +(element thead + ;; note that colspec/spanspec in thead isn't supported by HTML table model + (if %html40% + (make element gi: "THEAD" + ($process-table-body$ (current-node))) + ($process-table-body$ (current-node)))) + +(element tfoot + ;; note that colspec/spanspec in tfoot isn't supported by HTML table model + (if %html40% + (make element gi: "TFOOT" + ($process-table-body$ (current-node))) + ($process-table-body$ (current-node)))) + +(element tbody + (if %html40% + (make element gi: "TBODY" + attributes: (if (attribute-string (normalize "valign")) + (list (list "VALIGN" (attribute-string (normalize "valign")))) + '()) + ($process-table-body$ (current-node))) + ($process-table-body$ (current-node)))) + +(element row + (empty-sosofo)) ;; this should never happen, they're processed explicitly + +(element entry + (empty-sosofo)) ;; this should never happen, they're processed explicitly + +;; ====================================================================== +;; Functions that handle processing of table bodies, rows, and cells + +(define ($process-colspecs$ tgroup) + ;; given tgroup or entrytbl, convert the colspecs to HTML4 COL elements + (if (not %html40%) + (empty-sosofo) + (let ((cols (string->number (attribute-string (normalize "cols"))))) + (let loop ((colnum 1)) + (if (> colnum cols) + (empty-sosofo) + (make sequence + (let* ((colspec (find-colspec-by-number colnum)) + (colwidth (colspec-colwidth colspec))) + (if (node-list-empty? colspec) + (make empty-element gi: "COL") + (make empty-element gi: "COL" + attributes: + (append + (if colwidth + (list (list "WIDTH" + (if (cals-relative-colwidth? colwidth) + (cell-relative-colwidth colspec (cals-relative-colwidth colwidth)) + (number->string (round (/ (colwidth-length colwidth) 1px)))))) + '()) + (if (attribute-string (normalize "align") colspec) + (list (list "ALIGN" (attribute-string (normalize "align") colspec))) + '()) + (if (attribute-string (normalize "char") colspec) + (list (list "CHAR" (attribute-string (normalize "char") colspec))) + '()) + (if (attribute-string (normalize "charoff") colspec) + (list (list "CHAROFF" (attribute-string (normalize "charoff") colspec))) + '()) + (if (attribute-string (normalize "colname") colspec) + (list (list "TITLE" (attribute-string (normalize "colname") colspec))) + '()))))) + (loop (+ colnum 1)))))))) + +(define ($process-table-body$ body) + (let* ((tgroup (find-tgroup body)) + (cols (string->number (attribute-string (normalize "cols") + tgroup)))) + (let loop ((rows (select-elements (children body) (normalize "row"))) + (overhang (constant-list 0 cols))) + (if (node-list-empty? rows) + (empty-sosofo) + (make sequence + ($process-row$ (node-list-first rows) overhang) + (loop (node-list-rest rows) + (update-overhang (node-list-first rows) overhang))))))) + +(define ($process-row$ row overhang) + ;; FIXME: rowsep + (let* ((tgroup (find-tgroup row)) + (rowcells (node-list-filter-out-pis (children row))) + (rowalign (attribute-string (normalize "valign") row)) + (maxcol (string->number (attribute-string (normalize "cols") tgroup))) + (lastentry (node-list-last rowcells))) + (make element gi: "TR" + attributes: (append + (if rowalign + (list (list "VALIGN" rowalign)) + '()) + '()) + (let loop ((cells rowcells) + (prevcell (empty-node-list))) + (if (node-list-empty? cells) + (empty-sosofo) + (make sequence + ($process-cell$ (node-list-first cells) + prevcell overhang) + (loop (node-list-rest cells) + (node-list-first cells))))) + + ;; add any necessary empty cells to the end of the row + (let loop ((colnum (overhang-skip overhang + (+ (cell-column-number + lastentry overhang) + (hspan lastentry))))) + (if (> colnum maxcol) + (empty-sosofo) + (make sequence + (make element gi: "TD" + (make entity-ref name: "nbsp")) + (loop (overhang-skip overhang (+ colnum 1))))))))) + +(define (empty-cell? entry) + ;; Return #t if and only if entry is empty (or contains only PIs) + (let loop ((nl (children entry))) + (if (node-list-empty? nl) + #t + (let* ((node (node-list-first nl)) + (nodeclass (node-property 'class-name node)) + (nodechar (if (equal? nodeclass 'data-char) + (node-property 'char node) + #f)) + (whitespace? (and (equal? nodeclass 'data-char) + (or (equal? nodechar #\space) + (equal? (data node) "	") + (equal? (data node) " ") + (equal? (data node) " "))))) + (if (not (or (equal? (node-property 'class-name node) 'pi) + whitespace?)) + #f + (loop (node-list-rest nl))))))) + +(define ($process-cell$ entry preventry overhang) + (let* ((colnum (cell-column-number entry overhang)) + (lastcellcolumn (if (node-list-empty? preventry) + 0 + (- (+ (cell-column-number preventry overhang) + (hspan preventry)) + 1))) + (lastcolnum (if (> lastcellcolumn 0) + (overhang-skip overhang lastcellcolumn) + 0)) + (htmlgi (if (have-ancestor? (normalize "tbody") entry) + "TD" + "TH"))) + (make sequence + (if (node-list-empty? (preced entry)) + (if (attribute-string (normalize "id") (parent entry)) + (make element gi: "A" + attributes: (list + (list + "NAME" + (attribute-string (normalize "id") + (parent entry)))) + (empty-sosofo)) + (empty-sosofo)) + (empty-sosofo)) + + (if (attribute-string (normalize "id") entry) + (make element gi: "A" + attributes: (list + (list + "NAME" + (attribute-string (normalize "id") entry))) + (empty-sosofo)) + (empty-sosofo)) + + ;; This is a little bit complicated. We want to output empty cells + ;; to skip over missing data. We start count at the column number + ;; arrived at by adding 1 to the column number of the previous entry + ;; and skipping over any MOREROWS overhanging entrys. Then for each + ;; iteration, we add 1 and skip over any overhanging entrys. + (let loop ((count (overhang-skip overhang (+ lastcolnum 1)))) + (if (>= count colnum) + (empty-sosofo) + (make sequence + (make element gi: htmlgi + (make entity-ref name: "nbsp") +;; (literal (number->string lastcellcolumn) ", ") +;; (literal (number->string lastcolnum) ", ") +;; (literal (number->string (hspan preventry)) ", ") +;; (literal (number->string colnum ", ")) +;; ($debug-pr-overhang$ overhang) + ) + (loop (overhang-skip overhang (+ count 1)))))) + + ;; Now we've output empty cells for any missing entries, so we + ;; are ready to output the cell for this entry... + (make element gi: htmlgi + attributes: (append + (if (> (hspan entry) 1) + (list (list "COLSPAN" (number->string (hspan entry)))) + '()) + (if (> (vspan entry) 1) + (list (list "ROWSPAN" (number->string (vspan entry)))) + '()) + (if (and (not %html40%) (not (equal? (cell-colwidth entry colnum) ""))) + (list (list "WIDTH" (cell-colwidth entry colnum))) + '()) + (if (not (equal? (cell-align entry colnum) "")) + (list (list "ALIGN" (cell-align entry colnum))) + '()) + (if (not (equal? (cell-valign entry colnum) "")) + (list (list "VALIGN" (cell-valign entry colnum))) + '())) + (if (empty-cell? entry) + (make entity-ref name: "nbsp") + (if (equal? (gi entry) (normalize "entrytbl")) + (process-node-list entry) + (process-node-list (children entry)))))))) + +;; EOF dbtable.dsl + diff --git a/html/dbtitle.dsl b/html/dbtitle.dsl new file mode 100644 index 0000000..b56225c --- /dev/null +++ b/html/dbtitle.dsl @@ -0,0 +1,67 @@ +;; $Id: dbtitle.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; So we can pass different sosofo's to this routine and get identical +;; treatment (see REFNAME in dbrfntry.dsl) +;; +(define ($lowtitlewithsosofo$ tlevel sosofo) + (let ((tgi (cond + ((equal? tlevel 1) "H1") + ((equal? tlevel 2) "H2") + ((equal? tlevel 3) "H3") + ((equal? tlevel 4) "H4") + ((equal? tlevel 5) "H5") + (else "P")))) + (if (< tlevel 6) + (make element gi: tgi + sosofo) + (make element gi: "P" + (make element gi: "B" + sosofo))))) + +(define ($lowtitle$ tlevel) + ($lowtitlewithsosofo$ tlevel (process-children))) + +(define ($runinhead$) + (let* ((title (data (current-node))) + (titlelen (string-length title)) + (lastchar (if (> titlelen 0) + (string-ref title (- titlelen 1)) + ".")) + (punct (if (or (= titlelen 0) + (member lastchar %content-title-end-punct%)) + "" + %default-title-end-punct%))) + (make element gi: "B" + (process-children) + (literal punct " ")))) + +(element title + (make element gi: "P" + (make element gi: "B" + (process-children-trim)))) + +(element titleabbrev (empty-sosofo)) + +(mode title-mode + (element title + (process-children))) + +(mode subtitle-mode + (element subtitle + (make sequence + (literal (if (first-sibling?) + "" + "; ")) + (process-children)))) + +(mode head-title-mode + ;; TITLE in an HTML HEAD + (default + (process-children)) + + (element graphic (empty-sosofo)) + (element inlinegraphic (empty-sosofo))) diff --git a/html/dbttlpg.dsl b/html/dbttlpg.dsl new file mode 100644 index 0000000..ebeb5fa --- /dev/null +++ b/html/dbttlpg.dsl @@ -0,0 +1,4588 @@ +;; $Id: dbttlpg.dsl,v 1.10 2004/10/10 11:55:10 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define (have-sibling? sibling-gi #!optional (node (current-node))) + (let loop ((nl (children (parent node)))) + (if (node-list-empty? nl) + #f + (if (equal? (gi (node-list-first nl)) sibling-gi) + #t + (loop (node-list-rest nl)))))) + +(define (titlepage-content? elements gis) + (let giloop ((gilist gis)) + (if (null? gilist) + #f + (if (not (node-list-empty? (node-list-filter-by-gi + elements + (list (car gilist))))) + #t + (giloop (cdr gilist)))))) + +(define (titlepage-gi-list-by-elements elements nodelist) + ;; Elements is a list of GIs. Nodelist is a list of nodes. + ;; This function returns all of the nodes in nodelist that + ;; are in elements in the order they occur in elements. + (let loop ((gilist elements) (rlist (empty-node-list))) + (if (null? gilist) + rlist + (loop (cdr gilist) + (node-list rlist (node-list-filter-by-gi + nodelist (list (car gilist)))))))) + +(define (titlepage-gi-list-by-nodelist elements nodelist) + ;; Elements is a list of GIs. Nodelist is a list of nodes. + ;; This function returns all of the nodes in nodelist that + ;; are in elements in the order they occur in nodelist. + (let loop ((nl nodelist) (rlist (empty-node-list))) + (if (node-list-empty? nl) + rlist + (if (member (gi (node-list-first nl)) elements) + (loop (node-list-rest nl) + (node-list rlist (node-list-first nl))) + (loop (node-list-rest nl) rlist))))) + +(define (titlepage-nodelist elements nodelist) + ;; We expand BOOKBIBLIO, BIBLIOMISC, and BIBLIOSET in the element + ;; list because that level of wrapper usually isn't significant. + (let ((exp-nodelist (expand-children nodelist (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))))) + (if %titlepage-in-info-order% + (titlepage-gi-list-by-nodelist elements exp-nodelist) + (titlepage-gi-list-by-elements elements exp-nodelist)))) + +(define (titlepage-recto-legalnotice #!optional (node (current-node))) + (let ((notices (select-elements + (children (parent node)) + (normalize "legalnotice"))) + (copyrights (select-elements + (children (parent node)) + (normalize "copyright")))) + (if (and %generate-legalnotice-link% + (not nochunks)) + ;; Divert the contents of legal to another file. It will be xref'd + ;; from the Copyright. + (if (first-sibling? node) + (make sequence + (make entity + system-id: (html-entity-file + ($legalnotice-link-file$ node)) + (html-doctype) + (make element gi: "HTML" + (make element gi: "HEAD" + ($standard-html-header$)) + (make element gi: "BODY" + attributes: %body-attr% + (header-navigation node) + ($semiformal-object$) + (with-mode legal-notice-link-mode + (process-node-list (node-list-rest notices))) + (footer-navigation node)))) + (if (node-list-empty? copyrights) + (make element gi: "A" + attributes: (list + (list "HREF" + ($legalnotice-link-file$ + node))) + (literal (gentext-element-name node))) + (empty-sosofo))) + (empty-sosofo)) + ($semiformal-object$)))) + +(define (titlepage-recto-copyright #!optional (node (current-node))) + (let ((years (select-elements (descendants node) + (normalize "year"))) + (holders (select-elements (descendants node) + (normalize "holder"))) + (legalnotice (select-elements (children (parent node)) + (normalize "legalnotice")))) + (make element gi: "P" + attributes: (list + (list "CLASS" (gi))) + (if (and %generate-legalnotice-link% + (not nochunks) + (not (node-list-empty? legalnotice))) + (make sequence + (make element gi: "A" + attributes: (list + (list "HREF" + ($legalnotice-link-file$ + (node-list-first legalnotice)))) + (literal (gentext-element-name (gi node)))) + (literal " ") + (dingbat-sosofo "copyright") + (literal " ") + (process-node-list years) + (literal " ") + (process-node-list holders)) + (make sequence + (literal (gentext-element-name (gi node))) + (literal " ") + (dingbat-sosofo "copyright") + (literal " ") + (process-node-list years) + (literal " ") + (process-node-list holders)))))) + +;; == Title pages for SETs ============================================== + +(define (set-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "graphic") + (normalize "mediaobject") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor") + (normalize "copyright") + (normalize "legalnotice"))) + +(define (set-titlepage-verso-elements) '()) + +(define (set-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (set-titlepage-recto-elements) + (set-titlepage-verso-elements)))) + +(define (set-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (set-titlepage-recto-elements) + (set-titlepage-verso-elements)) + elements))) + (if (set-titlepage-content? elements side) + (make element gi: "DIV" + attributes: '(("CLASS" "TITLEPAGE")) + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (set-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (set-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (set-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (set-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (set-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (set-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (set-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (set-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (set-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (set-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (set-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (set-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (set-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (set-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (set-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (set-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (set-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (set-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (set-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (set-titlepage-recto-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (set-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (set-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (set-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (set-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (set-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (set-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (set-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (set-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (set-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (set-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (set-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (set-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (set-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (set-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (set-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (set-titlepage-recto-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (set-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (set-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (set-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (set-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (set-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (set-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (set-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (set-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (set-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (set-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (set-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (set-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (set-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (set-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (set-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (set-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (set-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (set-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (set-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (set-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (set-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (set-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (set-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (set-titlepage-volumenum (node-list-first nl) side)) + (else + (set-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + (set-titlepage-separator side)) + (empty-sosofo)))) + +(define (set-titlepage-separator side) + (empty-sosofo)) + +(define (set-titlepage-before node side) + (empty-sosofo)) + +(define (set-titlepage-default node side) + (let ((foo (debug (string-append "No set-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (set-titlepage-element node side) + (if (equal? side 'recto) + (with-mode set-titlepage-recto-mode + (process-node-list node)) + (with-mode set-titlepage-verso-mode + (process-node-list node)))) + +(define (set-titlepage-abbrev node side) + (set-titlepage-element node side)) +(define (set-titlepage-abstract node side) + (set-titlepage-element node side)) +(define (set-titlepage-address node side) + (set-titlepage-element node side)) +(define (set-titlepage-affiliation node side) + (set-titlepage-element node side)) +(define (set-titlepage-artpagenums node side) + (set-titlepage-element node side)) +(define (set-titlepage-author node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorblurb node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorgroup node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorinitials node side) + (set-titlepage-element node side)) +(define (set-titlepage-bibliomisc node side) + (set-titlepage-element node side)) +(define (set-titlepage-biblioset node side) + (set-titlepage node side)) +(define (set-titlepage-bookbiblio node side) + (set-titlepage node side)) +(define (set-titlepage-citetitle node side) + (set-titlepage-element node side)) +(define (set-titlepage-collab node side) + (set-titlepage-element node side)) +(define (set-titlepage-confgroup node side) + (set-titlepage-element node side)) +(define (set-titlepage-contractnum node side) + (set-titlepage-element node side)) +(define (set-titlepage-contractsponsor node side) + (set-titlepage-element node side)) +(define (set-titlepage-contrib node side) + (set-titlepage-element node side)) +(define (set-titlepage-recto-copyright node side) + (set-titlepage-element node side)) + +(define (set-titlepage-corpauthor node side) + (if (equal? side 'recto) + (set-titlepage-element node side) + (if (first-sibling? node) + (make element gi: "P" + attributes: (list (list "CLASS" (gi node))) + (with-mode set-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (set-titlepage-corpname node side) + (set-titlepage-element node side)) +(define (set-titlepage-date node side) + (set-titlepage-element node side)) +(define (set-titlepage-edition node side) + (set-titlepage-element node side)) +(define (set-titlepage-editor node side) + (set-titlepage-element node side)) +(define (set-titlepage-firstname node side) + (set-titlepage-element node side)) +(define (set-titlepage-graphic node side) + (set-titlepage-element node side)) +(define (set-titlepage-honorific node side) + (set-titlepage-element node side)) +(define (set-titlepage-indexterm node side) + (set-titlepage-element node side)) +(define (set-titlepage-invpartnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-isbn node side) + (set-titlepage-element node side)) +(define (set-titlepage-issn node side) + (set-titlepage-element node side)) +(define (set-titlepage-issuenum node side) + (set-titlepage-element node side)) +(define (set-titlepage-itermset node side) + (set-titlepage-element node side)) +(define (set-titlepage-keywordset node side) + (set-titlepage-element node side)) +(define (set-titlepage-recto-legalnotice node side) + (set-titlepage-element node side)) +(define (set-titlepage-lineage node side) + (set-titlepage-element node side)) +(define (set-titlepage-mediaobject node side) + (set-titlepage-element node side)) +(define (set-titlepage-modespec node side) + (set-titlepage-element node side)) +(define (set-titlepage-orgname node side) + (set-titlepage-element node side)) +(define (set-titlepage-othercredit node side) + (set-titlepage-element node side)) +(define (set-titlepage-othername node side) + (set-titlepage-element node side)) +(define (set-titlepage-pagenums node side) + (set-titlepage-element node side)) +(define (set-titlepage-printhistory node side) + (set-titlepage-element node side)) +(define (set-titlepage-productname node side) + (set-titlepage-element node side)) +(define (set-titlepage-productnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-pubdate node side) + (set-titlepage-element node side)) +(define (set-titlepage-publisher node side) + (set-titlepage-element node side)) +(define (set-titlepage-publishername node side) + (set-titlepage-element node side)) +(define (set-titlepage-pubsnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-releaseinfo node side) + (set-titlepage-element node side)) +(define (set-titlepage-revhistory node side) + (set-titlepage-element node side)) +(define (set-titlepage-seriesinfo node side) + (set-titlepage-element node side)) +(define (set-titlepage-seriesvolnums node side) + (set-titlepage-element node side)) +(define (set-titlepage-subjectset node side) + (set-titlepage-element node side)) +(define (set-titlepage-subtitle node side) + (set-titlepage-element node side)) +(define (set-titlepage-surname node side) + (set-titlepage-element node side)) +(define (set-titlepage-title node side) + (set-titlepage-element node side)) +(define (set-titlepage-titleabbrev node side) + (set-titlepage-element node side)) +(define (set-titlepage-volumenum node side) + (set-titlepage-element node side)) + +(mode set-titlepage-recto-mode + (element para + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (process-children)))) + + (element copyright + (titlepage-recto-copyright)) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element edition + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make element gi: "H4" + attributes: (list (list "CLASS" "EDITEDBY")) + (literal (gentext-edited-by))) + (empty-sosofo)) + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (literal editor-name))))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element legalnotice + (titlepage-recto-legalnotice)) + + (element (legalnotice title) (empty-sosofo)) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element publisher + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element publishername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubsnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element releaseinfo + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (process-children-trim))) + + (element title + (make element gi: "H1" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (with-mode title-mode + (process-children-trim))))) + + (element (formalpara title) ($runinhead$)) +) + +(mode set-titlepage-verso-mode + (element abstract ($semiformal-object$)) + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))))) + + (element authorgroup + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (process-children-trim))) + + (element copyright + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name (current-node))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element edition + (make element gi: "P" + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + (literal (gentext-edited-by)) + (make entity-ref name: "nbsp") + (literal (author-string)))) + (literal (author-string))))) + + (element legalnotice + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element title + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (with-mode title-mode + (process-children)))) + + (element (formalpara title) ($runinhead$)) +) + +;; == Title pages for BOOKs ============================================= + +(define (book-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "graphic") + (normalize "mediaobject") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor") + (normalize "copyright") + (normalize "abstract") + (normalize "legalnotice"))) + +(define (book-titlepage-verso-elements) '()) + +(define (book-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (book-titlepage-recto-elements) + (book-titlepage-verso-elements)))) + +(define (book-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (book-titlepage-recto-elements) + (book-titlepage-verso-elements)) + elements))) + (if (book-titlepage-content? elements side) + (make element gi: "DIV" + attributes: '(("CLASS" "TITLEPAGE")) + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (book-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (book-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (book-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (book-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (book-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (book-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (book-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (book-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (book-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (book-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (book-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (book-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (book-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (book-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (book-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (book-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (book-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (book-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (book-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (book-titlepage-recto-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (book-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (book-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (book-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (book-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (book-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (book-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (book-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (book-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (book-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (book-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (book-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (book-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (book-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (book-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (book-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (book-titlepage-recto-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (book-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (book-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (book-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (book-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (book-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (book-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (book-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (book-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (book-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (book-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (book-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (book-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (book-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (book-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (book-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (book-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (book-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (book-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (book-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (book-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (book-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (book-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (book-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (book-titlepage-volumenum (node-list-first nl) side)) + (else + (book-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + (book-titlepage-separator side)) + (empty-sosofo)))) + +(define (book-titlepage-separator side) + (if (equal? side 'recto) + (make empty-element gi: "HR") + (empty-sosofo))) + +(define (book-titlepage-before node side) + (empty-sosofo)) + +(define (book-titlepage-default node side) + (let ((foo (debug (string-append "No book-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (book-titlepage-element node side) + (if (equal? side 'recto) + (with-mode book-titlepage-recto-mode + (process-node-list node)) + (with-mode book-titlepage-verso-mode + (process-node-list node)))) + +(define (book-titlepage-abbrev node side) + (book-titlepage-element node side)) +(define (book-titlepage-abstract node side) + (book-titlepage-element node side)) +(define (book-titlepage-address node side) + (book-titlepage-element node side)) +(define (book-titlepage-affiliation node side) + (book-titlepage-element node side)) +(define (book-titlepage-artpagenums node side) + (book-titlepage-element node side)) +(define (book-titlepage-author node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorblurb node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorgroup node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorinitials node side) + (book-titlepage-element node side)) +(define (book-titlepage-bibliomisc node side) + (book-titlepage-element node side)) +(define (book-titlepage-biblioset node side) + (book-titlepage node side)) +(define (book-titlepage-bookbiblio node side) + (book-titlepage node side)) +(define (book-titlepage-citetitle node side) + (book-titlepage-element node side)) +(define (book-titlepage-collab node side) + (book-titlepage-element node side)) +(define (book-titlepage-confgroup node side) + (book-titlepage-element node side)) +(define (book-titlepage-contractnum node side) + (book-titlepage-element node side)) +(define (book-titlepage-contractsponsor node side) + (book-titlepage-element node side)) +(define (book-titlepage-contrib node side) + (book-titlepage-element node side)) +(define (book-titlepage-recto-copyright node side) + (book-titlepage-element node side)) + +(define (book-titlepage-corpauthor node side) + (if (equal? side 'recto) + (book-titlepage-element node side) + (if (first-sibling? node) + (make element gi: "P" + attributes: (list (list "CLASS" (gi node))) + (with-mode book-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (book-titlepage-corpname node side) + (book-titlepage-element node side)) +(define (book-titlepage-date node side) + (book-titlepage-element node side)) +(define (book-titlepage-edition node side) + (book-titlepage-element node side)) +(define (book-titlepage-editor node side) + (book-titlepage-element node side)) +(define (book-titlepage-firstname node side) + (book-titlepage-element node side)) +(define (book-titlepage-graphic node side) + (book-titlepage-element node side)) +(define (book-titlepage-honorific node side) + (book-titlepage-element node side)) +(define (book-titlepage-indexterm node side) + (book-titlepage-element node side)) +(define (book-titlepage-invpartnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-isbn node side) + (book-titlepage-element node side)) +(define (book-titlepage-issn node side) + (book-titlepage-element node side)) +(define (book-titlepage-issuenum node side) + (book-titlepage-element node side)) +(define (book-titlepage-itermset node side) + (book-titlepage-element node side)) +(define (book-titlepage-keywordset node side) + (book-titlepage-element node side)) +(define (book-titlepage-recto-legalnotice node side) + (book-titlepage-element node side)) +(define (book-titlepage-lineage node side) + (book-titlepage-element node side)) +(define (book-titlepage-mediaobject node side) + (book-titlepage-element node side)) +(define (book-titlepage-modespec node side) + (book-titlepage-element node side)) +(define (book-titlepage-orgname node side) + (book-titlepage-element node side)) +(define (book-titlepage-othercredit node side) + (book-titlepage-element node side)) +(define (book-titlepage-othername node side) + (book-titlepage-element node side)) +(define (book-titlepage-pagenums node side) + (book-titlepage-element node side)) +(define (book-titlepage-printhistory node side) + (book-titlepage-element node side)) +(define (book-titlepage-productname node side) + (book-titlepage-element node side)) +(define (book-titlepage-productnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-pubdate node side) + (book-titlepage-element node side)) +(define (book-titlepage-publisher node side) + (book-titlepage-element node side)) +(define (book-titlepage-publishername node side) + (book-titlepage-element node side)) +(define (book-titlepage-pubsnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-releaseinfo node side) + (book-titlepage-element node side)) +(define (book-titlepage-revhistory node side) + (book-titlepage-element node side)) +(define (book-titlepage-seriesinfo node side) + (book-titlepage-element node side)) +(define (book-titlepage-seriesvolnums node side) + (book-titlepage-element node side)) +(define (book-titlepage-subjectset node side) + (book-titlepage-element node side)) +(define (book-titlepage-subtitle node side) + (book-titlepage-element node side)) +(define (book-titlepage-surname node side) + (book-titlepage-element node side)) +(define (book-titlepage-title node side) + (book-titlepage-element node side)) +(define (book-titlepage-titleabbrev node side) + (book-titlepage-element node side)) +(define (book-titlepage-volumenum node side) + (book-titlepage-element node side)) + +(mode titlepage-address-mode + (default (process-children)) + + (element email + ($code-seq$ + (make sequence + (literal "<") + (make element gi: "A" + attributes: (list (list "HREF" + (string-append "mailto:" + (data (current-node))))) + (process-children)) + (literal ">"))))) + +(mode book-titlepage-recto-mode + (element abbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element artpagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (process-children)) + + (element authorinitials + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element bibliomisc (process-children)) + (element bibliomset (process-children)) + + (element collab + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element confgroup + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractnum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractsponsor + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contrib + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element copyright + (titlepage-recto-copyright)) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element corpname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element date + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element edition + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make element gi: "H4" + attributes: (list (list "CLASS" "EDITEDBY")) + (literal (gentext-edited-by))) + (empty-sosofo)) + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (literal editor-name))))) + + (element firstname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element honorific + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element isbn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issuenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element jobtitle + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element keywordset (empty-sosofo)) + + (element legalnotice + (titlepage-recto-legalnotice)) + + (element (legalnotice title) (empty-sosofo)) + + (element lineage + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element orgname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element othername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element printhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element productname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element productnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element publisher + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element publishername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubsnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element releaseinfo + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element seriesvolnums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element shortaffil + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (process-children-trim))) + + (element surname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element title + (make element gi: "H1" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (with-mode title-mode + (process-children-trim))))) + + (element (formalpara title) ($runinhead$)) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) +) + +(mode book-titlepage-verso-mode + (element abbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element artpagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (process-children-trim))) + + (element authorinitials + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element bibliomisc (process-children)) + (element bibliomset (process-children)) + + (element collab + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element confgroup + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractnum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractsponsor + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contrib + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element copyright + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name (current-node))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element date + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element edition + (make element gi: "P" + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + (literal (gentext-edited-by)) + (make entity-ref name: "nbsp") + (literal (author-string)))) + (literal (author-string))))) + + (element firstname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element honorific + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element isbn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issuenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element jobtitle + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element keywordset (empty-sosofo)) + + (element legalnotice + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element lineage + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element orgname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element othername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element printhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element productname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element productnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element publishername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubsnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element releaseinfo + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element seriesvolnums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element shortaffil + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element surname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element title + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (with-mode title-mode + (process-children)))) + + (element (formalpara title) ($runinhead$)) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) +) + +(mode legal-notice-link-mode + (element legalnotice + ($semiformal-object$))) + +;; == Title pages for PARTs ============================================= + +(define (part-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle"))) + +(define (part-titlepage-verso-elements) + '()) + +(define (part-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (part-titlepage-recto-elements) + (part-titlepage-verso-elements)))) + +(define (part-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (part-titlepage-recto-elements) + (part-titlepage-verso-elements)) + elements)) + ;; partintro is a special case... + (partintro (node-list-first + (node-list-filter-by-gi elements + (list (normalize "partintro")))))) + (if (part-titlepage-content? elements side) + (make element gi: "DIV" + attributes: '(("CLASS" "TITLEPAGE")) + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (part-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (part-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (part-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (part-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (part-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (part-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (part-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (part-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (part-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (part-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (part-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (part-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (part-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (part-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (part-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (part-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (part-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (part-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (part-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (part-titlepage-recto-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (part-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (part-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (part-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (part-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (part-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (part-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (part-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (part-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (part-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (part-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (part-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (part-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (part-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (part-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (part-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (part-titlepage-recto-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (part-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (part-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (part-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (part-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (part-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (part-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (part-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (part-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (part-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (part-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (part-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (part-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (part-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (part-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (part-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (part-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (part-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (part-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (part-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (part-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (part-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (part-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (part-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (part-titlepage-volumenum (node-list-first nl) side)) + (else + (part-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + + ;; PartIntro is a special case + (if (and (equal? side 'recto) + (not (node-list-empty? partintro)) + %generate-partintro-on-titlepage%) + ($process-partintro$ partintro) + (empty-sosofo)) + + (if (and %generate-part-toc% + %generate-part-toc-on-titlepage% + (equal? side 'recto)) + (make display-group + (build-toc (current-node) (toc-depth (current-node)))) + (empty-sosofo)) + + (part-titlepage-separator side)) + (empty-sosofo)))) + +(define (part-titlepage-separator side) + (empty-sosofo)) + +(define (part-titlepage-before node side) + (empty-sosofo)) + +(define (part-titlepage-default node side) + (let ((foo (debug (string-append "No part-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (part-titlepage-element node side) + (if (equal? side 'recto) + (with-mode part-titlepage-recto-mode + (process-node-list node)) + (with-mode part-titlepage-verso-mode + (process-node-list node)))) + +(define (part-titlepage-abbrev node side) + (part-titlepage-element node side)) +(define (part-titlepage-abstract node side) + (part-titlepage-element node side)) +(define (part-titlepage-address node side) + (part-titlepage-element node side)) +(define (part-titlepage-affiliation node side) + (part-titlepage-element node side)) +(define (part-titlepage-artpagenums node side) + (part-titlepage-element node side)) +(define (part-titlepage-author node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorblurb node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorgroup node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorinitials node side) + (part-titlepage-element node side)) +(define (part-titlepage-bibliomisc node side) + (part-titlepage-element node side)) +(define (part-titlepage-biblioset node side) + (part-titlepage node side)) +(define (part-titlepage-bookbiblio node side) + (part-titlepage node side)) +(define (part-titlepage-citetitle node side) + (part-titlepage-element node side)) +(define (part-titlepage-collab node side) + (part-titlepage-element node side)) +(define (part-titlepage-confgroup node side) + (part-titlepage-element node side)) +(define (part-titlepage-contractnum node side) + (part-titlepage-element node side)) +(define (part-titlepage-contractsponsor node side) + (part-titlepage-element node side)) +(define (part-titlepage-contrib node side) + (part-titlepage-element node side)) +(define (part-titlepage-recto-copyright node side) + (part-titlepage-element node side)) +(define (part-titlepage-corpauthor node side) + (part-titlepage-element node side)) +(define (part-titlepage-corpname node side) + (part-titlepage-element node side)) +(define (part-titlepage-date node side) + (part-titlepage-element node side)) +(define (part-titlepage-edition node side) + (part-titlepage-element node side)) +(define (part-titlepage-editor node side) + (part-titlepage-element node side)) +(define (part-titlepage-firstname node side) + (part-titlepage-element node side)) +(define (part-titlepage-graphic node side) + (part-titlepage-element node side)) +(define (part-titlepage-honorific node side) + (part-titlepage-element node side)) +(define (part-titlepage-indexterm node side) + (part-titlepage-element node side)) +(define (part-titlepage-invpartnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-isbn node side) + (part-titlepage-element node side)) +(define (part-titlepage-issn node side) + (part-titlepage-element node side)) +(define (part-titlepage-issuenum node side) + (part-titlepage-element node side)) +(define (part-titlepage-itermset node side) + (part-titlepage-element node side)) +(define (part-titlepage-keywordset node side) + (part-titlepage-element node side)) +(define (part-titlepage-recto-legalnotice node side) + (part-titlepage-element node side)) +(define (part-titlepage-lineage node side) + (part-titlepage-element node side)) +(define (part-titlepage-mediaobject node side) + (part-titlepage-element node side)) +(define (part-titlepage-modespec node side) + (part-titlepage-element node side)) +(define (part-titlepage-orgname node side) + (part-titlepage-element node side)) +(define (part-titlepage-othercredit node side) + (part-titlepage-element node side)) +(define (part-titlepage-othername node side) + (part-titlepage-element node side)) +(define (part-titlepage-pagenums node side) + (part-titlepage-element node side)) +(define (part-titlepage-partintro node side) + (part-titlepage-element node side)) +(define (part-titlepage-printhistory node side) + (part-titlepage-element node side)) +(define (part-titlepage-productname node side) + (part-titlepage-element node side)) +(define (part-titlepage-productnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-pubdate node side) + (part-titlepage-element node side)) +(define (part-titlepage-publisher node side) + (part-titlepage-element node side)) +(define (part-titlepage-publishername node side) + (part-titlepage-element node side)) +(define (part-titlepage-pubsnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-releaseinfo node side) + (part-titlepage-element node side)) +(define (part-titlepage-revhistory node side) + (part-titlepage-element node side)) +(define (part-titlepage-seriesinfo node side) + (part-titlepage-element node side)) +(define (part-titlepage-seriesvolnums node side) + (part-titlepage-element node side)) +(define (part-titlepage-subjectset node side) + (part-titlepage-element node side)) +(define (part-titlepage-subtitle node side) + (part-titlepage-element node side)) +(define (part-titlepage-surname node side) + (part-titlepage-element node side)) +(define (part-titlepage-title node side) + (part-titlepage-element node side)) +(define (part-titlepage-titleabbrev node side) + (part-titlepage-element node side)) +(define (part-titlepage-volumenum node side) + (part-titlepage-element node side)) + + +(mode part-titlepage-recto-mode + (element para + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (process-children)) + + (element copyright + (titlepage-recto-copyright)) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element edition + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make element gi: "H4" + attributes: (list (list "CLASS" "EDITEDBY")) + (literal (gentext-edited-by))) + (empty-sosofo)) + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (literal editor-name))))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element legalnotice + (titlepage-recto-legalnotice)) + + (element (legalnotice title) (empty-sosofo)) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (process-children-trim))) + + (element title + (let ((division (ancestor-member (current-node) (division-element-list)))) + (make element gi: "H1" + attributes: (list (list "CLASS" (gi))) + (if (string=? (element-label division) "") + (empty-sosofo) + (literal (element-label division) + (gentext-label-title-sep (gi division)))) + (with-mode title-mode + (process-children))))) + + (element (formalpara title) ($runinhead$)) +) + +(mode part-titlepage-verso-mode + (element abstract ($semiformal-object$)) + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))))) + + (element authorgroup + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (process-children-trim))) + + (element copyright + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name (current-node))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element edition + (make element gi: "P" + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + (literal (gentext-edited-by)) + (make entity-ref name: "nbsp") + (literal (author-string)))) + (literal (author-string))))) + + (element legalnotice + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element title + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (with-mode title-mode + (process-children)))) + + (element (formalpara title) ($runinhead$)) +) + +;; == Title pages for ARTICLEs ========================================== +;; +;; Note: Article title pages are a little different in that they do not +;; create their own simple-page-sequence. +;; + +(define (article-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "releaseinfo") + (normalize "copyright") + (normalize "pubdate") + (normalize "revhistory") + (normalize "abstract"))) + +(define (article-titlepage-verso-elements) + '()) + +(define (article-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (article-titlepage-recto-elements) + (article-titlepage-verso-elements)))) + +(define (article-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (article-titlepage-recto-elements) + (article-titlepage-verso-elements)) + elements))) + (if (article-titlepage-content? elements side) + (make element gi: "DIV" + attributes: '(("CLASS" "TITLEPAGE")) + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (article-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (article-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (article-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (article-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (article-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (article-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (article-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (article-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (article-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (article-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (article-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (article-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (article-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (article-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (article-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (article-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (article-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (article-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (article-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (article-titlepage-recto-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (article-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (article-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (article-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (article-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (article-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (article-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (article-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (article-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (article-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (article-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (article-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (article-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (article-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (article-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (article-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (article-titlepage-recto-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (article-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (article-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (article-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (article-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (article-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (article-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (article-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (article-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (article-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (article-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (article-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (article-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (article-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (article-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (article-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (article-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (article-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (article-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (article-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (article-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (article-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (article-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (article-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (article-titlepage-volumenum (node-list-first nl) side)) + (else + (article-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + (article-titlepage-separator side)) + (empty-sosofo)))) + +(define (article-titlepage-separator side) + (make empty-element gi: "HR")) + +(define (article-titlepage-before node side) + (empty-sosofo)) + +(define (article-titlepage-default node side) + (let ((foo (debug (string-append "No article-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (article-titlepage-element node side) + (if (equal? side 'recto) + (with-mode article-titlepage-recto-mode + (process-node-list node)) + (with-mode article-titlepage-verso-mode + (process-node-list node)))) + +(define (article-titlepage-abbrev node side) + (article-titlepage-element node side)) +(define (article-titlepage-abstract node side) + (article-titlepage-element node side)) +(define (article-titlepage-address node side) + (article-titlepage-element node side)) +(define (article-titlepage-affiliation node side) + (article-titlepage-element node side)) +(define (article-titlepage-artpagenums node side) + (article-titlepage-element node side)) +(define (article-titlepage-author node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorblurb node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorgroup node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorinitials node side) + (article-titlepage-element node side)) +(define (article-titlepage-bibliomisc node side) + (article-titlepage-element node side)) +(define (article-titlepage-biblioset node side) + (article-titlepage node side)) +(define (article-titlepage-bookbiblio node side) + (article-titlepage node side)) +(define (article-titlepage-citetitle node side) + (article-titlepage-element node side)) +(define (article-titlepage-collab node side) + (article-titlepage-element node side)) +(define (article-titlepage-confgroup node side) + (article-titlepage-element node side)) +(define (article-titlepage-contractnum node side) + (article-titlepage-element node side)) +(define (article-titlepage-contractsponsor node side) + (article-titlepage-element node side)) +(define (article-titlepage-contrib node side) + (article-titlepage-element node side)) +(define (article-titlepage-recto-copyright node side) + (article-titlepage-element node side)) +(define (article-titlepage-corpauthor node side) + (article-titlepage-element node side)) +(define (article-titlepage-corpname node side) + (article-titlepage-element node side)) +(define (article-titlepage-date node side) + (article-titlepage-element node side)) +(define (article-titlepage-edition node side) + (article-titlepage-element node side)) +(define (article-titlepage-editor node side) + (article-titlepage-element node side)) +(define (article-titlepage-firstname node side) + (article-titlepage-element node side)) +(define (article-titlepage-graphic node side) + (article-titlepage-element node side)) +(define (article-titlepage-honorific node side) + (article-titlepage-element node side)) +(define (article-titlepage-indexterm node side) + (article-titlepage-element node side)) +(define (article-titlepage-invpartnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-isbn node side) + (article-titlepage-element node side)) +(define (article-titlepage-issn node side) + (article-titlepage-element node side)) +(define (article-titlepage-issuenum node side) + (article-titlepage-element node side)) +(define (article-titlepage-itermset node side) + (article-titlepage-element node side)) +(define (article-titlepage-keywordset node side) + (article-titlepage-element node side)) +(define (article-titlepage-recto-legalnotice node side) + (article-titlepage-element node side)) +(define (article-titlepage-lineage node side) + (article-titlepage-element node side)) +(define (article-titlepage-mediaobject node side) + (article-titlepage-element node side)) +(define (article-titlepage-modespec node side) + (article-titlepage-element node side)) +(define (article-titlepage-orgname node side) + (article-titlepage-element node side)) +(define (article-titlepage-othercredit node side) + (article-titlepage-element node side)) +(define (article-titlepage-othername node side) + (article-titlepage-element node side)) +(define (article-titlepage-pagenums node side) + (article-titlepage-element node side)) +(define (article-titlepage-partintro node side) + (article-titlepage-element node side)) +(define (article-titlepage-printhistory node side) + (article-titlepage-element node side)) +(define (article-titlepage-productname node side) + (article-titlepage-element node side)) +(define (article-titlepage-productnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-pubdate node side) + (article-titlepage-element node side)) +(define (article-titlepage-publisher node side) + (article-titlepage-element node side)) +(define (article-titlepage-publishername node side) + (article-titlepage-element node side)) +(define (article-titlepage-pubsnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-releaseinfo node side) + (article-titlepage-element node side)) +(define (article-titlepage-revhistory node side) + (article-titlepage-element node side)) +(define (article-titlepage-seriesinfo node side) + (article-titlepage-element node side)) +(define (article-titlepage-seriesvolnums node side) + (article-titlepage-element node side)) +(define (article-titlepage-subjectset node side) + (article-titlepage-element node side)) +(define (article-titlepage-subtitle node side) + (article-titlepage-element node side)) +(define (article-titlepage-surname node side) + (article-titlepage-element node side)) +(define (article-titlepage-title node side) + (article-titlepage-element node side)) +(define (article-titlepage-titleabbrev node side) + (article-titlepage-element node side)) +(define (article-titlepage-volumenum node side) + (article-titlepage-element node side)) + +(mode article-titlepage-recto-mode + (element abbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element artpagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (literal author-name))) + (process-node-list author-affil)))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (process-children))) + + (element authorinitials + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element bibliomisc (process-children)) + (element bibliomset (process-children)) + + (element collab + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element confgroup + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractnum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractsponsor + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contrib + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element copyright + (titlepage-recto-copyright)) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element corpname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element date + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element edition + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make element gi: "H4" + attributes: (list (list "CLASS" "EDITEDBY")) + (literal (gentext-edited-by))) + (empty-sosofo)) + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (literal editor-name))))) + + (element firstname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element honorific + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element isbn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issuenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element jobtitle + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element keywordset (empty-sosofo)) + + (element legalnotice + (titlepage-recto-legalnotice)) + + (element (legalnotice title) (empty-sosofo)) + + (element lineage + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element orgname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element othername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element printhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element productname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element productnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element publisher + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element publishername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubsnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element releaseinfo + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element seriesvolnums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element shortaffil + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (process-children-trim))) + + (element surname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element title + (make element gi: "H1" + attributes: (list (list "CLASS" (gi))) + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (with-mode title-mode + (process-children-trim))))) + + (element (formalpara title) ($runinhead$)) + + (element titleabbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element volumenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) +) + +(mode article-titlepage-verso-mode + (element abbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element artpagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (process-children-trim))) + + (element authorinitials + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element bibliomisc (process-children)) + (element bibliomset (process-children)) + + (element collab + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element confgroup + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractnum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contractsponsor + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element contrib + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element copyright + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name (current-node))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element date + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element edition + (make element gi: "P" + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + (literal (gentext-edited-by)) + (make entity-ref name: "nbsp") + (literal (author-string)))) + (literal (author-string))))) + + (element firstname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element honorific + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element isbn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issn + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element issuenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element jobtitle + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element keywordset (empty-sosofo)) + + (element legalnotice + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element lineage + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element orgname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element othername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pagenums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element printhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element productname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element productnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element publishername + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element pubsnumber + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element releaseinfo + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element seriesvolnums + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element shortaffil + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element surname + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element title + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (with-mode title-mode + (process-children)))) + + (element (formalpara title) ($runinhead$)) + + (element titleabbrev + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) + + (element volumenum + (make element gi: "SPAN" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make empty-element gi: "BR"))) +) + +;; == Title pages for REFERENCEs ======================================== + +(define (reference-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor"))) + +(define (reference-titlepage-verso-elements) + '()) + +(define (reference-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (reference-titlepage-recto-elements) + (reference-titlepage-verso-elements)))) + +(define (reference-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (reference-titlepage-recto-elements) + (reference-titlepage-verso-elements)) + elements)) + ;; partintro is a special case... + (partintro (node-list-first + (node-list-filter-by-gi elements + (list (normalize "partintro")))))) + (if (reference-titlepage-content? elements side) + (make element gi: "DIV" + attributes: '(("CLASS" "TITLEPAGE")) + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (reference-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (reference-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (reference-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (reference-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (reference-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (reference-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (reference-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (reference-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (reference-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (reference-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (reference-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (reference-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (reference-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (reference-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (reference-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (reference-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (reference-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (reference-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (reference-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (reference-titlepage-recto-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (reference-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (reference-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (reference-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (reference-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (reference-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (reference-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (reference-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (reference-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (reference-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (reference-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (reference-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (reference-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (reference-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (reference-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (reference-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (reference-titlepage-recto-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (reference-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (reference-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (reference-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (reference-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (reference-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (reference-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (reference-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (reference-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (reference-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (reference-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (reference-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (reference-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (reference-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (reference-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (reference-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (reference-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (reference-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (reference-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (reference-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (reference-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (reference-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (reference-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (reference-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (reference-titlepage-volumenum (node-list-first nl) side)) + (else + (reference-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + + ;; PartIntro is a special case + (if (and (equal? side 'recto) + (not (node-list-empty? partintro)) + %generate-partintro-on-titlepage%) + ($process-partintro$ partintro) + (empty-sosofo)) + + (if (and %generate-reference-toc% + %generate-reference-toc-on-titlepage% + (equal? side 'recto)) + (make display-group + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (reference-titlepage-separator side)) + (empty-sosofo)))) + +(define (reference-titlepage-separator side) + (empty-sosofo)) + +(define (reference-titlepage-before node side) + (empty-sosofo)) + +(define (reference-titlepage-default node side) + (let ((foo (debug (string-append "No reference-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (reference-titlepage-element node side) + (if (equal? side 'recto) + (with-mode reference-titlepage-recto-mode + (process-node-list node)) + (with-mode reference-titlepage-verso-mode + (process-node-list node)))) + +(define (reference-titlepage-abbrev node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-abstract node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-address node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-affiliation node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-artpagenums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-author node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorblurb node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorgroup node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorinitials node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-bibliomisc node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-biblioset node side) + (reference-titlepage node side)) +(define (reference-titlepage-bookbiblio node side) + (reference-titlepage node side)) +(define (reference-titlepage-citetitle node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-collab node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-confgroup node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contractnum node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contractsponsor node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contrib node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-recto-copyright node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-corpauthor node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-corpname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-date node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-edition node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-editor node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-firstname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-graphic node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-honorific node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-indexterm node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-invpartnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-isbn node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-issn node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-issuenum node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-itermset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-keywordset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-recto-legalnotice node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-lineage node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-mediaobject node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-modespec node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-orgname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-othercredit node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-othername node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pagenums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-printhistory node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-productname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-productnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pubdate node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-publisher node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-publishername node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pubsnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-releaseinfo node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-revhistory node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-seriesinfo node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-seriesvolnums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-subjectset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-subtitle node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-surname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-title node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-titleabbrev node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-volumenum node side) + (reference-titlepage-element node side)) + +(mode reference-titlepage-recto-mode + (element para + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element abstract + (make element gi: "DIV" + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal author-name))) + (process-node-list author-affil)))) + + (element authorblurb + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element authorgroup + (process-children)) + + (element copyright + (titlepage-recto-copyright)) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element edition + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make element gi: "H4" + attributes: (list (list "CLASS" "EDITEDBY")) + (literal (gentext-edited-by))) + (empty-sosofo)) + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (literal editor-name))))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string (normalize "fileref") nd)) + (entattr (attribute-string (normalize "entityref") nd)) + (entityref (if entattr + (entity-system-id entattr) + #f)) + (format (attribute-string (normalize "format"))) + (align (attribute-string (normalize "align"))) + (attr (append + (if align + (list (list "ALIGN" align)) + '()) + (if entityref + (list (list "SRC" (graphic-file entityref))) + (list (list "SRC" (graphic-file fileref)))) + (list (list "ALT" "")) + ))) + (if (or fileref entityref) + (make empty-element gi: "IMG" + attributes: attr) + (empty-sosofo)))) + + (element legalnotice + (titlepage-recto-legalnotice)) + + (element (legalnotice title) (empty-sosofo)) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (process-children-trim))) + + (element title + (let ((ref (ancestor-member (current-node) + (list (normalize "reference"))))) + (make element gi: "H1" + attributes: (list (list "CLASS" (gi))) + (literal (element-label ref) + (gentext-label-title-sep (gi ref))) + (with-mode title-mode + (process-children))))) + + (element (formalpara title) ($runinhead$)) +) + +(mode reference-titlepage-verso-mode + (element abstract ($semiformal-object$)) + (element (abstract title) (empty-sosofo)) + + (element address + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))) + (make sequence + (make element gi: "A" + attributes: (list (list "NAME" (element-id))) + (empty-sosofo)) + (literal (author-list-string)))))) + + (element authorgroup + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-by)) + (make entity-ref name: "nbsp") + (process-children-trim))) + + (element copyright + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name (current-node))) + (make entity-ref name: "nbsp") + (dingbat-sosofo "copyright") + (make entity-ref name: "nbsp") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element edition + (make element gi: "P" + (process-children) + (make entity-ref name: "nbsp") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + (literal (gentext-edited-by)) + (make entity-ref name: "nbsp") + (literal (author-string)))) + (literal (author-string))))) + + (element legalnotice + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element pubdate + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element revhistory + (make element gi: "DIV" + attributes: (list (list "CLASS" (gi))) + (make element gi: "TABLE" + attributes: (list + (list "WIDTH" ($table-width$)) + (list "BORDER" "0")) + (make sequence + (make element gi: "TR" + (make element gi: "TH" + attributes: '(("ALIGN" "LEFT") + ("VALIGN" "TOP") + ("COLSPAN" "3")) + (make element gi: "B" + (literal (gentext-element-name + (gi (current-node))))))) + (process-children))))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark")))) + (make sequence + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revnumber)) + (make sequence + (literal (gentext-element-name-space + (gi (current-node)))) + (process-node-list revnumber)) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revdate)) + (process-node-list revdate) + (empty-sosofo))) + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT")) + (if (not (node-list-empty? revauthor)) + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make element gi: "TR" + (make element gi: "TD" + attributes: (list + (list "ALIGN" "LEFT") + (list "COLSPAN" "3")) + (if (not (node-list-empty? revremark)) + (process-node-list revremark) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + + (element subtitle + (make element gi: "H3" + attributes: (list (list "CLASS" (gi))) + (process-children))) + + (element title + (make element gi: "H2" + attributes: (list (list "CLASS" (gi))) + (with-mode title-mode + (process-children)))) + + (element (formalpara title) ($runinhead$)) +) diff --git a/html/dbverb.dsl b/html/dbverb.dsl new file mode 100644 index 0000000..30ef4f7 --- /dev/null +++ b/html/dbverb.dsl @@ -0,0 +1,218 @@ +;; $Id: dbverb.dsl,v 1.5 2003/01/15 08:24:14 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define ($inpre$) + (let ((wrapper (ancestor-member (current-node) + (list (normalize "address") + (normalize "funcsynopsisinfo") + (normalize "literallayout") + (normalize "programlisting") + (normalize "screen") + (normalize "synopsis"))))) + (if (or (and (equal? wrapper "literallayout") + (not (equal? (attribute-string "class" wrapper) + (normalize "monospaced")))) + (equal? wrapper "address")) + #f + #t))) + +(define ($format-indent$ indent) + ;; This code is made complex by the fact that we need an additional + ;; wrapper and we have to translate spaces into nbsp entity-refs, + ;; if we aren't in a PRE. + ;; + (if ($inpre$) + (literal indent) + (make element gi: "CODE" + ($sp-to-nbsp-sosofo$ indent)))) + +(define ($format-linenumber$ linenumber) + ;; This code is made complex by the fact that we need an additional + ;; wrapper and we have to translate spaces into nbsp entity-refs, + ;; if we aren't in a PRE. + ;; + (if (equal? (remainder linenumber %linenumber-mod%) 0) + (if ($inpre$) + (make sequence + (literal (pad-string (format-number linenumber "1") + %linenumber-length% %linenumber-padchar%)) + ($linenumber-space$)) + (make element gi: "CODE" + ($sp-to-nbsp-sosofo$ + (pad-string (format-number linenumber "1") + %linenumber-length% %linenumber-padchar%)) + ($linenumber-space$))) + (if ($inpre$) + (make sequence + (literal (pad-string "" %linenumber-length% " ")) + ($linenumber-space$)) + (make element gi: "CODE" + ($sp-to-nbsp-sosofo$ + (pad-string "" %linenumber-length% " ")) + ($linenumber-space$))))) + +(define ($line-start$ indent line-numbers? #!optional (line-number 1)) + (make sequence + (if indent + ($format-indent$ indent) + (empty-sosofo)) + (if line-numbers? + ($format-linenumber$ line-number) + (empty-sosofo)))) + +(define ($sp-to-nbsp-sosofo$ string) + ;; Given a string, return it as a sosofo, but replace spaces with + ;; nbsp entity-refs. + (make sequence + (let loop ((charlist (string->list string)) + (res (empty-sosofo))) + (if (null? charlist) + res + (loop + (cdr charlist) + (let ((c (car charlist))) + (if (equal? c #\ ) + (sosofo-append res + (make entity-ref name: "nbsp")) + (sosofo-append res (literal (list->string (list c))))))))))) + +(define ($verbatim-display$ indent line-numbers?) + (let ((content (make element gi: "PRE" + attributes: (list + (list "CLASS" (gi))) + (if (or indent line-numbers?) + ($verbatim-line-by-line$ indent line-numbers?) + (process-children))))) + (if %shade-verbatim% + (make element gi: "TABLE" + attributes: ($shade-verbatim-attr$) + (make element gi: "TR" + (make element gi: "TD" + content))) + (make sequence + (para-check) + content + (para-check 'restart))))) + +(define ($verbatim-line-by-line$ indent line-numbers?) + (let ((expanded-content + ;; this is the content with + ;; inlinemediaobject/imageobject[@format='linespecific'] + ;; expanded + (let loop ((kl (children (current-node))) (rl (empty-node-list))) + (if (node-list-empty? kl) + rl + (if (equal? (gi (node-list-first kl)) + (normalize "inlinemediaobject")) + (let* ((imgobj (node-list-filter-by-gi + (children (node-list-first kl)) + (list (normalize "imageobject")))) + (datobj (node-list-filter-by-gi + (children imgobj) + (list (normalize "imagedata"))))) + (if (and (not (node-list-empty? imgobj)) + (not (node-list-empty? datobj)) + (equal? (attribute-string (normalize "format") datobj) + (normalize "linespecific"))) + (loop (node-list-rest kl) + (node-list rl (string->nodes (include-characters + (if (attribute-string (normalize "fileref") datobj) + (attribute-string (normalize "fileref") datobj) + (entity-generated-system-id (attribute-string (normalize "entityref") datobj))))))) + (loop (node-list-rest kl) + (node-list rl (node-list-first kl))))) + (loop (node-list-rest kl) (node-list rl (node-list-first kl)))))))) + (make sequence + ($line-start$ indent line-numbers? 1) + (let loop ((kl expanded-content) + (linecount 1) + (res (empty-sosofo))) + (if (node-list-empty? kl) + res + (loop + (node-list-rest kl) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + (+ linecount 1) + linecount) + (let ((c (node-list-first kl))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-000D) + (sosofo-append res + (process-node-list c) + ($line-start$ indent + line-numbers? + (+ linecount 1))) + (sosofo-append res (process-node-list c)))))))))) + +(define ($linespecific-display$ indent line-numbers?) + (make element gi: "P" + attributes: (list (list "CLASS" (gi))) + (make sequence + ($line-start$ indent line-numbers? 1) + (let loop ((kl (children (current-node))) + (linecount 1) + (res (empty-sosofo))) + (if (node-list-empty? kl) + res + (loop + (node-list-rest kl) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + (+ linecount 1) + linecount) + (let ((c (node-list-first kl))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-000D) + (sosofo-append res + (make empty-element gi: "br") + (process-node-list c) + ($line-start$ indent + line-numbers? + (+ linecount 1))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-0020) + (sosofo-append res + (make entity-ref name: "nbsp")) + (sosofo-append res (process-node-list c))))))))))) + +(element literallayout + (if (equal? (attribute-string "class") (normalize "monospaced")) + ($verbatim-display$ + %indent-literallayout-lines% + (or %number-literallayout-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered")))) + ($linespecific-display$ + %indent-literallayout-lines% + (or %number-literallayout-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered")))))) + +(element address + ($linespecific-display$ + %indent-address-lines% + (or %number-address-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element programlisting + ($verbatim-display$ + %indent-programlisting-lines% + (or %number-programlisting-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element screen + ($verbatim-display$ + %indent-screen-lines% + (or %number-screen-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element screenshot (process-children)) +(element screeninfo (empty-sosofo)) + diff --git a/html/docbook.dsl b/html/docbook.dsl new file mode 100644 index 0000000..f7f2828 --- /dev/null +++ b/html/docbook.dsl @@ -0,0 +1,242 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ + +<!ENTITY % dbl10n.ent SYSTEM "../common/dbl10n.ent"> +%dbl10n.ent; + +<!ENTITY dbl10n.dsl SYSTEM "../common/dbl10n.dsl"> + +<!ENTITY dblib.dsl + PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library V2//EN" CDATA DSSSL> + +<!ENTITY dbparam.dsl SYSTEM "dbparam.dsl" CDATA DSSSL> + +<!ENTITY VERSION SYSTEM "../VERSION"> + +<!ENTITY dbcommon.dsl SYSTEM "../common/dbcommon.dsl"> +<!ENTITY dbctable.dsl SYSTEM "../common/dbtable.dsl"> +<!ENTITY dbadmon.dsl SYSTEM "dbadmon.dsl"> +<!ENTITY dbautoc.dsl SYSTEM "dbautoc.dsl"> +<!ENTITY dbbibl.dsl SYSTEM "dbbibl.dsl"> +<!ENTITY dbblock.dsl SYSTEM "dbblock.dsl"> +<!ENTITY dbcallou.dsl SYSTEM "dbcallou.dsl"> +<!ENTITY dbcompon.dsl SYSTEM "dbcompon.dsl"> +<!ENTITY dbdivis.dsl SYSTEM "dbdivis.dsl"> +<!ENTITY dbfootn.dsl SYSTEM "dbfootn.dsl"> +<!ENTITY dbgloss.dsl SYSTEM "dbgloss.dsl"> +<!ENTITY dbgraph.dsl SYSTEM "dbgraph.dsl"> +<!ENTITY dbhtml.dsl SYSTEM "dbhtml.dsl"> +<!ENTITY dbindex.dsl SYSTEM "dbindex.dsl"> +<!ENTITY dbinfo.dsl SYSTEM "dbinfo.dsl"> +<!ENTITY dbinline.dsl SYSTEM "dbinline.dsl"> +<!ENTITY dblink.dsl SYSTEM "dblink.dsl"> +<!ENTITY dblists.dsl SYSTEM "dblists.dsl"> +<!ENTITY dblot.dsl SYSTEM "dblot.dsl"> +<!ENTITY dbmath.dsl SYSTEM "dbmath.dsl"> +<!ENTITY dbmsgset.dsl SYSTEM "dbmsgset.dsl"> +<!ENTITY dbnavig.dsl SYSTEM "dbnavig.dsl"> +<!ENTITY dbchunk.dsl SYSTEM "dbchunk.dsl"> +<!ENTITY dbpi.dsl SYSTEM "dbpi.dsl"> +<!ENTITY dbprocdr.dsl SYSTEM "dbprocdr.dsl"> +<!ENTITY dbqanda.dsl SYSTEM "dbqanda.dsl"> +<!ENTITY dbrfntry.dsl SYSTEM "dbrfntry.dsl"> +<!ENTITY dbsect.dsl SYSTEM "dbsect.dsl"> +<!ENTITY dbsynop.dsl SYSTEM "dbsynop.dsl"> +<!ENTITY dbefsyn.dsl SYSTEM "dbefsyn.dsl"> +<!ENTITY dbtable.dsl SYSTEM "dbtable.dsl"> +<!ENTITY dbtitle.dsl SYSTEM "dbtitle.dsl"> +<!ENTITY dbttlpg.dsl SYSTEM "dbttlpg.dsl"> +<!ENTITY dbverb.dsl SYSTEM "dbverb.dsl"> +<!ENTITY version.dsl SYSTEM "version.dsl"> +]> + +<style-sheet> +<style-specification id="docbook" + use="af bg bs ca cs da de el en es et eu fi fr hu id it ja ko nl nn no pl pt ptbr ro ru sk sl sr sv tr uk xh zhcn zhtw dbparam dblib"> + +<style-specification-body> + +;; $Id: docbook.dsl,v 1.9 2004/10/09 21:36:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(declare-flow-object-class element + "UNREGISTERED::James Clark//Flow Object Class::element") + +(declare-flow-object-class empty-element + "UNREGISTERED::James Clark//Flow Object Class::empty-element") + +(declare-flow-object-class document-type + "UNREGISTERED::James Clark//Flow Object Class::document-type") + +(declare-flow-object-class processing-instruction + "UNREGISTERED::James Clark//Flow Object Class::processing-instruction") + +(declare-flow-object-class entity + "UNREGISTERED::James Clark//Flow Object Class::entity") + +(declare-flow-object-class entity-ref + "UNREGISTERED::James Clark//Flow Object Class::entity-ref") + +(declare-flow-object-class formatting-instruction + "UNREGISTERED::James Clark//Flow Object Class::formatting-instruction") + +(declare-characteristic preserve-sdata? + "UNREGISTERED::James Clark//Characteristic::preserve-sdata?" #t) + +(define debug + (external-procedure "UNREGISTERED::James Clark//Procedure::debug")) + +(define read-entity + (external-procedure "UNREGISTERED::James Clark//Procedure::read-entity")) + +(define all-element-number + (external-procedure "UNREGISTERED::James Clark//Procedure::all-element-number")) + +(root + (make sequence +; (literal +; (debug (node-property 'gi +; (node-property 'document-element (current-node))))) +;(define (docelem node) +; (node-propety 'document-element +; (node-property 'grove-root node))) + (process-children) + (with-mode manifest + (process-children)) + (if html-index + (with-mode htmlindex + (process-children)) + (empty-sosofo)))) + +(mode manifest + ;; this mode is really just a hack to get at the root element + (root (process-children)) + + (default + (if (node-list=? (current-node) (sgml-root-element)) + (if html-manifest + (make entity + system-id: (html-entity-file html-manifest-filename) + (make sequence + (let loop ((node (current-node))) + (if (node-list-empty? node) + (empty-sosofo) + (make sequence + (make formatting-instruction data: (html-file node)) + (make formatting-instruction data: " +") + (loop (next-chunk-element node))))) + (let loop ((nl (select-elements (descendants (current-node)) + (normalize "legalnotice")))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (and %generate-legalnotice-link% + (not nochunks) + (first-sibling? (node-list-first nl)) + ;; Hack: only book legal notices are diverted + (have-ancestor? (normalize "bookinfo") + (node-list-first nl))) + (make sequence + (make formatting-instruction + data: ($legalnotice-link-file$ (node-list-first nl))) + (make formatting-instruction data: " +")) + (empty-sosofo)) + (loop (node-list-rest nl))))))) + (empty-sosofo)) + (empty-sosofo)))) + +;; Make text that comes from unimplemented tags easy to spot +(default + (make element gi: "FONT" + attributes: '(("COLOR" "RED")) + (process-children))) + +&dbcommon.dsl; <!-- Common ("stock") stylesheet functions --> +&dbctable.dsl; <!-- Common stylesheet functions for tables --> + +&dbl10n.dsl; <!-- Stylesheet-local localization --> + +&dbadmon.dsl; <!-- Admonitions --> +&dbautoc.dsl; <!-- Automatic TOC generation --> +&dbbibl.dsl; <!-- Bibliographies --> +&dbblock.dsl; <!-- Miscellaneous block elements --> +&dbcallou.dsl; <!-- Callouts --> +&dbcompon.dsl; <!-- Components; chapter-level elements --> +&dbdivis.dsl; <!-- Divisions; Sets, Books, Articles, Parts --> +&dbfootn.dsl; <!-- Footnotes --> +&dbgloss.dsl; <!-- Glossaries --> +&dbgraph.dsl; <!-- Graphics --> +&dbhtml.dsl; <!-- HTML specific things --> +&dbindex.dsl; <!-- Indexes --> +&dbinfo.dsl; <!-- Infopools (SetInfo, BookInfo, Sect1Info, etc.) --> +&dbinline.dsl; <!-- Inline elements --> +&dblink.dsl; <!-- Links --> +&dblists.dsl; <!-- Lists --> +&dblot.dsl; <!-- Lists of Tables (ToC, LoT, etc.) --> +&dbmath.dsl; <!-- Math (Equations) --> +&dbmsgset.dsl; <!-- MsgSet --> +&dbnavig.dsl; <!-- Navigation --> +&dbchunk.dsl; <!-- Chunking --> +&dbpi.dsl; <!-- HTML PIs (dbhtml) --> +&dbprocdr.dsl; <!-- Procedures --> +&dbqanda.dsl; <!-- QandASet --> +&dbrfntry.dsl; <!-- References and RefEntrys --> +&dbsect.dsl; <!-- Sections --> +&dbsynop.dsl; <!-- Synopsis --> +&dbefsyn.dsl; <!-- ClassSynopsis --> +&dbtable.dsl; <!-- Tables --> +&dbtitle.dsl; <!-- Titles --> +&dbttlpg.dsl; <!-- Title Page --> +&dbverb.dsl; <!-- Verbatim (ProgramListing, LiteralLayout, etc.) --> +&version.dsl; <!-- Version --> + +</style-specification-body> +</style-specification> + +<external-specification id="dbparam" document="dbparam.dsl"> +<external-specification id="dblib" document="dblib.dsl"> + +<external-specification id="af" document="dbl1af"> +<external-specification id="bg" document="dbl1bg"> +<external-specification id="bs" document="dbl1bs"> +<external-specification id="ca" document="dbl1ca"> +<external-specification id="cs" document="dbl1cs"> +<external-specification id="da" document="dbl1da"> +<external-specification id="de" document="dbl1de"> +<external-specification id="el" document="dbl1el"> +<external-specification id="en" document="dbl1en"> +<external-specification id="eu" document="dbl1eu"> +<external-specification id="es" document="dbl1es"> +<external-specification id="et" document="dbl1et"> +<external-specification id="fi" document="dbl1fi"> +<external-specification id="fr" document="dbl1fr"> +<external-specification id="hu" document="dbl1hu"> +<external-specification id="id" document="dbl1id"> +<external-specification id="it" document="dbl1it"> +<external-specification id="ja" document="dbl1ja"> +<external-specification id="ko" document="dbl1ko"> +<external-specification id="nl" document="dbl1nl"> +<external-specification id="nn" document="dbl1nn"> +<external-specification id="no" document="dbl1no"> +<external-specification id="pl" document="dbl1pl"> +<external-specification id="pt" document="dbl1pt"> +<external-specification id="ptbr" document="dbl1ptbr"> +<external-specification id="ro" document="dbl1ro"> +<external-specification id="ru" document="dbl1ru"> +<external-specification id="sk" document="dbl1sk"> +<external-specification id="sl" document="dbl1sl"> +<external-specification id="sr" document="dbl1sr"> +<external-specification id="sv" document="dbl1sv"> +<external-specification id="tr" document="dbl1tr"> +<external-specification id="uk" document="dbl1uk"> +<external-specification id="xh" document="dbl1xh"> +<external-specification id="zhcn" document="dbl1zhcn"> +<external-specification id="zhtw" document="dbl1zhtw"> + +</style-sheet> + + diff --git a/html/version.dsl b/html/version.dsl new file mode 100644 index 0000000..e6186f6 --- /dev/null +++ b/html/version.dsl @@ -0,0 +1,14 @@ +;; $Id: version.dsl,v 1.2 2004/07/11 06:21:01 nyraghu Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://www.nwalsh.com/docbook/dsssl/ +;; + +;; If **ANY** change is made to this file, you _MUST_ alter the +;; following definition: + +(define (stylesheet-version) + (string-append + "Modular DocBook HTML Stylesheet Version " + ;; Trim off bounding white space. + (strip "&VERSION;"))) diff --git a/images/ChangeLog b/images/ChangeLog new file mode 100644 index 0000000..ec6bbfc --- /dev/null +++ b/images/ChangeLog @@ -0,0 +1,13 @@ +2001-12-06 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Make.images, Makefile: image converstion make improvements; if you want to tweak the image conversion stuff, do that in Make.images and that will affect the subdirs too; also, a clean rule + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, Makefile: New file. + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * caution.gif, home.gif, important.gif, next.gif, note.gif, prev.gif, tip.gif, toc-blank.gif, toc-minus.gif, toc-plus.gif, up.gif, warning.gif: + New file. + diff --git a/images/Make.images b/images/Make.images new file mode 100644 index 0000000..277a2d5 --- /dev/null +++ b/images/Make.images @@ -0,0 +1,10 @@ +GIF := $(wildcard *.gif) +EPS := $(GIF:.gif=.eps) +PDF := $(GIF:.gif=.pdf) + +%.eps: %.gif + convert $< $@ + +%.pdf: %.eps + epstopdf --outfile=$@ $< + diff --git a/images/callouts/1.eps b/images/callouts/1.eps new file mode 100644 index 0000000..dc21230 --- /dev/null +++ b/images/callouts/1.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (1.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFF794391010399CF7FFFFFFE73100000829000031E7FFF7310000008CCE00000031 +F78C00004AE7F7CE000000008C3100000000A5CE000000003108000000009CCE00000000 +0808000000009CCE000000000831000000009CCE00000000318C000000009CCE00000000 +8CF7310000008CB500000031F7FFE72900000000000031E7FFFFFFF78C3108083994F7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/1.gif b/images/callouts/1.gif Binary files differnew file mode 100644 index 0000000..9ee74a0 --- /dev/null +++ b/images/callouts/1.gif diff --git a/images/callouts/1.pdf b/images/callouts/1.pdf Binary files differnew file mode 100644 index 0000000..738102d --- /dev/null +++ b/images/callouts/1.pdf diff --git a/images/callouts/10.eps b/images/callouts/10.eps new file mode 100644 index 0000000..2216376 --- /dev/null +++ b/images/callouts/10.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (10.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFF9C391810398CF7FFFFFFEF3910180008291031DEFFFF3908B5B529DEBDE75229 +F7A521EFFFB5B5B50073DE008C4A0008CEB5D6730031FF2131180000CEB5F7630018FF39 +08180000CEB5EF630021FF39004A0000CEB5CE840039FF1831A50000CEB58CD61094CE00 +8CFF3900BD9C10BDF7D63129F7FFEF3900000000080029DEFFFFFFFF943908082994F7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/10.gif b/images/callouts/10.gif Binary files differnew file mode 100644 index 0000000..08a248e --- /dev/null +++ b/images/callouts/10.gif diff --git a/images/callouts/10.pdf b/images/callouts/10.pdf Binary files differnew file mode 100644 index 0000000..c579840 --- /dev/null +++ b/images/callouts/10.pdf diff --git a/images/callouts/2.eps b/images/callouts/2.eps new file mode 100644 index 0000000..9b55ba4 --- /dev/null +++ b/images/callouts/2.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (2.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFF794391010399CF7FFFFFFE73100002921000031E7FFF7310021D6E7EFC6100031 +F78C0000A5D60021F78C00008C3100008C7B0000DEB500003108000000000031F7730000 +0808000000004AE7B508000008310000008CF77B00000000318C00006BF7633131180000 +8CF731009CE7E7E7E77B0031F7FFE73100000000000031E7FFFFFFF78C3108083994F7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/2.gif b/images/callouts/2.gif Binary files differnew file mode 100644 index 0000000..b2e589a --- /dev/null +++ b/images/callouts/2.gif diff --git a/images/callouts/2.pdf b/images/callouts/2.pdf Binary files differnew file mode 100644 index 0000000..3d84950 --- /dev/null +++ b/images/callouts/2.pdf diff --git a/images/callouts/3.eps b/images/callouts/3.eps new file mode 100644 index 0000000..01cbf4f --- /dev/null +++ b/images/callouts/3.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (3.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFF794391010399CF7FFFFFFE73100083939080031E7FFF7310010DED6DECE100031 +F78C000073E70810FF6B00008C31000010290010FF6B0000310800000000ADE7D6080000 +0808000000003963F76B0000083100005A8C0000CEB50000318C00008CEF3139EF840000 +8CF7310010ADF7F7AD080031F7FFE72900000800000031E7FFFFFFF78C3108103194F7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/3.gif b/images/callouts/3.gif Binary files differnew file mode 100644 index 0000000..d2bf185 --- /dev/null +++ b/images/callouts/3.gif diff --git a/images/callouts/3.pdf b/images/callouts/3.pdf Binary files differnew file mode 100644 index 0000000..63642c0 --- /dev/null +++ b/images/callouts/3.pdf diff --git a/images/callouts/4.eps b/images/callouts/4.eps new file mode 100644 index 0000000..b53d038 --- /dev/null +++ b/images/callouts/4.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (4.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFFAD5229294AA5FFFFFFFFF74A00000029100039E7FFFF4A0000004AFF73000039 +F7AD00000010E7FF73000000944A000000ADA5EF73000000311800005AE710F773000000 +08180021EF7329F78C180000084A0063FFFFFFFFFFA5000031A50000000000F773000000 +8CF73900000000DE6B000029F7FFEF3900000000000029DEFFFFFFF79C311008318CF7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/4.gif b/images/callouts/4.gif Binary files differnew file mode 100644 index 0000000..a0f99af --- /dev/null +++ b/images/callouts/4.gif diff --git a/images/callouts/4.pdf b/images/callouts/4.pdf Binary files differnew file mode 100644 index 0000000..6579b82 --- /dev/null +++ b/images/callouts/4.pdf diff --git a/images/callouts/5.eps b/images/callouts/5.eps new file mode 100644 index 0000000..28c3753 --- /dev/null +++ b/images/callouts/5.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (5.eps) +%%CreationDate: (Fri Nov 5 11:45:40 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFF9C391810398CF7FFFFFFEF3908292921290831DEFFFF390039FFEFEFEF4A0029 +F7A5000039FF0800000000008C4A000039FFADCE840800003118000039FF844AE79C0000 +08180000218400008CEF0000084A0000105A000094E7000031A5000031FF4A21DE940000 +8CFF39000084EFF7A5100029F7FFEF3900000808000029DEFFFFFFFF94390808318CF7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/5.gif b/images/callouts/5.gif Binary files differnew file mode 100644 index 0000000..6c5b373 --- /dev/null +++ b/images/callouts/5.gif diff --git a/images/callouts/5.pdf b/images/callouts/5.pdf Binary files differnew file mode 100644 index 0000000..7497d8d --- /dev/null +++ b/images/callouts/5.pdf diff --git a/images/callouts/6.eps b/images/callouts/6.eps new file mode 100644 index 0000000..c0d4341 --- /dev/null +++ b/images/callouts/6.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (6.eps) +%%CreationDate: (Fri Nov 5 11:45:41 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFFAD5229294AA5FFFFFFFFF74A00001829000039E7FFFF4A0000A5EFE7C6080039 +F7AD000073EF1818EF390000944A0000C6A529390800000031180000E7EFCECECE100000 +08180000DECE0008EF730000084A0000BDA50000CE84000031A500006BEF2121F74A0000 +8CF739000094F7F784000029F7FFEF3900000808000029DEFFFFFFF79C390808318CF7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/6.gif b/images/callouts/6.gif Binary files differnew file mode 100644 index 0000000..4eed904 --- /dev/null +++ b/images/callouts/6.gif diff --git a/images/callouts/6.pdf b/images/callouts/6.pdf Binary files differnew file mode 100644 index 0000000..9e09a3e --- /dev/null +++ b/images/callouts/6.pdf diff --git a/images/callouts/7.eps b/images/callouts/7.eps new file mode 100644 index 0000000..e438204 --- /dev/null +++ b/images/callouts/7.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (7.eps) +%%CreationDate: (Fri Nov 5 11:45:41 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFFB55229294AADF7FFFFFFF75210181018101039E7FFFF5A00ADFFFFFFFFD60031 +F7BD000000000018E75A0000945A0000000000B5BD00000039310000000052F731000000 +083100000000D6B500000000085A00000039FF520000000031B50000008CF70800000000 +8CFF4A0000B5B50000000029F7FFEF4200000000000029E7FFFFFFFF9C390808298CF7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/7.gif b/images/callouts/7.gif Binary files differnew file mode 100644 index 0000000..6ffb734 --- /dev/null +++ b/images/callouts/7.gif diff --git a/images/callouts/7.pdf b/images/callouts/7.pdf Binary files differnew file mode 100644 index 0000000..78efe1b --- /dev/null +++ b/images/callouts/7.pdf diff --git a/images/callouts/8.eps b/images/callouts/8.eps new file mode 100644 index 0000000..890d446 --- /dev/null +++ b/images/callouts/8.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (8.eps) +%%CreationDate: (Fri Nov 5 11:45:41 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFFAD52292152A5FFFFFFFFEF4A00001021000039E7FFFF420000A5DED6BD100031 +F7A500004AF71000E7730000944A000042F71008EF6B00003118000000B5E7DED6080000 +081800005AF7524AEF6B0000084A0000A5BD0000ADBD000031A5000073EF2921E7840000 +94FF42000894E7EF94080031F7FFEF4A00000000000039EFFFFFFFFFA54A212142A5FFFF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/8.gif b/images/callouts/8.gif Binary files differnew file mode 100644 index 0000000..dbe8ef0 --- /dev/null +++ b/images/callouts/8.gif diff --git a/images/callouts/8.pdf b/images/callouts/8.pdf Binary files differnew file mode 100644 index 0000000..ad5d6f3 --- /dev/null +++ b/images/callouts/8.pdf diff --git a/images/callouts/9.eps b/images/callouts/9.eps new file mode 100644 index 0000000..9a6e50e --- /dev/null +++ b/images/callouts/9.eps @@ -0,0 +1,284 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (9.eps) +%%CreationDate: (Fri Nov 5 11:45:41 2004) +%%BoundingBox: 0 0 12 12 +%%HiResBoundingBox: 0 0 12 12 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 12 12 +userdict begin +DisplayImage +0 0 +12 12 +12.000000 +12 12 +1 +1 +1 +8 +FFFFFFAD52292152ADF7FFFFFFF74200001010000039EFFFFF4A0008ADD6E7A5000039 +F7AD000073DE0818F75A0000944A0000A5AD0000D6A50000391800007BDE0818F7BD0000 +0818000010BDEFE7E7B500000842000000080808D694000031A5000042F7214AFF390000 +8CF7390000ADFFEF6B000029F7FFEF3100000800000031DEFFFFFFFF94311008318CF7FF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/callouts/9.gif b/images/callouts/9.gif Binary files differnew file mode 100644 index 0000000..36038c6 --- /dev/null +++ b/images/callouts/9.gif diff --git a/images/callouts/9.pdf b/images/callouts/9.pdf Binary files differnew file mode 100644 index 0000000..756251c --- /dev/null +++ b/images/callouts/9.pdf diff --git a/images/callouts/ChangeLog b/images/callouts/ChangeLog new file mode 100644 index 0000000..6e52466 --- /dev/null +++ b/images/callouts/ChangeLog @@ -0,0 +1,13 @@ +2001-12-06 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: image converstion make improvements; if you want to tweak the image conversion stuff, do that in Make.images and that will affect the subdirs too; also, a clean rule + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, Makefile: New file. + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * 1.gif, 10.gif, 2.gif, 3.gif, 4.gif, 5.gif, 6.gif, 7.gif, 8.gif, 9.gif: + New file. + diff --git a/images/caution.eps b/images/caution.eps new file mode 100644 index 0000000..3f4b400 --- /dev/null +++ b/images/caution.eps @@ -0,0 +1,553 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (caution.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 24 24 +%%HiResBoundingBox: 0 0 24 24 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 24 24 +userdict begin +DisplayImage +0 0 +24 24 +12.000000 +24 24 +1 +0 +0 +256 +000000 +080800 +101000 +181800 +212100 +313100 +424200 +5A5A00 +636300 +6B6B00 +737300 +7B7B00 +848400 +848473 +8C8C00 +8C8C73 +8C8C8C +949400 +949473 +94947B +9C9C00 +9C9C73 +9C9C7B +9C9C94 +9C9C9C +A5A500 +A5A563 +A5A59C +A5A5A5 +B5B500 +B5B55A +B5B563 +B5B5B5 +BDBD00 +BDBD63 +CECE00 +CECECE +D6D600 +D6D6CE +D6D6D6 +DEDE00 +DEDE31 +DEDE39 +DEDE42 +E7E700 +E7E731 +E7E739 +E7E7E7 +EFEF00 +EFEFEF +F7F700 +F7F710 +F7F718 +F7F731 +F7F7F7 +FFFF00 +FFFF10 +FFFF18 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A +2F313A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A240D1B313A3A3A3A3A3A3A3A3A +3A3A3A3A3A3A3A3A3A3A24122B1E17313A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A2F0D2B +32341F1C313A3A3A3A3A3A3A3A3A3A3A3A3A3A3A240D35323232321F1B313A3A3A3A3A3A +3A3A3A3A3A3A3A24122A32322C3032341E1C313A3A3A3A3A3A3A3A3A3A3A24132A32321D +05082C32381E1C313A3A3A3A3A3A3A3A3A24122E3232320A00031D3232381E18313A3A3A +3A3A3A3A2F0D2B323232320A00031D323232341F1C313A3A3A3A3A240D35323232323214 +02052532323232321F1B313A3A3A24122A3232323232321D02062C3232323232341E1C31 +3A2F0D2B323232323232322303072C323232323232341A203A311C1E343232323232322C +0309303232323232322A13243A3A311B1F3232323232322C080E3232323232322D12243A +3A3A3A311C1F3432323232250B112C323232322D10243A3A3A3A3A3A311B1E383232320C +0004213232322A12243A3A3A3A3A3A3A3A311C1E3832321904062532322E16243A3A3A3A +3A3A3A3A3A3A311C1E343232252C32322A16243A3A3A3A3A3A3A3A3A3A3A3A311B1F3232 +3232322D12243A3A3A3A3A3A3A3A3A3A3A3A3A3A311C1F3432322D10243A3A3A3A3A3A3A +3A3A3A3A3A3A3A3A3A311B1E382A12243A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A311C +1A13243A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3120243A3A3A3A3A3A3A3A3A3A + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/caution.gif b/images/caution.gif Binary files differnew file mode 100644 index 0000000..9cc2e15 --- /dev/null +++ b/images/caution.gif diff --git a/images/caution.pdf b/images/caution.pdf Binary files differnew file mode 100644 index 0000000..95ee6fa --- /dev/null +++ b/images/caution.pdf diff --git a/images/home.eps b/images/home.eps new file mode 100644 index 0000000..8fcd3ef --- /dev/null +++ b/images/home.eps @@ -0,0 +1,551 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (home.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 35 15 +%%HiResBoundingBox: 0 0 35 15 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 35 15 +userdict begin +DisplayImage +0 0 +35 15 +12.000000 +35 15 +1 +0 +0 +256 +108C10 +218C21 +299429 +319C31 +429C42 +4AA54A +63AD63 +73BD73 +84BD84 +8CC68C +94CE94 +A5CEA5 +B5DEB5 +C6DEC6 +CEE7CE +D6EFD6 +E7EFE7 +EFF7EF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +121212121212121212121212121212121212121212121212121212121212121212121212 +121212121212121212121212121212121212121212121212121212121212121212121212 +121212121212121212121212121212121212121212121212121212121212121212121210 +0C0D0E120E0D0C1012121212121212121212121212121212121212121212121212121206 +021212110207121212121212121212121212121212121212121212121212121212120804 +12121204081212120E0E1212120E110E0E12100C121212110C1112121212121212080412 +121204081212040B0B0312100105080008070208120F040D031012121212121208010808 +080108120C061212060B12040C120808120C0412070C1208091212121212120804121212 +04081208081212080812040C120808120D0412040608080C121212121212080412121204 +08120B071212070B12040C120808120C0412060B12121212121212121207021112120207 +1210040F10041012020C120707120C02120D0211100A1212121212100C0D0E120E0D0C10 +1210090910120F0D0C110C0D100D0C10120D080B12121212121212121212121212121212 +121212121212121212121212121212121212121212121212121212121212121212121212 +121212121212121212121212121212121212121212121212121212121212121212121212 +121212121212121212121212121212121212121212 +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/home.gif b/images/home.gif Binary files differnew file mode 100644 index 0000000..55e1d59 --- /dev/null +++ b/images/home.gif diff --git a/images/home.pdf b/images/home.pdf Binary files differnew file mode 100644 index 0000000..3fc4ca9 --- /dev/null +++ b/images/home.pdf diff --git a/images/important.eps b/images/important.eps new file mode 100644 index 0000000..61e6fb7 --- /dev/null +++ b/images/important.eps @@ -0,0 +1,553 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (important.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 24 24 +%%HiResBoundingBox: 0 0 24 24 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 24 24 +userdict begin +DisplayImage +0 0 +24 24 +12.000000 +24 24 +1 +0 +0 +256 +000000 +080808 +101010 +181818 +292929 +393939 +424231 +424242 +4A4A4A +525252 +5A5A29 +636318 +636352 +636363 +6B6B42 +6B6B6B +737352 +7B7B7B +848484 +8C8C18 +8C8C39 +8C8C7B +8C8C8C +94945A +94948C +949494 +9C9C5A +9C9C63 +9C9C7B +9C9C9C +A5A563 +A5A584 +A5A594 +A5A59C +A5A5A5 +ADAD21 +ADAD39 +ADAD6B +ADAD7B +ADAD84 +ADAD8C +ADADA5 +ADADAD +B5B54A +B5B552 +B5B58C +B5B5B5 +BDBD08 +BDBD5A +BDBD84 +BDBD9C +BDBDBD +C6C608 +C6C65A +C6C6C6 +CECE73 +CECECE +D6D618 +D6D652 +D6D663 +D6D66B +D6D6D6 +DEDE00 +DEDE21 +DEDE31 +DEDE39 +DEDE52 +DEDEDE +E7E708 +E7E721 +E7E729 +E7E731 +E7E75A +E7E763 +E7E77B +E7E7E7 +EFEF00 +EFEF10 +EFEF31 +EFEF42 +EFEFEF +F7F710 +F7F718 +F7F731 +F7F739 +F7F74A +F7F7F7 +FFFF00 +FFFF08 +FFFF10 +FFFF21 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +5B5B5B5B5B5B5B5B5B5B4B4B4B4B4B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B4B36221922 +2222192238565B5B5B5B5B5B5B5B5B5B5B5633161F404D4D4D4D4D321C16385B5B5B5B5B +5B5B5B5B4B191E495757575757575757573A1A22565B5B5B5B5B5B5619314D5757575757 +5757575757574D262E5B5B5B5B5B56193157575757574C14103E5757575757571B2E5B5B +5B5B38254D57575757571400000A4D57575757574D1E435B5B4B21495757575757570D00 +0005405757575757573A295B5B382857575757575757120000094E575757575757571C4B +5B2241575757575757572300000B595757575757575728384B224D575757575757572F02 +0013575757575757575744194B224D575757575757573904022457575757575757574419 +4B224D575757575757573F05022B575757575757575744194B224D575757575757574607 +033B575757575757575744194B224D575757575757574F160F4A57575757575757574422 +5B2E405757575757575747141039595757575757575728385B3D1F575757575757571100 +0009475757575757574F204B5B56213A575757575757100000063F575757575758302E5B +5B5B3D1E4D57575757573E0E0C2F5757575757573C22505B5B5B5B22265757575757575A +4E5757575757575716385B5B5B5B5B5B221B4D57575757575757575757583C12385B5B5B +5B5B5B5B5B221A354F575757575757574F2C19365B5B5B5B5B5B5B5B5B5B3D2215284444 +4444371C152A4B5B5B5B5B5B5B5B5B5B5B5B5B5B4B361919191922384B5B5B5B5B5B5B5B + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/important.gif b/images/important.gif Binary files differnew file mode 100644 index 0000000..25e40c7 --- /dev/null +++ b/images/important.gif diff --git a/images/important.pdf b/images/important.pdf Binary files differnew file mode 100644 index 0000000..7f68994 --- /dev/null +++ b/images/important.pdf diff --git a/images/next.eps b/images/next.eps new file mode 100644 index 0000000..ab7f37b --- /dev/null +++ b/images/next.eps @@ -0,0 +1,551 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (next.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 35 15 +%%HiResBoundingBox: 0 0 35 15 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 35 15 +userdict begin +DisplayImage +0 0 +35 15 +12.000000 +35 15 +1 +0 +0 +256 +008400 +108C10 +218C21 +299429 +319C31 +429C42 +4AA54A +52AD52 +63AD63 +6BB56B +84BD84 +8CC68C +94CE94 +A5CEA5 +ADD6AD +B5DEB5 +C6DEC6 +CEE7CE +D6EFD6 +E7EFE7 +EFF7EF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +151515151515151515151515151515151515151515151515151515151515151515151515 +151515151515151515151515151515151515151515151515151515151515151515151515 +151515151515151515151515151515151515151515151515151515151515151515151515 +1515100F13151512100F1315151515151515151515151515151515151515151515151515 +151204011315150A0A151515151515151515151515091115151515151515151515151515 +150A040415150F1015151210151515151515151505101515151515151515151515151515 +0A13020915100F150F070F0413070115080C0D02070D151515151515151515151515150A +1511010E0F1015041315051115040A0A1515051015151515151515151515151515150A15 +150E010C1015000A0A0A12151000101515051015151515151515151515151515150A1515 +15070010150212151515150A0A0415150510151515151515151515151515151306101515 +15040F150A071512100E0F15040B15050A1115151515151515151515151511100F131515 +131315150D0A1013101113100F13110A1015151515151515151515151515151515151515 +151515151515151515151515151515151515151515151515151515151515151515151515 +151515151515151515151515151515151515151515151515151515151515151515151515 +151515151515151515151515151515151515151515 +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/next.gif b/images/next.gif Binary files differnew file mode 100644 index 0000000..8c502e7 --- /dev/null +++ b/images/next.gif diff --git a/images/next.pdf b/images/next.pdf Binary files differnew file mode 100644 index 0000000..3a36b0a --- /dev/null +++ b/images/next.pdf diff --git a/images/note.eps b/images/note.eps new file mode 100644 index 0000000..8676af6 --- /dev/null +++ b/images/note.eps @@ -0,0 +1,296 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (note.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 24 24 +%%HiResBoundingBox: 0 0 24 24 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 24 24 +userdict begin +DisplayImage +0 0 +24 24 +12.000000 +24 24 +1 +1 +1 +8 +FFFFFFFFFFFFFFFFFFFFE7E7E7E7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDA594 +A5A5A594A5CEFFFFFFFFFFFFFFFFFFFFFFFFEFC68CA5D6E7EFEFEFE7C69494CEFFFFFFFF +FFFFFFFFFFE794A5DEFFFFFFFFFFFFFFFFFFCE94B5FFFFFFFFFFFFFFEFA5B5FFFFFFFFFF +FFFFFFFFFFFFFFEFA5BDFFFFFFFFFFEF94BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94BDFF +FFFFFFCEA5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFA5DEFFFFFFA5DEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFCEA5FFFFCEA5FFFFFFFFFFC6BDB5BDB5BDDEE7E7E7E7E7FFFFA5 +E7FFA5DEEFD6D6A58CB5CEDED6CE8C84A5A5A5A59494E7B5CEE7A5E79494B5CEFFFFE7CE +94C6CE73BDDEDEDED694CEDE94E7A5D694E7FFFFFFEF94635A4A527B94BDB5B5BDC6EFE7 +94DEA5D694E7FFFFFFBD7BCEDEDEA594FFEFFFEFFFFFFFDE94E7A5DE8CE7FFFFEF947394 +B5BD8CA5FFFFFFFFFFFFFFE794E7A5DE947BA5EFEF6B7BD6CEC67BDEFFFFFFFFFFFFFFE7 +A5FFB5D6FFFFB594CE6BBD8C7363BDFFFFFFFFFFFFFFFFA5CEFFD6A5FFFFEFC67B527394 +84C6FFFFFFFFFFFFFFFFEFA5EFFFFFA5CEFFFFFFDEE7DEE7DEFFFFFFFFFFFFFFFFFFBDBD +FFFFFFD6A5E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCEA5EFFFFFFFFFB5A5FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF8CCEFFFFFFFFFFFFBD94EFFFFFFFFFFFFFFFFFFFFFFFCE8CCEFFFF +FFFFFFFFFFFFB594C6EFFFFFFFFFFFFFFFE7B594C6FFFFFFFFFFFFFFFFFFFFD6A58CA5DE +DEE7DECEA58CB5E7FFFFFFFFFFFFFFFFFFFFFFFFFFDECE94949494A5CEEFFFFFFFFFFFFF +FFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/note.gif b/images/note.gif Binary files differnew file mode 100644 index 0000000..7322e8e --- /dev/null +++ b/images/note.gif diff --git a/images/note.pdf b/images/note.pdf Binary files differnew file mode 100644 index 0000000..796e43e --- /dev/null +++ b/images/note.pdf diff --git a/images/prev.eps b/images/prev.eps new file mode 100644 index 0000000..66d6904 --- /dev/null +++ b/images/prev.eps @@ -0,0 +1,551 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (prev.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 35 15 +%%HiResBoundingBox: 0 0 35 15 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 35 15 +userdict begin +DisplayImage +0 0 +35 15 +12.000000 +35 15 +1 +0 +0 +256 +008400 +108C10 +218C21 +299429 +319C31 +429C42 +4AA54A +52AD52 +6BB56B +73BD73 +84BD84 +8CC68C +94CE94 +A5CEA5 +ADD6AD +C6DEC6 +CEE7CE +D6EFD6 +E7EFE7 +EFF7EF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +141414141414141414141414141414141414141414141414141414141414141414141414 +141414141414141414141414141414141414141414141414141414141414141414141414 +141414141414141414141414141414141414141414141414141414141414141414141414 +141414120F0F0F0F14141414141414141414141414141414141414141414141414141414 +14141409030F090212141414141414141414141414141414141414141414141414141414 +14140A051414030A140F140F141410101414141414141414141414141414141414141414 +140A051414020C10000A030F080C0A081202091410061214141414141414141414141414 +0A020A060A14140014121203141401140D06140D1214141414141414141414141414140A +0514141414140014140F020A0A0A141401120A1414141414141414141414141414140A05 +14141414140014141202141414141409070F141414141414141414141414141414090314 +1414141200121414040D140F12141202141414141414141414141414141414120F0F1014 +1414100F0F1414120B0A1213141410141414141414141414141414141414141414141414 +141414141414141414141414141414141414141414141414141414141414141414141414 +141414141414141414141414141414141414141414141414141414141414141414141414 +141414141414141414141414141414141414141414 +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/prev.gif b/images/prev.gif Binary files differnew file mode 100644 index 0000000..0894d9e --- /dev/null +++ b/images/prev.gif diff --git a/images/prev.pdf b/images/prev.pdf Binary files differnew file mode 100644 index 0000000..faf3cca --- /dev/null +++ b/images/prev.pdf diff --git a/images/tip.eps b/images/tip.eps new file mode 100644 index 0000000..7224745 --- /dev/null +++ b/images/tip.eps @@ -0,0 +1,296 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (tip.eps) +%%CreationDate: (Fri Nov 5 11:45:35 2004) +%%BoundingBox: 0 0 25 24 +%%HiResBoundingBox: 0 0 25 24 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 25 24 +userdict begin +DisplayImage +0 0 +25 24 +12.000000 +25 24 +1 +1 +1 +8 +FFFFFFFFFFFFFFFFFFFFE7E7E7E7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C6A5 +94A5A5A594A5CEF7FFFFFFFFFFFFFFFFFFFFFFFFF7BD94A5CEE7F7E7F7E7C69494CEFFFF +FFFFFFFFFFFFFFFFE794A5DEFFFFFFFFFFFFFFFFFFCE94A5FFFFFFFFFFFFFFFFF794BDF7 +FFFFFFFFFFFFFFFFFFFFFFE7A5B5FFFFFFFFFFFFF794BDFFFFFFFFFFFFE7A5E7FFFFFFFF +FFFF94BDFFFFFFFFFFCEA5F7FFFFFFFFFFF77B216BE7FFFFFFFFFFE7A5DEFFFFFFE7A5E7 +FFFFFFFFFFFFF773105AE7FFFFFFFFFFFFCEA5FFFFFFCEB5FFFFFFFFFFFFFFFFDEA5DEFF +FFFFFFFFFFFFF794E7FFFFA5DEFFFFFFFFFFFFFF8C7B7BB5FFFFFFFFFFFFFFFFB5CEFFE7 +A5F7FFFFFFFFFFFFFF2100006BF7FFFFFFFFFFFFFFE794FFE7A5F7FFFFFFFFFFFFFF9439 +006BF7FFFFFFFFFFFFFFE794FFE7A5E7FFFFFFFFFFFFFFF763006BF7FFFFFFFFFFFFFFE7 +94FFE7A5F7FFFFFFFFFFFFFFF763006BF7FFFFFFFFFFFFFFE794FFE7A5E7FFFFFFFFFFFF +FFF763006BF7FFFFFFFFFFFFFFDE94FFFFB5CEFFFFFFFFFFFFFFF763006BF7FFFFFFFFFF +FFFFA5CEFFFFDEA5FFFFFFFFFFFFFFF763006BF7FFFFFFFFFFFFE7A5E7FFFFF7A5CEFFFF +FFFFFFFFF763006BF7FFFFFFFFFFFFBDBDFFFFFFFFDEA5E7FFFFFFFFFFF773217BF7FFFF +FFFFFFCEA5E7FFFFFFFFFFA5A5FFFFFFFFFFFFDEC6CEFFFFFFFFFFFF8CCEFFFFFFFFFFFF +FFB594E7FFFFFFFFFFFFFFFFFFFFFFCE8CCEFFFFFFFFFFFFFFFFFFA594C6F7FFFFFFFFFF +FFFFE7B594C6FFFFFFFFFFFFFFFFFFFFFFDE948CA5DEE7E7E7CE9494A5E7FFFFFFFFFFFF +FFFFFFFFFFFFFFFFE7CE94949494A5CEE7FFFFFFFFFFFFFFFFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/tip.gif b/images/tip.gif Binary files differnew file mode 100644 index 0000000..f062955 --- /dev/null +++ b/images/tip.gif diff --git a/images/tip.pdf b/images/tip.pdf Binary files differnew file mode 100644 index 0000000..9daad9a --- /dev/null +++ b/images/tip.pdf diff --git a/images/toc-blank.eps b/images/toc-blank.eps new file mode 100644 index 0000000..aa64e59 --- /dev/null +++ b/images/toc-blank.eps @@ -0,0 +1,300 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (toc-blank.eps) +%%CreationDate: (Fri Nov 5 11:45:36 2004) +%%BoundingBox: 0 0 15 9 +%%HiResBoundingBox: 0 0 15 9 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 15 9 +userdict begin +DisplayImage +0 0 +15 9 +12.000000 +15 9 +1 +0 +0 +16 +000000 +800000 +008000 +808000 +000080 +800080 +008080 +C0C0C0 +808080 +FF0000 +00FF00 +FFFF00 +0000FF +FF00FF +00FFFF +FFFFFF +0F0F0F0F080F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F080F +0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F080F080F080F080F +080F080F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F080F0F0F0F0F0F0F0F0F0F0F0F0F +0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F080F0F0F0F0F0F0F0F0F0F +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/toc-blank.gif b/images/toc-blank.gif Binary files differnew file mode 100644 index 0000000..6c65e3a --- /dev/null +++ b/images/toc-blank.gif diff --git a/images/toc-blank.pdf b/images/toc-blank.pdf Binary files differnew file mode 100644 index 0000000..da88652 --- /dev/null +++ b/images/toc-blank.pdf diff --git a/images/toc-minus.eps b/images/toc-minus.eps new file mode 100644 index 0000000..81f82d0 --- /dev/null +++ b/images/toc-minus.eps @@ -0,0 +1,283 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (toc-minus.eps) +%%CreationDate: (Fri Nov 5 11:45:36 2004) +%%BoundingBox: 0 0 15 9 +%%HiResBoundingBox: 0 0 15 9 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 15 9 +userdict begin +DisplayImage +0 0 +15 9 +12.000000 +15 9 +1 +1 +1 +8 +848484848484848484FFFFFFFFFFFF84FFFFFFFFFFFFFF84FFFFFFFFFFFF84FFFFFFFF +FFFFFF84FFFFFFFFFFFF84FFFFFFFFFFFFFF84FFFFFFFFFFFF84FF0000000000FF84FF84 +FF84FF8484FFFFFFFFFFFFFF84FFFFFFFFFFFF84FFFFFFFFFFFFFF84FFFFFFFFFFFF84FF +FFFFFFFFFFFF84FFFFFFFFFFFF848484848484848484FFFFFFFFFFFFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/toc-minus.gif b/images/toc-minus.gif Binary files differnew file mode 100644 index 0000000..40ebe61 --- /dev/null +++ b/images/toc-minus.gif diff --git a/images/toc-minus.pdf b/images/toc-minus.pdf Binary files differnew file mode 100644 index 0000000..9aa2dd6 --- /dev/null +++ b/images/toc-minus.pdf diff --git a/images/toc-plus.eps b/images/toc-plus.eps new file mode 100644 index 0000000..05df6df --- /dev/null +++ b/images/toc-plus.eps @@ -0,0 +1,283 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (toc-plus.eps) +%%CreationDate: (Fri Nov 5 11:45:36 2004) +%%BoundingBox: 0 0 15 9 +%%HiResBoundingBox: 0 0 15 9 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 15 9 +userdict begin +DisplayImage +0 0 +15 9 +12.000000 +15 9 +1 +1 +1 +8 +848484848484848484FFFFFFFFFFFF84FFFFFFFFFFFFFF84FFFFFFFFFFFF84FFFFFF00 +FFFFFF84FFFFFFFFFFFF84FFFFFF00FFFFFF84FFFFFFFFFFFF84FF0000000000FF84FF84 +FF84FF8484FFFFFF00FFFFFF84FFFFFFFFFFFF84FFFFFF00FFFFFF84FFFFFFFFFFFF84FF +FFFFFFFFFFFF84FFFFFFFFFFFF848484848484848484FFFFFFFFFFFFend +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/toc-plus.gif b/images/toc-plus.gif Binary files differnew file mode 100644 index 0000000..3e9e7d5 --- /dev/null +++ b/images/toc-plus.gif diff --git a/images/toc-plus.pdf b/images/toc-plus.pdf Binary files differnew file mode 100644 index 0000000..46f5c8b --- /dev/null +++ b/images/toc-plus.pdf diff --git a/images/up.eps b/images/up.eps new file mode 100644 index 0000000..e0fd951 --- /dev/null +++ b/images/up.eps @@ -0,0 +1,551 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (up.eps) +%%CreationDate: (Fri Nov 5 11:45:36 2004) +%%BoundingBox: 0 0 35 15 +%%HiResBoundingBox: 0 0 35 15 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 35 15 +userdict begin +DisplayImage +0 0 +35 15 +12.000000 +35 15 +1 +0 +0 +256 +008400 +108C10 +218C21 +299429 +319C31 +429C42 +63AD63 +6BB56B +84BD84 +8CC68C +94CE94 +B5DEB5 +C6DEC6 +CEE7CE +D6EFD6 +E7EFE7 +EFF7EF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +111111111111111111111111111111111111111111111111111111111111111111111111 +111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111110F0B0C0D110D0C0B10111111111111111111111111111111111111 +1111111111111111110603111110040E1111111111111111111111111111111111111111 +111111111111111108051111110811110E0F0D0F11111111111111111111111111111111 +11111111111111080511111108110E05060B050B11111111111111111111111111111111 +11111111111108051111110811110808110F021111111111111111111111111111111111 +111111111108051111110811110808111100111111111111111111111111111111111111 +1111111108051111110911110808110F0211111111111111111111111111111111111111 +1111110F010C110C0A111108040F070A1111111111111111111111111111111111111111 +1111111009080C1111110806080B11111111111111111111111111111111111111111111 +111111111111111111080811111111111111111111111111111111111111111111111111 +111111111111110E07070E11111111111111111111111111111111111111111111111111 +111111111111111111111111111111111111111111111111111111111111111111111111 +111111111111111111111111111111111111111111 +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/up.gif b/images/up.gif Binary files differnew file mode 100644 index 0000000..e899a27 --- /dev/null +++ b/images/up.gif diff --git a/images/up.pdf b/images/up.pdf Binary files differnew file mode 100644 index 0000000..576c928 --- /dev/null +++ b/images/up.pdf diff --git a/images/warning.eps b/images/warning.eps new file mode 100644 index 0000000..dce82d1 --- /dev/null +++ b/images/warning.eps @@ -0,0 +1,553 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (warning.eps) +%%CreationDate: (Fri Nov 5 11:45:36 2004) +%%BoundingBox: 0 0 24 24 +%%HiResBoundingBox: 0 0 24 24 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 24 24 +userdict begin +DisplayImage +0 0 +24 24 +12.000000 +24 24 +1 +0 +0 +256 +080000 +100000 +180000 +210000 +290000 +310000 +420000 +4A0000 +520000 +5A0000 +6B0000 +730000 +7B0000 +840000 +8C0000 +940000 +947B7B +9C5252 +9C5A5A +9C7B7B +A50000 +A53939 +A54A4A +A58484 +A59494 +A5A5A5 +AD0000 +AD3131 +AD9494 +B50000 +B52929 +B58C8C +B59C9C +B5A5A5 +B5B5B5 +BD0000 +BDADAD +BDB5B5 +C60000 +C61010 +C61818 +C6C6C6 +CE0000 +CE1010 +CE1818 +CE2929 +D60000 +D62929 +D6D6D6 +DE0000 +DEDEDE +E70000 +E72121 +E7E7E7 +EF0000 +EF0808 +EFEFEF +F70000 +F7F7F7 +FF0000 +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +FFFFFF +3C3C3C3C3C3C3C32303030303030303030383C3C3C3C3C3C3C3C3C3C3C3C29111E1B1E1B +1E1B1E1B1B1C383C3C3C3C3C3C3C3C3C3C221637393939393939393939281C383C3C3C3C +3C3C3C3829153739393939393939393939392817383C3C3C3C3C3C291237393939393939 +393939393939392819383C3C3C3C2215373939393939391D0F2E3939393939392817383C +3C2916373939393939392304010937393939393939281C38321137393939393939390F01 +01042E393939393939392821301B39393939393939391A02010631393939393939393710 +301E39393939393939392603000837393939393939393710301B39393939393939393105 +010B39393939393939393710301E39393939393939393307010E39393939393939393710 +301B39393939393939393908011439393939393939393710301E3939393939393939390A +021A39393939393939393710301B393939393939393939230D2E39393939393939393710 +301E3939393939393939330C081A39393939393939393710321B39393939393939391A01 +010631393939393939392D18382028393939393939391D030107333939393939392F1332 +3C382028393939393939391D0D2A3939393939392F17323C3C3C381C2739393939393939 +393939393939393410323C3C3C3C3C3A22273939393939393939393939392F10383C3C3C +3C3C3C3C381C28393939393939393939392F17323C3C3C3C3C3C3C3C3C38202837333733 +373337332D10323C3C3C3C3C3C3C3C3C3C3C3A24131313131313131318323C3C3C3C3C3C + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/images/warning.gif b/images/warning.gif Binary files differnew file mode 100644 index 0000000..a587079 --- /dev/null +++ b/images/warning.gif diff --git a/images/warning.pdf b/images/warning.pdf Binary files differnew file mode 100644 index 0000000..e86c595 --- /dev/null +++ b/images/warning.pdf diff --git a/lib/ChangeLog b/lib/ChangeLog new file mode 100644 index 0000000..a521bda --- /dev/null +++ b/lib/ChangeLog @@ -0,0 +1,36 @@ +2004-10-24 <petere78@users.sourceforge.net> + + * dblib.dsl: Revision 1.6 completely broke PI processing, so back that out for now. + +2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dblib.dsl: Fix my-debug so it actually returns what you ask it to. + +2003-04-28 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dblib.dsl: Make PI parsing more robust by rewriting parse-pi-attribute and a fix + in parse-starttag-pi. I'm still not entirely happy with the PI + parsing, its probably a little flakey, but it shouldn't completely + bail out when it hits data its not expecting. Closes Debian Bug#186886. + +2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dblib.dsl: Fix a typo in the param docs + +2003-04-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dblib.dsl: xsl stylesheet refers to pica as "pc" rather than "pi", so we allow + either one as a pica + +2002-05-12 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblib.dsl: Bugs #429663 and #474328 fixed (allow external linespecific content to be indented and numbered). Eight bit or unicode external linespecific content may be problematic though. + +2001-07-10 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblib.dsl: Bug fix: (strip) was returning the empty string for any string one character long + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblib.dsl: New file. + diff --git a/lib/dblib.dsl b/lib/dblib.dsl new file mode 100644 index 0000000..a896cb2 --- /dev/null +++ b/lib/dblib.dsl @@ -0,0 +1,1858 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN"> + +<style-sheet> +<style-specification> +<style-specification-body> + +;; $Id: dblib.dsl,v 1.8 2004/10/24 01:09:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; +;; This file contains a general library of DSSSL functions. +;; + +;; If **ANY** change is made to this file, you _MUST_ alter the +;; following definition: + +;; REFERENCE Library Version + +(define %library-version% + ;; REFENTRY version + ;; PURP Defines the library version string + ;; DESC + ;; Defines the library version string. + ;; /DESC + ;; /REFENTRY + "Modular DocBook Stylesheet Library") + +;; === Book intro, for dsl2man ========================================== + +<![CDATA[ +;; DOCINFO +;; <title>DSSSL Library</title> +;; <subtitle>Part of the Modular DocBook Stylesheet distribution</subtitle> +;; <author><firstname>Norman</firstname><surname>Walsh</surname> +;; </author> +;; <edition>$Revision: 1.8 $</edition> +;; <copyright><year>1997</year><year>1998</year><year>1999</year> +;; <holder>Norman Walsh</holder></copyright> +;; <legalnotice> +;; <para> +;; This software may be distributed under the same terms as Jade: +;; </para> +;; <para> +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the “Software”), to deal in the Software without +;; restriction, including without limitation the rights to use, +;; copy, modify, merge, publish, distribute, sublicense, and/or +;; sell copies of the Software, and to permit persons to whom the +;; Software is furnished to do so, subject to the following +;; conditions: +;; </para> +;; <para> +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. +;; </para> +;; <para> +;; Except as contained in this notice, the names of individuals +;; credited with contribution to this software shall not be used in +;; advertising or otherwise to promote the sale, use or other +;; dealings in this Software without prior written authorization +;; from the individuals in question. +;; </para> +;; <para> +;; Any stylesheet derived from this Software that is publically +;; distributed will be identified with a different name and the +;; version strings in any derived Software will be changed so that +;; no possibility of confusion between the derived package and this +;; Software will exist. +;; </para> +;; </legalnotice> +;; <legalnotice> +;; <para> +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER +;; CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +;; OTHER DEALINGS IN THE SOFTWARE. +;; </para> +;; </legalnotice> +;; <legalnotice> +;; <para>Please direct all questions, bug reports, or suggestions for changes +;; to Norman Walsh, <<literal>ndw@nwalsh.com</literal>>. +;; </para> +;; <para> +;; See <ulink url="http://nwalsh.com/docbook/dsssl/">http://nwalsh.com/docbook/dsssl/</ulink> for more information.</para> +;; </legalnotice> +;; /DOCINFO +]]> + +;; === Some additional units ============================================ + +(define-unit pi (/ 1in 6)) ;pica +(define-unit pc (/ 1in 6)) ;pica, another name +(define-unit pt (/ 1in 72)) ;point +(define-unit px (/ 1in 96)) ;pixel + +;; REFERENCE ISO/IEC 10179 + +(define (node-list-reduce nl proc init) + ;; REFENTRY node-list-reduce + ;; PURP Implements node-list-reduce as per ISO/IEC 10179:1996 + ;; DESC + ;; Implements 'node-list-reduce' as per ISO/IEC 10179:1996 + ;; /DESC + ;; AUTHOR From ISO/IEC 10179:1996 + ;; /REFENTRY + (if (node-list-empty? nl) + init + (node-list-reduce (node-list-rest nl) + proc + (proc init (node-list-first nl))))) + +(define (node-list-last nl) + ;; REFENTRY node-list-last + ;; PURP Implements node-list-last as per ISO/IEC 10179:1996 + ;; DESC + ;; Implements 'node-list-last' as per ISO/IEC 10179:1996 + ;; /DESC + ;; AUTHOR From ISO/IEC 10179:1996 + ;; /REFENTRY + (node-list-ref nl + (- (node-list-length nl) 1))) + +(define (node-list-first-element nodelist) + ;; REFENTRY node-list-first-element + ;; PURP Return the first element node in a node list + ;; DESC + ;; This function returns the first node in a node list which is + ;; an element (as opposed to a PI or anything else that might appear + ;; in a node list). + ;; /DESC + ;; /REFENTRY + (let loop ((nl nodelist)) + (if (node-list-empty? nl) + (empty-node-list) + (if (gi (node-list-first nl)) + (node-list-first nl) + (loop (node-list-rest nl)))))) + +(define (node-list-last-element nodelist) + ;; REFENTRY node-list-last-element + ;; PURP Return the last element node in a node list + ;; DESC + ;; This function returns the last node in a node list which is + ;; an element (as opposed to a PI or anything else that might appear + ;; in a node list). + ;; /DESC + ;; /REFENTRY + (let loop ((el (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + el + (if (gi (node-list-first nl)) + (loop (node-list-first nl) (node-list-rest nl)) + (loop el (node-list-rest nl)))))) + +(define (ipreced nl) + ;; REFENTRY ipreced + ;; PURP Implements ipreced as per ISO/IEC 10179:1996 + ;; DESC + ;; Implements 'ipreced' as per ISO/IEC 10179:1996 + ;; /DESC + ;; AUTHOR From ISO/IEC 10179:1996 + ;; /REFENTRY + (node-list-map (lambda (snl) + (let loop ((prev (empty-node-list)) + (rest (siblings snl))) + (cond ((node-list-empty? rest) + (empty-node-list)) + ((node-list=? (node-list-first rest) snl) + prev) + (else + (loop (node-list-first rest) + (node-list-rest rest)))))) + nl)) + + +(define (ifollow nl) + ;; REFENTRY ifollow + ;; PURP Implements ifollow as per ISO/IEC 10179:1996 + ;; DESC + ;; Implements 'ifollow' as per ISO/IEC 10179:1996 + ;; /DESC + ;; AUTHOR From ISO/IEC 10179:1996 + ;; /REFENTRY + (node-list-map (lambda (snl) + (let loop ((rest (siblings snl))) + (cond ((node-list-empty? rest) + (empty-node-list)) + ((node-list=? (node-list-first rest) snl) + (node-list-first (node-list-rest rest))) + (else + (loop (node-list-rest rest)))))) + nl)) + +(define (siblings snl) + ;; REFENTRY siblings + ;; PURP Implements siblings as per ISO/IEC 10179:1996 + ;; DESC + ;; Implements 'siblings' as per ISO/IEC 10179:1996 + ;; /DESC + ;; AUTHOR From ISO/IEC 10179:1996 + ;; /REFENTRY + (children (parent snl))) + +(define (string->list str) + ;; REFENTRY string-2-list + ;; PURP Converts a string into a list of characters. + ;; DESC + ;; Implements 'string->list' as per ISO/IEC 10179:1996 + ;; (clause 8.5.9.9). + ;; /DESC + ;; AUTHOR David Megginson + ;; EMAIL dmeggins@uottawa.ca + ;; /REFENTRY + (let loop ((chars '()) + (k (- (string-length str) 1))) + (if (< k 0) + chars + (loop (cons (string-ref str k) chars) (- k 1))))) + +(define (list->string chars) + ;; REFENTRY list-2-string + ;; PURP Converts a list of characters into a string + ;; DESC + ;; Implements 'list->string' as per ISO/IEC 10179:1996 + ;; (clause 8.5.9.9). + ;; /DESC + ;; AUTHOR David Megginson + ;; EMAIL dmeggins@uottawa.ca + ;; /REFENTRY + (let loop ((cl chars) + (str "")) + (if (null? cl) + str + (loop (cdr cl) + (string-append str (string (car cl))))))) + +;; ====================================================================== + +(define (map f #!rest xs) + ;; REFENTRY map + ;; PURP Implements map + ;; DESC + ;; Implements map + ;; /DESC + ;; AUTHOR From Mulberry Tech. site (need better attribution) + ;; /REFENTRY + (let ((map1 (lambda (f xs) ; bootstrap version for unary F + (let loop ((xs xs)) + (if (null? xs) + '() + (cons (f (car xs)) + (loop (cdr xs)))))))) + (cond ((null? xs) + '()) + ((null? (cdr xs)) + (map1 f (car xs))) + (else + (let loop ((xs xs)) + (if (null? (car xs)) + '() + (cons (apply f (map1 car xs)) + (loop (map1 cdr xs))))))))) + +(define (absolute-child-number #!optional (nd (current-node))) + ;; REFENTRY absolute-child-number + ;; PURP Returns the absolute child number of the specified node + ;; DESC + ;; Returns the child number, regardless of gi, of 'snl' within its + ;; parent. + ;; + ;; Isn't there a better way to get this? + ;; ARGS + ;; ARG snl + ;; The node (singleton node list) whose child number is desired. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (+ (node-list-length (preced nd)) 1)) + +;; REFERENCE Debug + +(define (my-debug x #!optional return-value) + ;; REFENTRY my-debug + ;; PURP A debugging function more helpful than (debug) + ;; DESC + ;; A version of debug that tries to print information more helpful + ;; than "unknown object ...". Will need extending for any further + ;; types added to Jade which don't have useful print methods. + ;; (Should yield more information extracted from each type.) + ;; ARGS + ;; ARG x + ;; The object about which debugging information is desired. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; AUTHOR Tony Graham + ;; /REFENTRY + (let ((msg (debug (cond ((node-list? x) + (if (node-list-empty? x) + (list 'empty-node-list x) + (list (if (named-node-list? x) + 'named-node-list + 'node-list) + (node-list-length x) x))) + ((sosofo? x) + (list 'sosofo x)) + ((procedure? x) + (list 'procedure x)) + ((style? x) + (list 'style x)) + ((address? x) + (list 'address x)) + ((color? x) + (list 'color x)) + ((color-space? x) + (list 'color-space x)) + ((display-space? x) + (list 'display-space x)) + ((inline-space? x) + (list 'inline-space x)) + ((glyph-id? x) + (list 'glyph-id x)) + ((glyph-subst-table? x) + (list 'glyph-subst-table x)) + (else x))))) + return-value)) + +;; REFERENCE Miscellaneous + +(define (string-with-space string #!optional (space " ")) + ;; REFENTRY string-with-space + ;; PURP Returns string with a space appended or the empty string + ;; DESC + ;; If 'string' is not the empty string, returns 'string' with a + ;; 'space' appended. If 'string' is empty, or is not a '(string?)', + ;; returns 'string' unmodified. + ;; ARGS + ;; ARG 'string' + ;; The string onto which a space should be appended. + ;; /ARG + ;; ARG 'space' o + ;; If specified, the space to append. Defaults to a single space. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (if (string? string) + (if (equal? string "") + string + (string-append string space)) + string)) + +;; ====================================================================== + +(define (split str #!optional (whitespace '(#\space))) + ;; REFENTRY split + ;; PURP Splits string at whitespace and returns the resulting list of tokens + ;; DESC + ;; Given a string containing delimited tokens, return a list + ;; of the tokens in string form. + ;; ARGS + ;; ARG 'str' + ;; The string to split. + ;; /ARG + ;; ARG 'whitespace' o + ;; A list of characters that should + ;; be treated as whitespace. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; AUTHOR David Megginson + ;; EMAIL dmeggins@uottawa.ca + ;; /REFENTRY + (let loop ((characters (string->list str)) ; Top-level recursive loop. + (current-word '()) + (tokens '())) + + ; If there are no characters left, + ; then we're done! + (cond ((null? characters) + ; Is there a token in progress? + (if (null? current-word) + (reverse tokens) + (reverse (cons (list->string (reverse current-word)) + tokens)))) + ; If there are characters left, + ; then keep going. + (#t + (let ((c (car characters)) + (rest (cdr characters))) + ; Are we reading a space? + (cond ((member c whitespace) + (if (null? current-word) + (loop rest '() tokens) + (loop rest + '() + (cons (list->string (reverse current-word)) + tokens)))) + ; We are reading a non-space + (#t + (loop rest (cons c current-word) tokens)))))))) + +;; ====================================================================== + +(define (strip str #!optional (stripchars '(#\space #\&#RE #\U-0009))) + ;; REFENTRY strip + ;; PURP Strip leading and trailing characters off of a string + ;; DESC + ;; Strips leading and trailing characters in the 'stripchars' list + ;; off of a string and returns the stripped string. + ;; ARGS + ;; ARG 'str' + ;; The string to strip + ;; /ARG + ;; ARG 'stripchars' o + ;; A list of characters that should + ;; be stripped. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (let* ((startpos (let loop ((count 0)) + (if (>= count (string-length str)) + (string-length str) + (if (member (string-ref str count) stripchars) + (loop (+ count 1)) + count)))) + (tailstr (substring str startpos (string-length str))) + (endpos (let loop ((count (- (string-length tailstr) 1))) + (if (< count 1) + 0 + (if (member (string-ref tailstr count) stripchars) + (loop (- count 1)) + count))))) + (if (or (< endpos 0) + (string=? tailstr "")) + "" + (substring tailstr 0 (+ endpos 1))))) + +;; ====================================================================== + +(define (join slist #!optional (space " ")) + ;; REFENTRY join + ;; PURP Joins a list of strings together + ;; DESC + ;; Given a list of strings and a space string, returns the string + ;; that results from joining all the strings in the list together, + ;; separated by space. + ;; ARGS + ;; ARG 'slist' + ;; The list of strings. + ;; /ARG + ;; ARG 'space' o + ;; The string to place between each member of the list. Defaults to + ;; a single space. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; AUTHOR David Carlisle + ;; /REFENTRY + (letrec ((loop (lambda (l result) + (if (null? l) + result + (loop (cdr l) (cons space (cons (car l) result))))))) + (if (null? slist) + "" + (apply string-append (cons (car slist) + (loop (reverse (cdr slist)) '() )))))) + +;; ====================================================================== + +(define (pad-string string length padchar) + ;; REFENTRY pad-string + ;; PURP Pads a string, in front, to the specified length + ;; DESC + ;; Returns 'string', padded in front with 'padchar' to at least 'length' + ;; Returns 'string' unmodified if 'string' is not a '(string?)', + ;; 'padchar' is not a '(string?)', 'padchar' is the empty string, or if + ;; 'string' is already greater than or equal to 'length' in length. + ;; ARGS + ;; ARG 'string' + ;; The string to pad. + ;; /ARG + ;; ARG 'length' + ;; The desired length. + ;; /ARG + ;; ARG 'padchar' + ;; The character (string, actually) to use as padding. If 'padchar' is + ;; longer than 1 character, the resulting string may be longer than + ;; 'length' when returned. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (if (and (string? string) + (string? padchar) + (> (string-length padchar) 0)) + (let loop ((s string) (count (- length (string-length string)))) + (if (<= count 0) + s + (loop (string-append padchar s) + (- count (string-length padchar))))) + string)) + +;; ====================================================================== + +(define (match-split string target) + ;; REFENTRY match-split + ;; PURP Splits string at target and returns the resulting list of tokens + ;; DESC + ;; Splits string at every occurance of target and returns the result + ;; as a list. Note that 'match-split' returns the occurances of 'target' + ;; in the list of tokens. + ;; ARGS + ;; ARG 'string' + ;; The string to split. + ;; /ARG + ;; ARG 'target' + ;; The string which is a delimiter between tokens + ;; /ARG + ;; /ARGS + ;; /DESC + ;; EXAMPLE + ;; '"this is a test"' split at '"is"' returns + ;; '("th" "is" " " "is" " a test")' + ;; /EXAMPLE + ;; /REFENTRY + (if (string? string) + (let loop ((result '()) (current "") (rest string)) + (if (< (string-length rest) (string-length target)) + (append result (if (equal? (string-append current rest) "") + '() + (list (string-append current rest)))) + (if (equal? target (substring rest 0 (string-length target))) + (loop (append result + (if (equal? current "") + '() + (list current)) + (list target)) + "" + (substring rest (string-length target) + (string-length rest))) + (loop result + (string-append current (substring rest 0 1)) + (substring rest 1 (string-length rest)))))) + (list string))) + +(define (match-split-string-list string-list target) + ;; REFENTRY match-split-string-list + ;; PURP Splits each string in a list of strings and returns the concatenated result list + ;; DESC + ;; Splits each string in 'string-list' at 'target' with '(match-split)', + ;; concatenates the results, and returns a single list of tokens. + ;; ARGS + ;; ARG string-list + ;; The list of strings to split. + ;; /ARG + ;; ARG target + ;; The string which is a delimiter between tokens. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (let loop ((result '()) (sl string-list)) + (if (null? sl) + result + (loop (append result (match-split (car sl) target)) + (cdr sl))))) + +(define (match-split-list string target-list) + ;; REFENTRY match-split-list + ;; PURP Splits a string at a list of targets and returns the resulting list of tokens + ;; DESC + ;; Splits 'string' at every target in 'target-list' with '(match-split)', + ;; returning the whole collection of tokens as a list. + ;; ARGS + ;; ARG string + ;; The string to split. + ;; /ARG + ;; ARG target-list + ;; A list of target strings which are the delimters between tokens. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (let loop ((result (list string)) (tlist target-list)) + (if (null? tlist) + result + (loop (match-split-string-list result (car tlist)) + (cdr tlist))))) + +;; ====================================================================== + +(define (assoc-objs alist) + ;; REFENTRY assoc-objs + ;; PURP Returns a list of the objects in an associative list + ;; DESC + ;; Returns a list of the objects in an associative list. + ;; ARGS + ;; ARG alist + ;; The associative list. An associative list is a list of lists + ;; where each interior list is a pair of elements. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; EXAMPLE + ;; '(assoc-objs (("a" "b") ("c" "d")))' returns '("a" "c")' + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((result '()) (al alist)) + (if (null? al) + result + (loop (append result (list (car (car al)))) (cdr al))))) + +(define (assoc obj alist) + ;; REFENTRY assoc + ;; PURP Returns the association of an object in an associative list + ;; DESC + ;; Given an associative list, returns the pair that has 'obj' as a 'car' + ;; or '#f' if no such pair exists. + ;; ARGS + ;; ARG obj + ;; The associative key to locate. + ;; /ARG + ;; ARG alist + ;; The associative list. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; EXAMPLE + ;; '(assoc "a" (("a" "b") ("c" "d")))' returns '("a" "b")' + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((al alist)) + (if (null? al) + #f + (if (equal? obj (car (car al))) + (car al) + (loop (cdr al)))))) + +(define (match-substitute-sosofo string assoc-list) + ;; REFENTRY match-substitute-sosofo + ;; PURP Return matching sosofo from associative list + ;; DESC + ;; Given a string and an associative list of strings and sosofos, + ;; return the sosofo of the matching string, or return the literal + ;; string as a sosofo. + ;; + ;; (This function is used for a particular task in the DocBook stylesheets. + ;; It may not be particularly general, but it's in 'dblib.dsl' because + ;; there is nothing DTD-specific about it.) + ;; /DESC + ;; /REFENTRY + (if (assoc string assoc-list) + (car (cdr (assoc string assoc-list))) + (literal string))) + +(define (string-list-sosofo string-list assoc-list) + ;; REFENTRY string-list-sosofo + ;; PURP Build sosofo from a list of strings and an associative list + ;; DESC + ;; Take a list of strings and an associative list that maps strings + ;; to sosofos and return an appended sosofo. + ;; + ;; (This function is used for a particular task in the DocBook stylesheets. + ;; It may not be particularly general, but it's in 'dblib.dsl' because + ;; there is nothing DTD-specific about it.) + ;; /DESC + ;; EXAMPLE + ;; Given the string list '("what is " "1" " " "+" " " "1")' + ;; and the associative list + ;; '(("1" (literal "one")) ("2" (literal "two")) ("+" (literal "plus")))', + ;; '(string-list-sosofo)' returns the sequence of sosofos + ;; equivalent to '(literal "what is one plus one")'. + ;; /EXAMPLE + ;; /REFENTRY + (if (null? string-list) + (empty-sosofo) + (sosofo-append (match-substitute-sosofo (car string-list) assoc-list) + (string-list-sosofo (cdr string-list) assoc-list)))) + +;; ====================================================================== + +(define (repl-substring? string target pos) + ;; REFENTRY repl-substring-p + ;; PURP Returns true if the specified substring can be replaced + ;; DESC + ;; Returns '#t' if 'target' occurs at 'pos' in 'string'. + ;; /DESC + ;; /REFENTRY + (let* ((could-match (<= (+ pos (string-length target)) + (string-length string))) + (match (if could-match + (substring string pos (+ pos (string-length target))) ""))) + (and could-match (string=? match target)))) + +(define (repl-substring string target repl pos) + ;; REFENTRY repl-substring + ;; PURP Replace substring in a string + ;; DESC + ;; Replaces 'target' with 'repl' in 'string' at 'pos'. + ;; /DESC + ;; /REFENTRY + (let ((matches (repl-substring? string target pos))) + (if matches + (string-append + (substring string 0 pos) + repl + (substring string + (+ pos (string-length target)) + (string-length string))) + string))) + +(define (repl-substring-list? string replace-list pos) + ;; REFENTRY repl-substring-list-p + ;; PURP Perform repl-substring? with a list of target/replacement pairs + ;; DESC + ;; Returns '#t' if any target in 'replace-list' occurs at 'pos' in 'string'. + ;; ARGS + ;; ARG 'string' + ;; The string in which replacement should be tested. + ;; /ARG + ;; ARG 'replace-list' + ;; A list of target/replacement pairs. This list is just a list of + ;; strings, treated as pairs. For example, '("was" "x" "is" "y")'. + ;; In this example, 'was' may be replaced by 'x' and 'is' may be + ;; replaced by 'y'. + ;; /ARG + ;; ARG 'pos' + ;; The location within 'string' where the test will occur. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; EXAMPLE + ;; '(repl-substring-list? "this is it" ("was" "x" "is" "y") 2)' + ;; returns '#t': "is" could be replaced by "y". + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((list replace-list)) + (let ((target (car list)) + (repl (car (cdr list))) + (rest (cdr (cdr list)))) + (if (repl-substring? string target pos) + #t + (if (null? rest) + #f + (loop rest)))))) + +(define (repl-substring-list-target string replace-list pos) + ;; REFENTRY repl-substring-list-target + ;; PURP Return the target that matches in a string + ;; DESC + ;; Returns the target in 'replace-list' that matches in 'string' at 'pos' + ;; See also 'repl-substring-list?'. + ;; /DESC + ;; /REFENTRY + (let loop ((list replace-list)) + (let ((target (car list)) + (repl (car (cdr list))) + (rest (cdr (cdr list)))) + (if (repl-substring? string target pos) + target + (if (null? rest) + #f + (loop rest)))))) + +(define (repl-substring-list-repl string replace-list pos) + ;; REFENTRY repl-substring-list-repl + ;; PURP Return the replacement that would be used in the string + ;; DESC + ;; Returns the replacement in 'replace-list' that would be used for the + ;; target that matches in 'string' at 'pos' + ;; See also 'repl-substring-list?'. + ;; /DESC + ;; /REFENTRY + (let loop ((list replace-list)) + (let ((target (car list)) + (repl (car (cdr list))) + (rest (cdr (cdr list)))) + (if (repl-substring? string target pos) + repl + (if (null? rest) + #f + (loop rest)))))) + +(define (repl-substring-list string replace-list pos) + ;; REFENTRY repl-substring-list + ;; PURP Replace the first target in the replacement list that matches + ;; DESC + ;; Replaces the first target in 'replace-list' that matches in 'string' + ;; at 'pos' with its replacement. + ;; See also 'repl-substring-list?'. + ;; /DESC + ;; /REFENTRY + (if (repl-substring-list? string replace-list pos) + (let ((target (repl-substring-list-target string replace-list pos)) + (repl (repl-substring-list-repl string replace-list pos))) + (repl-substring string target repl pos)) + string)) + +(define (string-replace string target repl) + ;; REFENTRY string-replace + ;; PURP Replace all occurances of a target substring in a string + ;; DESC + ;; Replaces all occurances of 'target' in 'string' with 'repl'. + ;; /DESC + ;; /REFENTRY + (let loop ((str string) (pos 0)) + (if (>= pos (string-length str)) + str + (loop (repl-substring str target repl pos) + (if (repl-substring? str target pos) + (+ (string-length repl) pos) + (+ 1 pos)))))) + +(define (string-replace-list string replace-list) + ;; REFENTRY string-replace-list + ;; PURP Replace a list of target substrings in a string + ;; DESC + ;; Replaces, in 'string', all occurances of each target in + ;; 'replace-list' with its replacement. + ;; /DESC + ;; /REFENTRY + (let loop ((str string) (pos 0)) + (if (>= pos (string-length str)) + str + (loop (repl-substring-list str replace-list pos) + (if (repl-substring-list? str replace-list pos) + (+ (string-length + (repl-substring-list-repl str replace-list pos)) + pos) + (+ 1 pos)))))) + +;; ====================================================================== + +(define (ancestor-member nd gilist) + ;; REFENTRY ancestor-member + ;; PURP Returns the first ancestor in a list of GIs + ;; DESC + ;; Returns the first ancestor of 'nd' whose GI is a member of 'gilist'. + ;; /DESC + ;; /REFENTRY + (if (node-list-empty? nd) + (empty-node-list) + (if (member (gi nd) gilist) + nd + (ancestor-member (parent nd) gilist)))) + +(define (has-ancestor-member? nd gilist) + ;; REFENTRY has-ancestor-member-p + ;; PURP Returns true if the specified node has one of a set of GIs as an ancestor + ;; DESC + ;; Returns '#t' if 'nd' has an ancestor whose GI is a member of 'gilist'. + ;; /DESC + ;; /REFENTRY + (not (node-list-empty? (ancestor-member nd gilist)))) + +;; ====================================================================== + +(define (descendant-of? ancestor child) + ;; REFENTRY descendant-of-p + ;; PURP Returns true if the child is some descendant of the specified node + ;; DESC + ;; Returns '#t' if 'child' is a descendant of 'ancestor'. + ;; /DESC + ;; /REFENTRY + (let loop ((c child)) + (if (node-list-empty? c) + #f + (if (node-list=? ancestor c) + #t + (loop (parent c)))))) + +;; ====================================================================== + +(define (expand-children nodelist gilist) + ;; REFENTRY expand-children + ;; PURP Expand selected nodes in a node list + ;; DESC + ;; Given a node-list, 'expand-children' replaces all of the members + ;; of the node-list whose GIs are members of 'gilist' with + ;; '(children)'. + ;; + ;; This function can be used to selectively + ;; flatten the hierarchy of a document. + ;; /DESC + ;; EXAMPLE + ;; Suppose that the node list is '(BOOKINFO PREFACE PART APPENDIX)'. + ;; '(expand-children nl ("PART"))' might return + ;; '(BOOKINFO PREFACE CHAPTER CHAPTER APPENDIX)'. + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((nl nodelist) (result (empty-node-list))) + (if (node-list-empty? nl) + result + (if (member (gi (node-list-first nl)) gilist) + (loop (node-list-rest nl) + (node-list result (children (node-list-first nl)))) + (loop (node-list-rest nl) + (node-list result (node-list-first nl))))))) + +;; ====================================================================== + +(define (directory-depth pathname) + ;; REFENTRY directory-depth + ;; PURP Count the directory depth of a path name + ;; DESC + ;; Returns the number of directory levels in 'pathname' + ;; + ;; The pathname must end in a filename. + ;; Further, this function assumes that directories in a pathname are + ;; separated by forward slashes ("/"). + ;; /DESC + ;; EXAMPLE + ;; "filename" => 0, + ;; "foo/filename" => 1, + ;; "foo/bar/filename => 2, + ;; "foo/bar/../filename => 1. + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((count 0) (pathlist (match-split pathname "/"))) + (if (null? pathlist) + (- count 1) ;; pathname should always end in a filename + (if (or (equal? (car pathlist) "/") (equal? (car pathlist) ".")) + (loop count (cdr pathlist)) + (if (equal? (car pathlist) "..") + (loop (- count 1) (cdr pathlist)) + (loop (+ count 1) (cdr pathlist))))))) + + +(define (file-extension filespec) + ;; REFENTRY file-extension + ;; PURP Return the extension of a filename + ;; DESC + ;; Returns the extension of a filename. The extension is the last + ;; "."-delimited part of the name. Returns "" if there is no period + ;; in the filename. + ;; /DESC + ;; /REFENTRY + (if (string? filespec) + (let* ((pathparts (match-split filespec "/")) + (filename (list-ref pathparts (- (length pathparts) 1))) + (fileparts (match-split filename ".")) + (extension (list-ref fileparts (- (length fileparts) 1)))) + (if (> (length fileparts) 1) + extension + "")) + "")) + +;; ====================================================================== + +(define (copy-string string num) + ;; REFENTRY copy-string + ;; PURP Return a string duplicated a specified number of times + ;; DESC + ;; Copies 'string' 'num' times and returns the result. + ;; /DESC + ;; EXAMPLE + ;; (copy-string "x" 3) returns "xxx" + ;; /EXAMPLE + ;; /REFENTRY + (if (<= num 0) + "" + (let loop ((str string) (count (- num 1))) + (if (<= count 0) + str + (loop (string-append str string) (- count 1)))))) + +;; ====================================================================== + +(define (node-list-filter-by-gi nodelist gilist) + ;; REFENTRY node-list-filter-by-gi + ;; PURP Returns selected elements from a node list + ;; DESC + ;; Returns a node list containing all the nodes from 'nodelist' whose + ;; GIs are members of 'gilist'. The order of nodes in the node list + ;; is preserved. + ;; /DESC + ;; /REFENTRY + (let loop ((result (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + result + (if (member (gi (node-list-first nl)) gilist) + (loop (node-list result (node-list-first nl)) + (node-list-rest nl)) + (loop result (node-list-rest nl)))))) + +;; ====================================================================== + +(define (node-list-filter-by-not-gi nodelist gilist) + ;; REFENTRY node-list-filter-by-not-gi + ;; PURP Returns selected elements from a node list + ;; DESC + ;; Returns a node list containing all the nodes from 'nodelist' whose + ;; GIs are NOT members of 'gilist'. The order of nodes in the node list + ;; is preserved. + ;; /DESC + ;; /REFENTRY + (let loop ((result (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + result + (if (member (gi (node-list-first nl)) gilist) + (loop result (node-list-rest nl)) + (loop (node-list result (node-list-first nl)) + (node-list-rest nl)))))) + +;; ====================================================================== + +(define (node-list-filter-out-pis nodelist) + ;; REFENTRY node-list-filter-out-pis + ;; PURP Returns the nodelist with all PIs removed + ;; DESC + ;; Returns a node list containing all the nodes from 'nodelist' that + ;; are not PIs. The order of nodes in the node list is preserved. + ;; /DESC + ;; /REFENTRY + (let loop ((result (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + result + (if (equal? (node-property 'class-name (node-list-first nl)) 'pi) + (loop result (node-list-rest nl)) + (loop (node-list result (node-list-first nl)) + (node-list-rest nl)))))) + +;; ====================================================================== + +(define (node-list-filter-elements nodelist) + ;; REFENTRY node-list-filter-elements + ;; PURP Returns the elements in 'nodelist' + ;; DESC + ;; Returns the elements in 'nodelist' + ;; /DESC + ;; /REFENTRY + (let loop ((result (empty-node-list)) (nl nodelist)) + (if (node-list-empty? nl) + result + (if (equal? (node-property 'class-name (node-list-first nl)) 'element) + (loop (node-list result (node-list-first nl)) + (node-list-rest nl)) + (loop result (node-list-rest nl)))))) + +;; ====================================================================== + +(define (component-descendant-node-list inputnd complist) + ;; REFENTRY component-descendant-node-list + ;; PURP Find all 'inputnd's within an ancestor element + ;; DESC + ;; Finds the first ancestor of 'inputnd' in 'complist' and then returns + ;; a node list of all the 'inputnd's within (that are descendants of) + ;; that ancestor. + ;; /DESC + ;; /REFENTRY + (let ((nd (ancestor-member inputnd complist))) + (select-elements (descendants nd) (gi inputnd)))) + +(define (component-child-number inputnd complist) + ;; REFENTRY component-child-number + ;; PURP Find child-number within a component + ;; DESC + ;; Finds the first ancestor of 'inputnd' in 'complist' and then counts + ;; all the elements of type 'inputnd' from that point on and returns + ;; the number of 'inputnd'. (This is like a 'recursive-child-number' + ;; starting at the first parent of 'inputnd' in 'complist'.) + ;; /DESC + ;; /REFENTRY + (let loop ((nl (component-descendant-node-list inputnd complist)) + (num 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? (node-list-first nl) inputnd) + num + (if (string=? (gi (node-list-first nl)) (gi inputnd)) + (loop (node-list-rest nl) (+ num 1)) + (loop (node-list-rest nl) num)))))) + +(define (component-list-descendant-node-list inputnd inputlist complist) + ;; REFENTRY component-descendant-list-node-list + ;; PURP Find all elements of a list of elements in a component + ;; DESC + ;; Finds the first ancestor of 'inputnd' in 'complist' and + ;; then returns a list of all the elements in 'inputlist' + ;; within that component. + ;; + ;; WARNING: this requires walking over *all* the descendants + ;; of the ancestor node. This may be *slow*. + ;; /DESC + ;; /REFENTRY + (let ((nd (ancestor-member inputnd complist))) + (let loop ((nl (descendants nd)) (result (empty-node-list))) + (if (node-list-empty? nl) + result + (if (member (gi (node-list-first nl)) inputlist) + (loop (node-list-rest nl) + (node-list result (node-list-first nl))) + (loop (node-list-rest nl) + result)))))) + +(define (component-list-child-number inputnd inputlist complist) + ;; REFENTRY component-list-child-number + ;; PURP Find child-number of a list of children within a component + ;; DESC + ;; Finds the first ancestor of 'inputnd' in 'complist' and + ;; then counts all the elements of the types in 'inputlist' + ;; from that point on and returns the number of 'inputnd'. + ;; + ;; If the node is not found, 0 is returned. + ;; + ;; WARNING: this requires walking over *all* the descendants + ;; of the ancestor node. This may be *slow*. + ;; /DESC + ;; /REFENTRY + (let loop ((nl (component-list-descendant-node-list + inputnd inputlist complist)) + (num 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? (node-list-first nl) inputnd) + num + (loop (node-list-rest nl) (+ num 1)))))) + +;; ====================================================================== + +(define (expt b n) + ;; REFENTRY expt + ;; PURP Exponentiation + ;; DESC + ;; Returns 'b' raised to the 'n'th power for integer 'n' >= 0. + ;; /DESC + ;; /REFENTRY + ;; + (if (<= n 0) + 1 + (* b (expt b (- n 1))))) + +;; ====================================================================== + +(define (list-member-find element elementlist) + ;; REFENTRY list-member-find + ;; PURP Returns the index of an element in a list + ;; DESC + ;; Returns the index of 'element' in the list 'elementlist'. The + ;; first element in a list has index 0. + ;; /DESC + ;; /REFENTRY + (let loop ((elemlist elementlist) (count 0)) + (if (null? elemlist) + -1 + (if (equal? element (car elemlist)) + count + (loop (cdr elemlist) (+ count 1)))))) + +;; ====================================================================== + +(define default-uppercase-list + ;; REFENTRY + ;; PURP The default list of uppercase characters + ;; DESC + ;; The default list of uppercase characters. The order and sequence + ;; of characters + ;; in this list must match the order and sequence in + ;; 'default-lowercase-list'. + ;; /DESC + ;; /REFENTRY + '(#\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M + #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\W #\X #\Y #\Z)) + +(define default-lowercase-list + ;; REFENTRY + ;; PURP The default list of lowercase characters + ;; DESC + ;; The default list of lowercase characters. The order and sequence + ;; of characters + ;; in this list must match the order and sequence in + ;; 'default-uppercase-list'. + ;; /DESC + ;; /REFENTRY + '(#\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m + #\n #\o #\p #\q #\r #\s #\t #\u #\v #\w #\x #\y #\z)) + + +(define (case-fold-down-char ch #!optional (uc-list default-uppercase-list) + (lc-list default-lowercase-list)) + ;; REFENTRY + ;; PURP Return the lowercase form of a single character + ;; DESC + ;; Returns the lowercase form of 'ch' if 'ch' is a member of + ;; the uppercase list, otherwise return 'ch'. + ;; + ;; The implied mapping from uppercase to lowercase in the two lists is + ;; one-to-one. The first element of the uppercase list is the uppercase + ;; form of the first element of the lowercase list, and vice versa. + ;; ARGS + ;; ARG 'ch' + ;; The character to fold down. + ;; /ARG + ;; ARG 'uc-list' o + ;; The list of uppercase letters. The default is the list of English + ;; uppercase letters. + ;; /ARG + ;; ARG 'lc-list' o + ;; The list of lowercase letters. The default is the list of English + ;; lowercase letters. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (let ((idx (list-member-find ch uc-list))) + (if (>= idx 0) + (list-ref lc-list idx) + ch))) + +(define (case-fold-up-char ch #!optional (uc-list default-uppercase-list) + (lc-list default-lowercase-list)) + ;; REFENTRY + ;; PURP Return the uppercase form of a single character + ;; DESC + ;; Returns the uppercase form of 'ch' if 'ch' is a member of + ;; 'lowercase-list', otherwise return 'ch'. + ;; + ;; The implied mapping from uppercase to lowercase in the two lists is + ;; one-to-one. The first element of the uppercase list is the uppercase + ;; form of the first element of the lowercase list, and vice versa. + ;; ARGS + ;; ARG 'ch' + ;; The character to fold down. + ;; /ARG + ;; ARG 'uc-list' o + ;; The list of uppercase letters. The default is the list of English + ;; uppercase letters. + ;; /ARG + ;; ARG 'lc-list' o + ;; The list of lowercase letters. The default is the list of English + ;; lowercase letters. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; /REFENTRY + (let ((idx (list-member-find ch lc-list))) + (if (>= idx 0) + (list-ref uc-list idx) + ch))) + +(define (case-fold-down-charlist charlist) + ;; REFENTRY case-fold-down-charlist + ;; PURP Return the list of characters, shifted to lowercase + ;; DESC + ;; Shifts all of the characters in 'charlist' to lowercase with + ;; 'case-fold-down-char'. + ;; /DESC + ;; /REFENTRY + (if (null? charlist) + '() + (cons (case-fold-down-char (car charlist)) + (case-fold-down-charlist (cdr charlist))))) + +(define (case-fold-up-charlist charlist) + ;; REFENTRY case-fold-up-charlist + ;; PURP Return the list of characters, shifted to uppercase + ;; DESC + ;; Shifts all of the characters in 'charlist' to uppercase with + ;; 'case-fold-up-char'. + ;; /DESC + ;; /REFENTRY + (if (null? charlist) + '() + (cons (case-fold-up-char (car charlist)) + (case-fold-up-charlist (cdr charlist))))) + +(define (case-fold-down str) + ;; REFENTRY case-fold-down + ;; PURP Shift a string to lowercase + ;; DESC + ;; Returns 'str' in lowercase. + ;; /REFENTRY + (if (string? str) + (apply string (case-fold-down-charlist (string->list str))) + str)) + +(define (case-fold-up str) + ;; REFENTRY case-fold-up + ;; PURP Shift a string to uppercase + ;; DESC + ;; Returns 'str' in uppercase. + ;; /REFENTRY + (if (string? str) + (apply string (case-fold-up-charlist (string->list str))) + str)) + +;; ====================================================================== + +(define (find-first-char string skipchars findchars #!optional (pos 0)) + ;; REFENTRY find-first-char + ;; PURP Find the first occurance of a character in a string + ;; DESC + ;; Finds first character in 'string' that is in 'findchars', skipping all + ;; occurances of characters in 'skipchars'. Search begins at 'pos'. If + ;; no such characters are found, returns -1. + ;; + ;; If skipchars is empty, skip anything not in findchars + ;; If skipchars is #f, skip nothing + ;; If findchars is empty, the first character not in skipchars is matched + ;; It is an error if findchars is not a string. + ;; It is an error if findchars is empty and skipchars is not a non-empty + ;; string. + ;; /DESC + ;; /REFENTRY + (let ((skiplist (if (string? skipchars) + (string->list skipchars) + '())) + (findlist (string->list findchars))) + (if (and (null? skiplist) (null? findlist)) + ;; this is an error + -2 + (if (or (>= pos (string-length string)) (< pos 0)) + -1 + (let ((ch (string-ref string pos))) + (if (null? skiplist) + ;; try to find first + (if (member ch findlist) + pos + (if (string? skipchars) + (find-first-char string + skipchars findchars (+ 1 pos)) + -1)) + ;; try to skip first + (if (member ch skiplist) + (find-first-char string skipchars findchars (+ 1 pos)) + (if (or (member ch findlist) (null? findlist)) + pos + -1)))))))) + +;; ====================================================================== + +(define (parse-measurement measure) + ;; REFENTRY parse-measurement + ;; PURP Parse a string containing a measurement and return the magnitude and units + ;; DESC + ;; Parse a string containing a measurement, e.g., '"3pi"' or '"2.5in"', + ;; and return the magnitude and units: '(3 "pi")' or '(2.5 "in")'. + ;; + ;; Either element of the list may be '#f' if the string cannot reasonably + ;; be parsed as a measurement. Leading and trailing spaces are ignored. + ;; /DESC + ;; /REFENTRY + (let* ((magstart (find-first-char measure " " "0123456789.")) + (unitstart (find-first-char measure " 0123456789." "")) + (unitend (find-first-char measure "" " " unitstart)) + (magnitude (if (< magstart 0) + #f + (if (< unitstart 0) + (substring measure + magstart + (string-length measure)) + (substring measure magstart unitstart)))) + (unit (if (< unitstart 0) + #f + (if (< unitend 0) + (substring measure + unitstart + (string-length measure)) + (substring measure unitstart unitend))))) + (list magnitude unit))) + +(define unit-conversion-alist + ;; REFENTRY + ;; PURP Defines the base length of specific unit names + ;; DESC + ;; This list identifies the length of each unit. + ;; /DESC + ;; /REFENTRY + (list + '("default" 1pi) + '("mm" 1mm) + '("cm" 1cm) + '("in" 1in) + '("pi" 1pi) + '("pc" 1pi) + '("pt" 1pt) + '("px" 1px) + '("barleycorn" 2pi))) + +(define (measurement-to-length measure) + ;; REFENTRY measurement-to-length + ;; PURP Convert a measurement to a length + ;; DESC + ;; Given a string containing a measurement, return that measurement + ;; as a length. + ;; /DESC + ;; EXAMPLES + ;; '"2.5cm"' returns 2.5cm as a length. '"3.4barleycorn"' returns + ;; 6.8pi. + ;; /EXAMPLES + ;; /REFENTRY + (let* ((pm (car (parse-measurement measure))) + (pu (car (cdr (parse-measurement measure)))) + (magnitude (if pm pm "1")) + (units (if pu pu (if pm "pt" "default"))) + (unitconv (assoc units unit-conversion-alist)) + (factor (if unitconv (car (cdr unitconv)) 1pt))) + (* (string->number magnitude) factor))) + +;; ====================================================================== + +(define (dingbat usrname) + ;; REFENTRY dingbat + ;; PURP Map dingbat names to Unicode characters + ;; DESC + ;; Map a dingbat name to the appropriate Unicode character. + ;; /DESC + ;; /REFENTRY + ;; Print dingbats and other characters selected by name + (let ((name (case-fold-down usrname))) + (case name + ;; For backward compatibility + (("box") "\white-square;") + (("checkbox") "\white-square;") + ;; \check-mark prints the wrong symbol (in Jade 0.8 RTF backend) + (("check") "\heavy-check-mark;") + (("checkedbox") "\ballot-box-with-check;") + (("dash") "\em-dash;") + (("copyright") "\copyright-sign") + + ;; Straight out of Unicode + (("raquo") "\U-00BB;") + (("laquo") "\U-00AB;") + (("rsaquo") "\U-203A;") + (("lsaquo") "\U-2039;") + (("lsquo") "\U-2018;") + (("rsquo") "\U-2019;") + (("ldquo") "\U-201C;") + (("rdquo") "\U-201D;") + (("ldquor") "\U-201E;") + (("rdquor") "\U-201D;") + (("en-dash") "\en-dash;") + (("em-dash") "\em-dash;") + (("en-space") "\U-2002;") + (("em-space") "\U-2003;") + (("bullet") "\bullet;") + (("black-square") "\black-square;") + (("white-square") "\white-square;") + ;; \ballot-box name doesn't work (in Jade 0.8 RTF backend) + ;; and \white-square looks better than \U-2610; anyway + (("ballot-box") "\white-square;") + (("ballot-box-with-check") "\ballot-box-with-check;") + (("ballot-box-with-x") "\ballot-box-with-x;") + ;; \check-mark prints the wrong symbol (in Jade 0.8 RTF backend) + (("check-mark") "\heavy-check-mark;") + ;; \ballot-x prints out the wrong symbol (in Jade 0.8 RTF backend) + (("ballot-x") "\heavy-check-mark;") + (("copyright-sign") "\copyright-sign;") + (("registered-sign") "\registered-sign;") + (else "\bullet;")))) + +;; ====================================================================== + +(define (nth-node nl k) + ;; REFENTRY nth-node + ;; PURP Return a specific node in a node list (by numeric index) + ;; DESC + ;; Returns the 'k'th node in 'nl'. The first node in the node list + ;; has the index "1". + ;; /DESC + ;; /REFENTRY + (if (equal? k 1) + (node-list-first nl) + (nth-node (node-list-rest nl) (- k 1)))) + +;; ====================================================================== + +(define (constant-list value length) + ;; REFENTRY constant-list + ;; PURP Returns a list of the specified value + ;; DESC + ;; Return a list containing 'length' elements, each of 'value'. + ;; /DESC + ;; AUTHOR David Carlisle + ;; EXAMPLE + ;; '(constant-list 0 4)' returns '(0 0 0 0)' + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((count (abs length)) (result '())) + (if (equal? count 0) + result + (loop (- count 1) (cons value result))))) + +(define (list-head inputlist k) + ;; REFENTRY list-head + ;; PURP Return the head of a list + ;; DESC + ;; Returns the list that contains the first 'k' elements of 'inputlist'. + ;; /DESC + ;; EXAMPLE + ;; '(list-head (1 2 3 4) 2)' returns '(1 2)'. + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((l inputlist) (count k) (result '())) + (if (<= count 0) + result + (loop (cdr l) (- count 1) (append result (list (car l))))))) + +(define (list-put vlist ordinal value #!optional (span 1)) + ;; REFENTRY list-put + ;; PURP Replace a specific member of a list + ;; DESC + ;; Replaces the 'ordinal'th value of 'vlist' with 'value'. If 'span' > 1, + ;; replaces 'ordinal' to 'ordinal+span-1' values starting at 'ordinal'. + ;; /DESC + ;; EXAMPLE + ;; '(list-put (1 2 3 4 5) 2 0 2)' returns '(1 0 0 4 5)'. + ;; /EXAMPLE + ;; /REFENTRY + (let loop ((result vlist) (count span) (k ordinal)) + (if (equal? count 0) + result + (let ((head (list-head result (- k 1))) + (tail (list-tail result k))) + (loop (append head (list value) tail) (- count 1) (+ k 1)))))) + +(define (decrement-list-members vlist #!optional (decr 1) (floor 0)) + ;; REFENTRY decrement-list-members + ;; PURP Decrement each member of a list + ;; DESC + ;; Decrement all the values of a list by 'decr', not to fall below 'floor'. + ;; ARGS + ;; ARG 'vlist' + ;; The list of values. All the values of this list should be numeric. + ;; /ARG + ;; ARG 'decr' o + ;; The amount by which each element of the list should be decremented. + ;; The default is 1. + ;; /ARG + ;; ARG 'floor' o + ;; The value below which each member of the list is not allowed to fall. + ;; The default is 0. + ;; /ARG + ;; /ARGS + ;; /DESC + ;; AUTHOR David Carlisle + ;; EXAMPLE + ;; '(decrement-list-members (0 1 2 3 4 5))' => '(0 0 1 2 3 4)'. + ;; /EXAMPLE + ;; /REFENTRY + (map (lambda (a) + (if (<= a (+ decr floor)) + floor + (- a decr))) + vlist)) + +;; ====================================================================== + +(define (sgml-root-element #!optional (grove-node (current-node))) + ;; REFENTRY + ;; PURP Returns the node that is the root element of the current document + ;; DESC + ;; Returns the node that is the root element of the current document + ;; /DESC + ;; /REFENTRY + (node-property 'document-element (node-property 'grove-root grove-node))) + +(define (sgml-root-element? node) + ;; REFENTRY + ;; PURP Test if a node is the root element + ;; DESC + ;; Returns '#t' if node is the root element of the current document. + ;; /DESC + ;; /REFENTRY + (node-list=? node (sgml-root-element node))) + +;; ====================================================================== + +(define (length-string-number-part lenstr) + ;; REFENTRY length-string-number-part + ;; PURP Returns the numeric part of a length string + ;; DESC + ;; Given a length as a string, return the numeric part. + ;; /DESC + ;; EXAMPLE + ;; '"100pt"' returns '"100"'. '"30"' returns '"30"'. + ;; '"in"' returns '""'. + ;; /EXAMPLE + ;; /REFENTRY + (let ((digits '(#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\.))) + (let loop ((chars (string->list lenstr)) + (number-part "")) + (if (or (null? chars) (not (member (car chars) digits))) + number-part + (loop (cdr chars) (string-append number-part + (string (car chars)))))))) + +(define (length-string-unit-part lenstr) + ;; REFENTRY length-string-unit-part + ;; PURP Returns the unit part of a length string + ;; DESC + ;; Given a length as a string, return the units part. + ;; /DESC + ;; EXAMPLE + ;; '"100pt"' returns '"pt"'. '"30"' returns '""'. + ;; '"in"' returns '"in"'. + ;; /EXAMPLE + ;; /REFENTRY + (let ((number-part (length-string-number-part lenstr)) + (strlen (string-length lenstr))) + (if (equal? (string-length number-part) strlen) + "" + (substring lenstr (string-length number-part) strlen)))) + +;; ====================================================================== + +(define (normalize str) + ;; REFENTRY normalize + ;; PURP Normalize the str according to the SGML declaration in effect + ;; DESC + ;; Performs SGML general name normalization on the string; + ;; used to compare attribute names and generic identifiers correctly + ;; according to the SGML declaration in effect; this is necessary + ;; since XML is case-sensitive but the reference concrete syntax and + ;; many SGML DTDs are not. + ;; /DESC + ;; AUTHOR Chris Maden + ;; /REFENTRY + (if (string? str) + (general-name-normalize str + (current-node)) + str)) + +;; ====================================================================== + +(define (node-list->string nodelist) + ;; REFENTRY node-2-string + ;; PURP Return a string representation of the node list + ;; DESC + ;; Builds a string representation of the node list and returns it. + ;; The representation is + ;; + ;; "gi(firstchildgi()secondchildgi(firstgrandchildgi())) secondgi()..." + ;; + ;; This is a debugging function, in case that wasn't obvious... + ;; /DESC + ;; /REFENTRY + (let loop ((nl nodelist) (res "")) + (if (node-list-empty? nl) + res + (loop (node-list-rest nl) + (string-append res + (if (gi (node-list-first nl)) + (string-append + (gi (node-list-first nl)) + "(" + (node-list->string + (children (node-list-first nl))) + ")") + "")))))) + +;; ====================================================================== + +(define (include-file fileref) + ;; REFENTRY include-file + ;; PURP Return the literal content of fileref + ;; DESC + ;; Opens and loads fileref with (read-entity); returns the content + ;; of fileref as a (literal). Trims the last trailing newline off + ;; the file so that "the right thing" happens in asis environments. + ;; /DESC + ;; /REFENTRY + (literal (include-characters fileref))) + +;; ====================================================================== + +(define (include-characters fileref) + ;; REFENTRY include-characters + ;; PURP Return the character content of fileref + ;; DESC + ;; Opens and loads fileref with (read-entity); returns the content + ;; of fileref as characters. Trims the last trailing newline off + ;; the file so that "the right thing" happens in asis environments. + ;; /DESC + ;; /REFENTRY + (let* ((newline #\U-000D) + (file-content (read-entity fileref)) + (file-length (string-length file-content)) + ;; If the last char is a newline, drop it, otherwise print it... + (content (if (equal? newline (string-ref file-content + (- file-length 1))) + (substring file-content 0 (- file-length 1)) + file-content))) + content)) + +;; ====================================================================== + +(define (url-encode-char ch) + ;; REFENTRY url-encode-char + ;; PURP Returns the url-encoded equivalent of a character + ;; DESC + ;; Converts 'ch' to a properly encoded URL character. + ;; /DESC + ;; /REFENTRY + (cond ((char=? ch #\space) "%20") ; space + ((char=? ch #\U-0026) "%26") ; ampersand + ((char=? ch #\?) "%3F") ; question + ((char=? ch #\{) "%7B") ; open curly + ((char=? ch #\}) "%7D") ; close curly + ((char=? ch #\|) "%7C") ; vertical bar + ((char=? ch #\\) "%5C") ; backslash + ((char=? ch #\/) "%2F") ; slash + ((char=? ch #\^) "%5E") ; caret + ((char=? ch #\~) "%7E") ; tilde + ((char=? ch #\[) "%5B") ; open square + ((char=? ch #\]) "%5D") ; close square + ((char=? ch #\`) "%60") ; backtick + ((char=? ch #\%) "%25") ; percent + ((char=? ch #\+) "%2B") ; plus + (else (string ch)))) + +(define (url-encode-string str) + ;; REFENTRY url-encode-string + ;; PURP Returns str with all special characters %-encoded + ;; DESC + ;; Converts 'str' to a properly encoded URL string. Returns str unchanged + ;; if it is not a string. + ;; /DESC + ;; /REFENTRY + (if (string? str) + (let loop ((charlist (string->list str)) (url "")) + (if (null? charlist) + url + (loop (cdr charlist) + (string-append url (url-encode-char (car charlist)))))) + str)) + +;; ====================================================================== + +(define (system-id-filename target) + ;; REFENTRY system-id-filename + ;; PURP Returns the filename part of the system id of target + ;; DESC + ;; The entity-generated-system-id of target seems to begin with a + ;; keyword, usually OSFILE on my system, in angle brackets. + ;; This function removes the leading OSFILE bit. + ;; /DESC + ;; /REFENTRY + (let* ((sysid (entity-generated-system-id target)) + (fnbits (split sysid '(#\>))) + (fntail (cdr fnbits))) + (join fntail "\U-0061;"))) + +;; ====================================================================== + +(define (trim-string str string-list) + ;; REFENTRY trim-string + ;; PURP Trims the tail off of a string + ;; DESC + ;; If 'str' ends with any of the strings in 'string-list', trim that + ;; string off and return the base string. + ;; E.g., '(trim-string "filename.sgm" '(".sgm" ".xml" ".sgml")) + ;; returns "filename". + ;; /DESC + ;; /REFENTRY + (let ((strlen (string-length str))) + (let loop ((sl string-list)) + (if (null? sl) + str + (if (equal? + (substring str (- strlen (string-length (car sl))) strlen) + (car sl)) + (substring str 0 (- strlen (string-length (car sl)))) + (loop (cdr sl))))))) + +;; ====================================================================== + +(define (string-index source target) + ;; REFENTRY string-index + ;; PURP Finds first occurance of 'target' in 'source' + ;; DESC + ;; Returns the position of the first occurance of 'target' in 'source', + ;; or -1 if it does not occur. + ;; /DESC + ;; /REFENTRY + (let loop ((str source) (pos 0)) + (if (< (string-length str) (string-length target)) + -1 + (if (string=? (substring str 0 (string-length target)) target) + pos + (loop (substring str 1 (string-length str)) + (+ pos 1)))))) + +;; ====================================================================== + +(define (parse-pi-attribute pivalues #!optional (skip #f)) + (let* ((equalpos (string-index pivalues "=")) + (name (substring pivalues 0 equalpos)) + (quotchar (substring pivalues (+ equalpos 1) (+ equalpos 2))) + (rest (substring pivalues + (+ equalpos 2) + (string-length pivalues))) + (quotpos (string-index rest quotchar)) + (value (substring rest 0 quotpos)) + (morevals (strip (substring rest + (+ quotpos 1) + (string-length rest))))) + (if skip + morevals + (list name value)))) + +(define (parse-skip-pi-attribute pivalues) + (parse-pi-attribute pivalues #t)) + +(define (parse-starttag-pi pi) + ;; REFENTRY parse-starttag-pi + ;; PURP Parses a structured PI and returns a list of values + ;; DESC + ;; It has become common practice to give PIs structured values. The + ;; result is a PI that looks a lot like a start tag with attributes: + ;; + ;; <?pitarget name1="value1" name2='value2' name3="value '3'"> + ;; + ;; This function parses a PI with this form and returns a list. The + ;; list contains the pitarget and each of the name/value pairs: + ;; + ;; ("pitarget" "name1" "value1" "name2" "value2" "name3" "value '3'") + ;; /DESC + ;; /REFENTRY + (let* ((strippi (strip pi)) + (spacepos (string-index strippi " "))) + (if (< spacepos 0) + (list strippi) + (let* ((pitarget (substring strippi 0 spacepos)) + (pivalues (strip (substring strippi + (+ spacepos 1) + (string-length strippi))))) + (let loop ((values pivalues) (result (list pitarget))) + (if (string=? values "") + result + (loop (parse-skip-pi-attribute values) + (append result (parse-pi-attribute values))))))))) + +;; ====================================================================== + +(define (string->nodes s) + ;; Escape XML characters... + (let* ((achars (string-replace s "&" "&#38;#38;")) + (bchars (string-replace achars "<" "&#38;#60;")) + (cchars (string-replace bchars ">" "&#38;#62;"))) + (let ((doc (string-append "<literal><!DOCTYPE doc [ <!ELEMENT " + "doc - - (#PCDATA)> ]><doc>" cchars ";</doc>"))) + (children (node-property 'docelem (sgml-parse doc)))))) + +;; ====================================================================== + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/olink/ChangeLog b/olink/ChangeLog new file mode 100644 index 0000000..0243ae3 --- /dev/null +++ b/olink/ChangeLog @@ -0,0 +1,4 @@ +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * olink.dsl: New file. + diff --git a/olink/olink.dsl b/olink/olink.dsl new file mode 100644 index 0000000..72b4f25 --- /dev/null +++ b/olink/olink.dsl @@ -0,0 +1,175 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification id="olink" use="docbook"> +<style-specification-body> + +;; $Id: olink.dsl,v 1.1 2001/04/02 21:40:28 nwalsh Exp $ + +(define %doctype-pubid% "-//Norman Walsh//DTD DocBook OLink Summary V1.1//EN") + +(root + (make sequence + (make document-type + name: "div" + public-id: %doctype-pubid%) + (with-mode olink-mode (process-children)))) + +(define (attrs #!optional (nd (current-node))) + (let* ((id (attribute-string (normalize "id") nd)) + (arch (inherited-attribute-string (normalize "arch") nd)) + (conformance (inherited-attribute-string + (normalize "conformance") nd)) + (os (inherited-attribute-string (normalize "os") nd)) + (revision (inherited-attribute-string (normalize "revision") nd)) + (userlevel (inherited-attribute-string (normalize "userlevel") nd)) + (vendor (inherited-attribute-string (normalize "vendor") nd)) + (label (element-label nd #t)) + (gielem (case-fold-down (gi nd))) + (giname (gentext-element-name (gi nd))) + (href (href-to nd))) + (append + (list (list "type" gielem)) + (list (list "name" giname)) + (list (list "href" href)) + (if id (list (list "id" id)) '()) + (if (equal? label "") '() (list (list "label" label))) + (if arch (list (list "arch" arch)) '()) + (if conformance (list (list "conformance" conformance)) '()) + (if os (list (list "os" os)) '()) + (if revision (list (list "revision" revision)) '()) + (if userlevel (list (list "userlevel" userlevel)) '()) + (if vendor (list (list "vendor" vendor)) '())))) + +(define (div #!optional (nd (current-node))) + (let* ((attributes (attrs nd)) + (xreflabel (attribute-string (normalize "xreflabel") nd)) + (title (if xreflabel + xreflabel + (element-title nd)))) + (make element gi: "div" + attributes: attributes + (make element gi: "ttl" + (if (string? title) + (literal title) + (with-mode olink-title-mode + (process-node-list title)))) + (process-children)))) + +(define (obj #!optional (nd (current-node))) + (let* ((attributes (attrs nd)) + (title (element-title nd))) + (make sequence + (make element gi: "obj" + attributes: attributes + (make element gi: "ttl" + (if (string? title) + (literal title) + (with-mode olink-title-mode + (process-node-list title)))) + (process-children))))) + +(mode olink-mode + (default + ;; process only the element children + (let ((elem (let loop ((nl (children (current-node))) + (elem (empty-node-list))) + (if (node-list-empty? nl) + elem + (if (equal? (node-property 'class-name + (node-list-first nl)) + 'element) + (loop (node-list-rest nl) + (node-list elem (node-list-first nl))) + (loop (node-list-rest nl) elem)))))) + (if (node-list-empty? elem) + (empty-sosofo) + (process-node-list elem)))) + + (element set (div)) + (element book (div)) + (element preface (div)) + (element chapter (div)) + (element appendix (div)) + (element part (div)) + (element reference (div)) + (element article (div)) + (element refentry (div)) + + (element section (div)) + (element sect1 (div)) + (element sect2 (div)) + (element sect3 (div)) + (element sect4 (div)) + (element sect5 (div)) + + (element refsect1 (div)) + (element refsect2 (div)) + (element refsect3 (div)) + + (element figure (obj)) + (element example (obj)) + (element table (obj)) + (element equation + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + (empty-sosofo) + (obj))) +) + +(mode olink-title-mode + (default (process-children)) + + (element computeroutput + (make element gi: "tt" + (process-children))) + + (element emphasis + (make element gi: "it" + (process-children))) + + (element filename + (make element gi: "it" + (process-children))) + + (element function + (make element gi: "it" + (process-children))) + + (element literal + (make element gi: "tt" + (process-children))) + + (element markup + (make element gi: "tt" + (process-children))) + + (element quote + (make element gi: "qt" + (process-children))) + + (element replaceable + (make element gi: "it" + (process-children))) + + (element subscript + (make element gi: "sub" + (process-children))) + + (element superscript + (make element gi: "sup" + (process-children))) + + (element userinput + (make element gi: "tt" + (process-children))) +) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/packaging/docbook-style-dsssl.Makefile b/packaging/docbook-style-dsssl.Makefile new file mode 100644 index 0000000..d16b2d7 --- /dev/null +++ b/packaging/docbook-style-dsssl.Makefile @@ -0,0 +1,46 @@ +BINDIR = /usr/bin +DESTDIR = /usr/share/sgml/docbook/dsssl-stylesheets-1.74b + +all: install + +install: install-bin install-dtd install-dsl install-img install-misc + +install-bin: + mkdir -p $(BINDIR) + install bin/collateindex.pl $(BINDIR) + +install-dtd: + mkdir -p $(DESTDIR)/dtds/{decls,dbdsssl,html,imagelib,olink} + cp dtds/decls/docbook.dcl $(DESTDIR)/dtds/decls + cp dtds/decls/xml.dcl $(DESTDIR)/dtds/decls + cp dtds/dbdsssl/dbdsssl.dtd $(DESTDIR)/dtds/dbdsssl + cp dtds/html/dbhtml.dtd $(DESTDIR)/dtds/html + cp dtds/html/ISOlat1.gml $(DESTDIR)/dtds/html + cp dtds/imagelib/imagelib.dtd $(DESTDIR)/dtds/imagelib + cp dtds/olink/olinksum.dtd $(DESTDIR)/dtds/olink + +install-dsl: + mkdir -p $(DESTDIR)/{lib,common,html,print,olink} + cp lib/dblib.dsl $(DESTDIR)/lib + cp common/*.dsl $(DESTDIR)/common + cp common/*.ent $(DESTDIR)/common + cp html/*.dsl $(DESTDIR)/html + cp lib/dblib.dsl $(DESTDIR)/lib + cp print/*.dsl $(DESTDIR)/print + cp olink/*.dsl $(DESTDIR)/olink + +install-img: + mkdir -p $(DESTDIR)/images/callouts + cp images/*.gif $(DESTDIR)/images + cp images/callouts/*.gif $(DESTDIR)/images/callouts + +#install-test: +# mkdir -p $(DESTDIR)/test/{cases,imagelib,xml} +# cp test/*.* $(DESTDIR)/test +# cp test/cases/*.* $(DESTDIR)/test/cases +# cp test/imagelib/*.* $(DESTDIR)/test/imagelib +# cp test/xml/*.* $(DESTDIR)/test/xml + +install-misc: + cp catalog $(DESTDIR) + cp VERSION $(DESTDIR) diff --git a/packaging/docbook-style-dsssl.changes b/packaging/docbook-style-dsssl.changes new file mode 100644 index 0000000..8321f55 --- /dev/null +++ b/packaging/docbook-style-dsssl.changes @@ -0,0 +1,3 @@ +* Fri Aug 31 18:32:31 UTC 2012 - tracy.graydon@intel.com +- TIVI-153: Add docbook-style-dssl as dependency for iputils +- Imported from MeeGo trunk diff --git a/packaging/docbook-style-dsssl.spec b/packaging/docbook-style-dsssl.spec new file mode 100644 index 0000000..6f721ef --- /dev/null +++ b/packaging/docbook-style-dsssl.spec @@ -0,0 +1,89 @@ +#specfile originally created for Fedora, modified for Moblin Linux +Name: docbook-style-dsssl +Version: 1.79 +Release: 5 +Group: Applications/Text + +Summary: Norman Walsh's modular stylesheets for DocBook + +License: Freely redistributable without restriction +URL: http://docbook.sourceforge.net/ + +%define openjadever 1.3.2 +Requires: openjade = %{openjadever} +Requires: docbook-dtds >= 1.0-19 +Requires: sgml-common >= 0.5 +Requires: openjade = %{openjadever} +Conflicts: docbook-utils < 0.6.9-4 + +BuildRoot: %{_tmppath}/%{name}-%{version} + +BuildArch: noarch +Source0: http://prdownloads.sourceforge.net/docbook/docbook-dsssl-%{version}.tar.gz +Source1: %{name}.Makefile + + +%description +These DSSSL stylesheets allow to convert any DocBook document to another +printed (for example, RTF or PostScript) or online (for example, HTML) format. +They are highly customizable. + +%prep +%setup -q -n docbook-dsssl-%{version} +cp %{SOURCE1} Makefile + + +%build + + +%install +DESTDIR=$RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT +make install BINDIR=$DESTDIR/usr/bin DESTDIR=$DESTDIR/usr/share/sgml/docbook/dsssl-stylesheets-%{version} +cd .. +ln -s dsssl-stylesheets-%{version} $DESTDIR/usr/share/sgml/docbook/dsssl-stylesheets + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr (-,root,root) +%doc BUGS README ChangeLog WhatsNew +/usr/bin/collateindex.pl +/usr/share/sgml/docbook/dsssl-stylesheets-%{version} +/usr/share/sgml/docbook/dsssl-stylesheets + + +%post +rel=$(echo /etc/sgml/sgml-docbook-3.0-*.cat) +rel=${rel##*-} +rel=${rel%.cat} +for centralized in /etc/sgml/*-docbook-*.cat +do + /usr/bin/install-catalog --remove $centralized \ + /usr/share/sgml/docbook/dsssl-stylesheets-*/catalog \ + >/dev/null 2>/dev/null +done + +for centralized in /etc/sgml/*-docbook-*$rel.cat +do + /usr/bin/install-catalog --add $centralized \ + /usr/share/sgml/openjade-%{openjadever}/catalog \ + > /dev/null 2>/dev/null + /usr/bin/install-catalog --add $centralized \ + /usr/share/sgml/docbook/dsssl-stylesheets-%{version}/catalog \ + > /dev/null 2>/dev/null +done + + +%preun +if [ "$1" = "0" ]; then + for centralized in /etc/sgml/*-docbook-*.cat + do /usr/bin/install-catalog --remove $centralized /usr/share/sgml/openjade-%{openjadever}/catalog > /dev/null 2>/dev/null + /usr/bin/install-catalog --remove $centralized /usr/share/sgml/docbook/dsssl-stylesheets-%{version}/catalog > /dev/null 2>/dev/null + done +fi +exit 0 + diff --git a/print/ChangeLog b/print/ChangeLog new file mode 100644 index 0000000..17e1726 --- /dev/null +++ b/print/ChangeLog @@ -0,0 +1,327 @@ +2004-10-10 <petere78@users.sourceforge.net> + + * dbadmon.dsl: Fix for bug #522140: Keep admonition titles and contents together when + graphics are used. + + * dbcallou.dsl: Synchronized $callout-verbatim-display$ with $verbatim-display$; fixes + bug #517520 (callout ignores width of programlisting) + + * dbttlpg.dsl: Give othercredit some useful rendering in print output, by copying over the + author rendering. Fix author-list-string for authorgroups that contain + both authors and othercredits. (bug #1038081) + +2004-10-09 <petere78@users.sourceforge.net> + + * dbprint.dsl, dbverb.dsl: Patch #571688: Fixes excessive after spacing when a listitem contains + multiple paras or verbatim environments. Patches originally by Tim Waugh + and Tammy Fox. + + * docbook.dsl: New Bulgarian translation by Viktor Vasilev (SF patch #1040075) + +2004-09-17 <petere78@users.sourceforge.net> + + * docbook.dsl: Bosnian translation by Kemal Skripic + +2004-09-14 <petere78@users.sourceforge.net> + + * dbblock.dsl: Fix for bug #502066: Empty ulinks don't generate footnotes, so they should + be omitted from the footnote counting. Patch by Bruce A. Mah. + + * dbprint.dsl: Fix for bug #529969: Make italic monospace and strong monospace inherit + verbatim-size-factor. Patch by David Aumueller. + +2004-07-11 <nyraghu@users.sourceforge.net> + + * version.dsl: Closes Bug 912831: the last character of VERSION was being cut off. + +2003-12-05 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbdivis.dsl: fix a bug when multiple elements in $generate-book-lot-list$ had content; whitespace and comment updates + +2003-04-29 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbcompon.dsl: Finding the subtitle for a component should use the parent title if + set; this is consistent with how the title is already set; + closes SF bug 613773. + + * dbcompon.dsl: Suppress some cases where components were restarting page numbering, + fix from Ian Castle; closes SF bug 439751. + + * dbparam.dsl: Correct reference to undefined variable + "admon-graphic-default-extension". + + * dbttlpg.dsl: Add elements to print version of article-titlepage-recto-elements so + that it matches the HTML version, fixes SF bug 626909. + +2003-04-26 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbparam.dsl: rename parameter admon-graphic-default-extension to + %admon-graphics-extension% for consistency + + * dbparam.dsl: Note that %admon-graphics-path% requires the trailing directory separator + -- + + * dbparam.dsl: %admon-graphics-extension% will use the old name, + admon-graphic-default-extension, if set + +2003-03-25 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * db31.dsl, dbblock.dsl, dbcompon.dsl, dbgraph.dsl, dbinline.dsl, dbqanda.dsl, dbsect.dsl, docbook.dsl: + move data from db31 into its proper component files + +2003-03-24 Jirka Kosek <kosek@users.sourceforge.net> + + * dbttlpg.dsl: Added support for revdescription inside revison on titlepages + +2003-03-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: Don't hardcode DSSSL file list, use $(wildcard *.dsl); clean is cleaner + +2003-02-17 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl, dbtitle.dsl: More cases where process-children-trim should be used. + + * dbcompon.dsl: Add some comments in the ARTICLE element. + + * dblists.dsl: In process-listitem-content replace (process-node-list (children + (current-node))) with (process-children-trim) -- we need to be + trimming whitespace. Some retabbing. + + * dbprint.dsl: $paragraph$ should use (process-children-trim); this fixes a space + indent in RTF output on all PARAs marked up like: + <para> + Content ... + + * dbtable.dsl: Remove the %cals-cell-before-column-margin% hack for TeX backend, it's + not needed anymore. + +2003-02-13 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl: element footnote/para uses default-text-style; set lines: wrap for the + case of endnotes within verbatim 'asis' environments, but it doesn't + seem to actually help (cf test programlisting.004) + +2003-02-07 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbttlpg.dsl: some space over copyright; fixes Bug #542681 + +2003-01-21 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbparam.dsl: correct discussion of possible settings for %paper-type% and %visual-acuity% + +2003-01-15 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbadmon.dsl, dbautoc.dsl, dbblock.dsl, dbcallou.dsl, dbdivis.dsl, dbefsyn.dsl, dbgloss.dsl, dbgraph.dsl, dbindex.dsl, dbinfo.dsl, dbinline.dsl, dblink.dsl, dblists.dsl, dblot.dsl, dbmath.dsl, dbmsgset.dsl, dbprint.dsl, dbprocdr.dsl, dbrfntry.dsl, dbsect.dsl, dbsynop.dsl, dbtable.dsl, dbtitle.dsl, dbverb.dsl, docbook.dsl, notoc.dsl, plain.dsl: + update docbook URL to http://docbook.sourceforge.net/projects/dsssl/; + N.B.: credit for the group option and repeating goes to John Daily + + * dbblock.dsl, dbparam.dsl: parameters for %formal-object-title-font-weight% + %table-title-font-weight%, reviewed and tested, sourceforge patch #599366 + + * dblink.dsl: xref to varlistentry using the term, patch from Jens Emmerich; closes + bug 520561 + + * dbsect.dsl: make <section> appear correctly in the PDF bookmark hierarchy; also + fix font size selection for section titles + + corrects sourceforge bugs 589247 and 524028; patch from Carsten Haese + appreciated + + * dbsynop.dsl: Patch #562401 <group choice="opt" rep="repeat">, elipsis should be + outside of group, reference test cmdsynopsis.003 + +2002-12-16 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * dbblock.dsl, dbparam.dsl: %epigraph-start-indent% and %epigraph-end-indent% parameters allows + customization of epigraph positioning; %blockquote-start-indent% and + %blockquote-end-indent% parameters allows customization control of the + blockquote positioning + +2002-08-08 Adam Di Carlo <adicarlo@users.sourceforge.net> + + * Makefile: clean rule + +2002-06-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbblock.dsl: Patch #473114: Footnote inherit font family + +2002-06-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbbibl.dsl, dbttlpg.dsl: Fix bug #502337: remove 'by' from copyright statements + +2002-05-22 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbblock.dsl: Support attribution on blockquote + + * dbinfo.dsl: Support chapterinfo, prefaceinfo, and appendixinfo + +2002-05-12 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbttlpg.dsl: Bug #494693: bad formalpara formatting on title pages + + * dbverb.dsl: Bugs #429663 and #474328 fixed (allow external linespecific content to be indented and numbered). Eight bit or unicode external linespecific content may be problematic though. + +2002-05-09 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblink.dsl: Allow xref to refnamediv + + * dblists.dsl: Bug #469318: fix variablelist indents + +2002-04-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbefsyn.dsl, dbverb.dsl: Format synopsis elements correctly outside of classsynopsis + +2002-03-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbautoc.dsl: Find titles in any context + +2002-03-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbefsyn.dsl: Support freestanding {method,field,constructor,destructor}synopsis + +2002-02-20 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbblock.dsl: Bug #429331: center figure title if image is centered + +2002-02-11 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbdivis.dsl, dbttlpg.dsl: Patch #502637: avoid blank page between title page recto/verso + + * dbsect.dsl: Add section-info function + +2001-12-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbindex.dsl: Patch #468644: Fix font sizes in index + + * dbprint.dsl: Bug #465133: Insufficient conditions on is-first-para + + * dbttlpg.dsl: Bug #465136: Verso authorgroup broken for editors--still broken but a little better + + * dbttlpg.dsl: Patch #470589: Abstracts indents should be relative + +2001-11-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblink.dsl: Patch #473113: No footnote ulink when text matches + + * dbsect.dsl: Patch #473116: Section levels + + * dbttlpg.dsl: Patch #473115: Heading levels for parts + + * docbook.dsl: Fix typo that causes the print stylesheet to break. + + * docbook.dsl: New file. + +2001-11-27 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbgloss.dsl, dbindex.dsl: Attempt to handle glossary and index in article correctly + +2001-11-14 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dsl: branches: 1.5.2; + Added Basque, Nynorsk, Ukranian, and Xhosa + +2001-11-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbinline.dsl: Support pubwork=article on citetitle + +2001-10-13 Jirka Kosek <kosek@users.sourceforge.net> + + * dbinline.dsl: Fixed bug #470840 - added support for methodname. + +2001-10-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbverb.dsl: Support linenumbering attribute on verbatim environments + +2001-09-29 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbadmon.dsl: Bug #449775: remove broken keep-with-next properties + + * dbcallou.dsl: Bug #449494: make callouts work even if they appear on the last line of a verbatim environment + +2001-09-23 Norman Walsh <nwalsh@users.sourceforge.net> + + * dblink.dsl: Patch #461352, fix bug with ulink-footnotes and bop-footnotes simultaneously + +2001-08-30 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Fix XML/SGML discrepancy wrt normalization of notation names; move some common stuff into dbcommon + +2001-08-06 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbadmon.dsl: Patches #441806, keep with next in admonitions + + * dbinline.dsl: Support 'bold' and 'strong' roles on emphasis in the expected way, added %{emphasis,phrase}-propagates-style% parameters + + * docbook.dsl: Patches #439975, support OpenJade two-sided characteristics + +2001-08-01 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbttlpg.dsl: Don't suppress keywordset if it's put on the title page + +2001-07-07 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbdivis.dsl: Don't restart page numbering on ToC pages + + * notoc.dsl: Bug #439065, use correct parameters + +2001-07-05 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbparam.dsl: Patch #420012, Add colon to content-title-end-punct + +2001-07-04 <uid48421@users.sourceforge.net> + + * db31.dsl: Bug #426745, don't make first para of question and answer bold + + * dbblock.dsl: Bug #436220, fix table footnotes when bop-footnotes is #t + + * dbgloss.dsl, dblists.dsl, dbrfntry.dsl, dbtitle.dsl: + Bug #420015: set heading-level appropriately in glossary + + * dblists.dsl: Bug #418633, attempt to fix indentation in variablelists + + * docbook.dsl: Added Afrikaans and Turkish + +2001-05-11 Norman Walsh <nwalsh@users.sourceforge.net> + + * docbook.dsl: Support Serbian and Traditional Chinese + +2001-05-03 Jirka Kosek <kosek@users.sourceforge.net> + + * dbinline.dsl: Added support for class="xmlpi" and class="emptytag" in <sgmltag>. + Element and attribute names displayed in monospace, same way as in HTML by XSL. + +2001-04-27 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Handle display? property correctly on imagedata graphics + +2001-04-24 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Bug #418474: only output a space after the qanda label if the label isn't empty + +2001-04-21 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbautoc.dsl: Make top-level entries in the TOC 'keep-with-next' + +2001-04-16 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbttlpg.dsl: Bug #414681: add heading-level to set and book titles + +2001-04-15 Norman Walsh <nwalsh@users.sourceforge.net> + + * dbblock.dsl: Force upright posture and default quadding in footnote text + + * dblists.dsl: Format variablelist title in the table when a variablelist is formatted with a table + +2001-04-04 Norman Walsh <nwalsh@users.sourceforge.net> + + * Makefile: New file. + +2001-04-03 Norman Walsh <nwalsh@users.sourceforge.net> + + * db31.dsl: Fix bug 412548, allow WMF in media objects + +2001-04-02 Norman Walsh <nwalsh@users.sourceforge.net> + + * .cvsignore, catalog, db31.dsl, dbadmon.dsl, dbautoc.dsl, dbbibl.dsl, dbblock.dsl, dbcallou.dsl, dbcompon.dsl, dbdivis.dsl, dbefsyn.dsl, dbgloss.dsl, dbgraph.dsl, dbindex.dsl, dbinfo.dsl, dbinline.dsl, dblink.dsl, dblists.dsl, dblot.dsl, dbmath.dsl, dbmsgset.dsl, dbparam.dsl, dbprint.dsl, dbprocdr.dsl, dbrfntry.dsl, dbsect.dsl, dbsynop.dsl, dbtable.dsl, dbtitle.dsl, dbttlpg.dsl, dbverb.dsl, docbook.dsl, notoc.dsl, plain.dsl, version.dsl: + Initial checkins + diff --git a/print/XREF b/print/XREF new file mode 100644 index 0000000..3ec54e8 --- /dev/null +++ b/print/XREF @@ -0,0 +1,2 @@ +Symbol Defined In Used In +================== ============================= ============================= diff --git a/print/catalog b/print/catalog new file mode 100644 index 0000000..f5ce23a --- /dev/null +++ b/print/catalog @@ -0,0 +1,3 @@ +CATALOG "../catalog" + + diff --git a/print/dbadmon.dsl b/print/dbadmon.dsl new file mode 100644 index 0000000..a765847 --- /dev/null +++ b/print/dbadmon.dsl @@ -0,0 +1,161 @@ +;; $Id: dbadmon.dsl,v 1.5 2004/10/10 14:18:40 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================ ADMONITIONS ============================= + +(define ($graphical-admonition$) + (let* ((adm (current-node)) + (title (select-elements (children adm) + (normalize "title"))) + (title? (not (node-list-empty? title))) + (adm-title (if title? + (with-mode title-sosofo-mode + (process-node-list (node-list-first title))) + (literal (gentext-element-name adm)))) + (graphic (make external-graphic + display?: #f + entity-system-id: ($admon-graphic$))) + (f-child (node-list-first (children (current-node)))) + (r-child (node-list-rest (children (current-node))))) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: (+ (inherited-start-indent) ($admon-graphic-width$)) + font-family-name: %admon-font-family% + font-size: (- %bf-size% 1pt) + font-weight: 'medium + font-posture: 'upright + line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) + (if title? + (make display-group + (make paragraph + first-line-start-indent: (- ($admon-graphic-width$)) + keep-with-next?: #t + (make line-field + field-width: ($admon-graphic-width$) + graphic) + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + adm-title)) + (process-children)) + (make display-group + (make paragraph + first-line-start-indent: (- ($admon-graphic-width$)) + (make line-field + field-width: ($admon-graphic-width$) + graphic) + (process-node-list (children f-child))) + (process-node-list r-child)))))) + +(define ($admonition$) + (if %admon-graphics% + ($graphical-admonition$) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: (if %admon-graphics% + (inherited-start-indent) + (+ (inherited-start-indent) (* (ILSTEP) 2))) + font-size: (- %bf-size% 1pt) + font-weight: 'medium + font-posture: 'upright + font-family-name: %admon-font-family% + line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) + (process-children)))) + +(define ($admonpara$) + (let* ((title (select-elements + (children (parent (current-node))) (normalize "title"))) + (has-title (not (node-list-empty? title))) + (adm-title (if has-title + (make sequence + (with-mode title-sosofo-mode + (process-node-list (node-list-first title))) + (literal (gentext-label-title-sep + (gi (parent (current-node)))))) + (literal + (gentext-element-name + (parent (current-node))) + (gentext-label-title-sep + (gi (parent (current-node)))))))) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + (if (and (not %admon-graphics%) (= (child-number) 1)) + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + adm-title) + (empty-sosofo)) + (process-children-trim)))) + +(element important ($admonition$)) +(element (important title) (empty-sosofo)) +(element (important para) ($admonpara$)) +(element (important simpara) ($admonpara$)) + +(element note ($admonition$)) +(element (note title) (empty-sosofo)) +(element (note para) ($admonpara$)) +(element (note simpara) ($admonpara$)) + +(element tip ($admonition$)) +(element (tip title) (empty-sosofo)) +(element (tip para) ($admonpara$)) +(element (tip simpara) ($admonpara$)) + +;; perils are given special treatment by generating a centered title +;; and throwing a box around them +;; note that the paragraph indents are set by the box characteristics +;; +(define ($peril$) + (let* ((title (select-elements + (children (current-node)) (normalize "title"))) + (has-title (not (node-list-empty? title))) + (adm-title (if has-title + (make sequence + (with-mode title-sosofo-mode + (process-node-list (node-list-first title)))) + (literal + (gentext-element-name + (current-node))))) + (hs (HSIZE 2))) + (if %admon-graphics% + ($graphical-admonition$) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + font-family-name: %admon-font-family% + font-size: (- %bf-size% 1pt) + font-weight: 'medium + font-posture: 'upright + line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) + (make box + display?: #t + box-type: 'border + line-thickness: 2pt + start-indent: (+ (inherited-start-indent) (* 2 (ILSTEP)) 2pt) + end-indent: (inherited-end-indent) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: 1em + end-indent: 1em + font-family-name: %title-font-family% + font-weight: 'bold + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + quadding: 'center + keep-with-next?: #t + adm-title) + (process-children)))))) + +(element caution ($peril$)) +(element (caution title) (empty-sosofo)) + +(element warning ($peril$)) +(element (warning title) (empty-sosofo)) diff --git a/print/dbautoc.dsl b/print/dbautoc.dsl new file mode 100644 index 0000000..2197c4a --- /dev/null +++ b/print/dbautoc.dsl @@ -0,0 +1,179 @@ +;; $Id: dbautoc.dsl,v 1.4 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================== TABLE OF CONTENTS ========================= + +(define %toc-indent% 2pi) +(define %toc-spacing-factor% 0.4) + +;; Returns the depth of auto TOC that should be made at the nd-level +(define (toc-depth nd) + (if (string=? (gi nd) (normalize "book")) + 7 + 1)) + +(define (format-page-number) + (current-node-page-number-sosofo)) + +;; Prints the TOC title if first? is true, otherwise does nothing +(define (toc-title first?) + (let ((hsize (if (or (equal? (gi (current-node)) (normalize "article")) + (equal? (gi (current-node)) (normalize "part"))) + (HSIZE 3) + (HSIZE 4)))) + (if first? + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-size: hsize + line-spacing: (* hsize %line-spacing-factor%) + space-before: (* hsize %head-before-factor%) + space-after: (* hsize %head-after-factor%) + start-indent: 0pt + first-line-start-indent: 0pt + quadding: %component-title-quadding% + heading-level: (if %generate-heading-level% 1 0) + keep-with-next?: #t + (literal (gentext-element-name (normalize "toc")))) + (empty-sosofo)))) + +;; Prints the TOC title if first? is true, otherwise does nothing +(define (lot-title first? lotgi) + (if first? + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + space-after: (* (HSIZE 4) %head-after-factor%) + start-indent: 0pt + first-line-start-indent: 0pt + quadding: %component-title-quadding% + heading-level: (if %generate-heading-level% 1 0) + keep-with-next?: #t + (literal ($lot-title$ lotgi))) + (empty-sosofo))) + +;; Print the TOC entry for tocentry +(define ($toc-entry$ tocentry level) + (make paragraph + start-indent: (+ %body-start-indent% + (* %toc-indent% level)) + first-line-start-indent: (* -1 %toc-indent%) + font-weight: (if (= level 1) 'bold 'medium) + space-before: (if (= level 1) (* %toc-spacing-factor% 6pt) 0pt) + space-after: (if (= level 1) (* %toc-spacing-factor% 6pt) 0pt) + keep-with-next?: (if (= level 1) #t #f) + quadding: 'start + (make link + destination: (node-list-address tocentry) + (make sequence + (if (equal? (element-label tocentry) "") + (empty-sosofo) + (make sequence + (element-label-sosofo tocentry) + (literal (gentext-label-title-sep (gi tocentry))))) + (element-title-sosofo tocentry))) + (if (and (= level 1) + ;; ??? %chapter-title-page-separate% + %page-number-restart%) + (empty-sosofo) ;; Don't need the leader etc then + (make sequence + (make leader (literal ".")) + (make link + destination: (node-list-address tocentry) + (make sequence + (if %page-number-restart% + (literal + (string-append + (if (= level 1) + (element-label tocentry #t) + (substring (element-label tocentry #t) + 0 (string-index (element-label tocentry #t) "."))) + (gentext-intra-label-sep "_pagenumber"))) + (empty-sosofo)) + (with-mode toc-page-number-mode + (process-node-list tocentry)))))))) + +;; Build a TOC starting at nd reaching down depth levels. +;; The optional arguments are used on recursive calls to build-toc +;; and shouldn't be set by the initial caller... +;; +(define (build-toc nd depth #!optional (first? #t) (level 1)) + (let* ((toclist (toc-list-filter + (node-list-filter-by-gi (children nd) + (append (division-element-list) + (component-element-list) + (section-element-list)))))) + (if (or (<= depth 0) + (node-list-empty? toclist)) + (empty-sosofo) + (make sequence + (toc-title first?) + (let loop ((nl toclist)) + (if (node-list-empty? nl) + (empty-sosofo) + (sosofo-append + ($toc-entry$ (node-list-first nl) level) + (build-toc (node-list-first nl) (- depth 1) #f (+ level 1)) + (loop (node-list-rest nl))))))))) + +;; Print the LOT entry +(define ($lot-entry$ tocentry) + (make paragraph + start-indent: (+ %body-start-indent% %toc-indent%) + first-line-start-indent: (* -1 %toc-indent%) + font-weight: 'medium + space-before: 0pt + space-after: 0pt + quadding: 'start + (make link + destination: (node-list-address tocentry) + (make sequence + (if (equal? (element-label tocentry) "") + (empty-sosofo) + (make sequence + (element-label-sosofo tocentry #t) + (literal (gentext-label-title-sep (gi tocentry))))) + (element-title-sosofo tocentry))) + (make leader (literal ".")) + (make link + destination: (node-list-address tocentry) + (make sequence + (if %page-number-restart% + (make sequence + (literal (substring (element-label tocentry #t) + 0 (string-index (element-label tocentry #t) "-"))) + (literal (gentext-intra-label-sep "_pagenumber"))) + (empty-sosofo)) + (with-mode toc-page-number-mode + (process-node-list tocentry)))))) + +;; Build a LOT starting at nd for all the lotgi's it contains. +;; The optional arguments are used on recursive calls to build-toc +;; and shouldn't be set by the initial caller... +;; +(define (build-lot nd lotgi #!optional (first? #t)) + (let* ((lotlist (select-elements (descendants nd) + (normalize lotgi)))) + (if (node-list-empty? lotlist) + (empty-sosofo) + (make sequence + (lot-title first? lotgi) + (let loop ((nl lotlist)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (string=? (gi (node-list-first nl)) lotgi) + ($lot-entry$ (node-list-first nl)) + (empty-sosofo)) + (build-lot (node-list-first nl) lotgi #f) + (loop (node-list-rest nl))))))))) + +(mode toc-page-number-mode + (default + (format-page-number))) diff --git a/print/dbbibl.dsl b/print/dbbibl.dsl new file mode 100644 index 0000000..38340a9 --- /dev/null +++ b/print/dbbibl.dsl @@ -0,0 +1,868 @@ +;; $Id: dbbibl.dsl,v 1.2 2002/06/09 12:04:09 nwalsh Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ......................... BIBLIOGRAPHY PARAMS ......................... + +;; these should be in dbparam... +(define %biblsep% ", ") +(define %biblend% ".") + +(define %biblioentry-in-entry-order% #t) + +;; .................... BIBLIOGRAPHY and BIBLIODIV ...................... + +(define (bibliography-content) + ;; Note that the code below works for both the case where the bibliography + ;; has BIBLIODIVs and the case where it doesn't, by the slightly subtle + ;; fact that if it does, then allentries will be (empty-node-list). + (let* ((allbibcontent (children (current-node))) + (prebibcontent (node-list-filter-by-not-gi + allbibcontent + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (allentries (node-list-filter-by-gi + allbibcontent + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (entries (if biblio-filter-used + (biblio-filter allentries) + allentries))) + (make sequence + (process-node-list prebibcontent) + (process-node-list entries)))) + +(element (book bibliography) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: (or %page-number-restart% + (book-start?) + (first-chapter?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + (make sequence + ($component-title$) + (bibliography-content)) + (make-endnotes))) + +(element bibliography + ;; A bibliography that's inside something else... + (let* ((sect (ancestor-member (current-node) + (append (section-element-list) + (component-element-list)))) + (hlevel (+ (SECTLEVEL sect) 1)) + (hs (HSIZE (- 4 hlevel)))) + (make sequence + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< hlevel 5) 'bold 'medium) + font-posture: (if (< hlevel 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: (if (or (>= hlevel 3) + (member (gi) (list (normalize "refsect1") + (normalize "refsect2") + (normalize "refsect3")))) + %body-start-indent% + 0pt) + first-line-start-indent: 0pt + quadding: %section-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% (+ hlevel 1) 0) + (element-title-sosofo (current-node))) + (bibliography-content)))) + +(element (bibliography title) (empty-sosofo)) + +(element bibliodiv + (let* ((allentries (node-list-filter-by-gi (children (current-node)) + (list (normalize "biblioentry") + (normalize "bibliomixed")))) + (entries (if biblio-filter-used + (biblio-filter allentries) + allentries))) + (if (and biblio-filter-used (node-list-empty? entries)) + (empty-sosofo) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: %body-start-indent% + (make sequence + ($section-title$) + (process-node-list entries)))))) + +(element (bibliodiv title) (empty-sosofo)) + +;; ..................... BIBLIOGRAPHY ENTRIES ......................... + +(define (biblioentry-inline-sep node rest) + ;; Output the character that should separate inline node from rest + (cond + ((and (equal? (gi node) (normalize "title")) + (equal? (gi (node-list-first rest)) (normalize "subtitle"))) + (make sequence + font-posture: 'italic + (literal ": "))) + (else + (literal %biblsep%)))) + +(define (biblioentry-inline-end blocks) + ;; Output the character that should occur at the end of inline + (literal %biblend%)) + +(define (biblioentry-block-sep node rest) + ;; Output the character that should separate block node from rest + (empty-sosofo)) + +(define (biblioentry-block-end) + ;; Output the character that should occur at the end of block + (empty-sosofo)) + +(element biblioentry + (let* ((expanded-children (expand-children + (children (current-node)) + (biblioentry-flatten-elements))) + (all-inline-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-inline-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-inline-elements) + expanded-children))) + (block-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-block-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-block-elements) + expanded-children))) + (leading-abbrev (if (equal? (normalize "abbrev") + (gi (node-list-first + all-inline-children))) + (node-list-first all-inline-children) + (empty-node-list))) + (inline-children (if (node-list-empty? leading-abbrev) + all-inline-children + (node-list-rest all-inline-children))) + (has-leading-abbrev? (not (node-list-empty? leading-abbrev))) + (xreflabel (if (or has-leading-abbrev? biblio-number) + #f + (attribute-string (normalize "xreflabel"))))) + (make display-group + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) 2pi) + first-line-start-indent: -2pi + + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]\no-break-space;")) + (empty-sosofo)) + + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-inline-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-inline-end block-children) + (biblioentry-inline-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl)))))) + + (make display-group + start-indent: (+ (inherited-start-indent) 2pi) + (let loop ((nl block-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-block-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-block-end) + (biblioentry-block-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl))))))))) + +(mode biblioentry-inline-mode + (element abbrev + (make sequence + (process-children))) + + (element affiliation + (let ((inline-children (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "address"))))) + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (process-node-list (node-list-first nl)) + (if (node-list-empty? (node-list-rest nl)) + (empty-sosofo) + (literal ", ")) + (loop (node-list-rest nl))))))) + + (element artpagenums + (make sequence + (process-children))) + + (element author + (literal (author-list-string))) + + (element authorgroup + (process-children)) + + (element authorinitials + (make sequence + (process-children))) + + (element collab + (let* ((nl (children (current-node))) + (collabname (node-list-first nl)) + (affil (node-list-rest nl))) + (make sequence + (process-node-list collabname) + (if (node-list-empty? affil) + (empty-sosofo) + (let loop ((nl affil)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (literal ", ") + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl))))))))) + + (element (collab collabname) + (process-children)) + + (element confgroup + (let ((inline-children (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "address"))))) + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (process-node-list (node-list-first nl)) + (if (node-list-empty? (node-list-rest nl)) + (empty-sosofo) + (literal ", ")) + (loop (node-list-rest nl))))))) + + (element contractnum + (process-children)) + + (element contractsponsor + (process-children)) + + (element contrib + (process-children)) + + (element copyright + ;; Just print the year(s) + (let ((years (select-elements (children (current-node)) + (normalize "year")))) + (process-node-list years))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element corpauthor + (make sequence + (process-children))) + + (element corpname + (make sequence + (process-children))) + + (element date + (make sequence + (process-children))) + + (element edition + (make sequence + (process-children))) + + (element editor + (make sequence + (literal (gentext-edited-by)) + (literal " ") + (literal (author-list-string)))) + + (element firstname + (make sequence + (process-children))) + + (element honorific + (make sequence + (process-children))) + + (element invpartnumber + (make sequence + (process-children))) + + (element isbn + (make sequence + (process-children))) + + (element issn + (make sequence + (process-children))) + + (element issuenum + (make sequence + (process-children))) + + (element lineage + (make sequence + (process-children))) + + (element orgname + (make sequence + (process-children))) + + (element othercredit + (literal (author-list-string))) + + (element othername + (make sequence + (process-children))) + + (element pagenums + (make sequence + (process-children))) + + (element productname + (make sequence + ($charseq$) +; this is actually a problem since "trade" is the default value for +; the class attribute. we can put this back in in DocBook 5.0, when +; class becomes #IMPLIED +; (if (equal? (attribute-string "class") (normalize "trade")) +; (literal "\trade-mark-sign;") +; (empty-sosofo)) + )) + + (element productnumber + (make sequence + (process-children))) + + (element pubdate + (make sequence + (process-children))) + + (element publisher + (let ((pubname (select-elements (children (current-node)) + (normalize "publishername"))) + (cities (select-elements (descendants (current-node)) + (normalize "city")))) + (make sequence + (process-node-list pubname) + (if (node-list-empty? cities) + (empty-sosofo) + (literal ", ")) + (process-node-list cities)))) + + (element publishername + (make sequence + (process-children))) + + (element (publisher address city) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (empty-sosofo)))) + + (element pubsnumber + (make sequence + (process-children))) + + (element releaseinfo + (make sequence + (process-children))) + + (element seriesvolnums + (make sequence + (process-children))) + + (element subtitle + (make sequence + font-posture: 'italic + (process-children))) + + (element surname + (make sequence + (process-children))) + + (element title + (make sequence + font-posture: 'italic + (process-children))) + + (element titleabbrev + (make sequence + (process-children))) + + (element volumenum + (make sequence + (process-children))) + + (element (bibliomixed title) + (make sequence + font-posture: 'italic + (process-children))) + + + (element (bibliomixed subtitle) + (make sequence + font-posture: 'italic + (process-children))) + + (element (biblioset title) + (let ((rel (case-fold-up + (inherited-attribute-string (normalize "relation"))))) + (cond + ((equal? rel "ARTICLE") (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote)))) + (else (make sequence + font-posture: 'italic + (process-children)))))) + + (element (bibliomset title) + (let ((rel (case-fold-up + (inherited-attribute-string (normalize "relation"))))) + (cond + ((equal? rel "ARTICLE") (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote)))) + (else (make sequence + font-posture: 'italic + (process-children)))))) +) + +(mode biblioentry-block-mode + (element abstract + (make display-group + (process-children))) + + (element (abstract title) + (make paragraph + font-weight: 'bold + (process-children))) + + (element address + ($linespecific-display$ %indent-address-lines% %number-address-lines%)) + + (element authorblurb + (make display-group + (process-children))) + + (element printhistory + (make display-group + (process-children))) + + (element revhistory + (make sequence + (make paragraph + font-weight: 'bold + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (make table-column + column-number: 1 + width: (/ (- %body-width% (inherited-start-indent)) 3)) + (make table-column + column-number: 2 + width: (/ (- %body-width% (inherited-start-indent)) 3)) + (make table-column + column-number: 3 + width: (/ (- %body-width% (inherited-start-indent)) 3)) + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (node-list-filter-by-gi + (descendants (current-node)) + (list (normalize "revremark") + (normalize "revdescription"))))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revnumber)) + (make paragraph + (make sequence + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber))) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revdate)) + (make paragraph + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revauthor)) + (make paragraph + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor))) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + (if (not (node-list-empty? revremark)) + (make paragraph + space-after: %block-sep% + (process-node-list revremark)) + (empty-sosofo))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesinfo + ;; This is a nearly biblioentry recursively... + (let* ((expanded-children (expand-children + (children (current-node)) + (biblioentry-flatten-elements))) + (all-inline-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-inline-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-inline-elements) + expanded-children))) + (block-children (if %biblioentry-in-entry-order% + (titlepage-gi-list-by-nodelist + (biblioentry-block-elements) + expanded-children) + (titlepage-gi-list-by-elements + (biblioentry-block-elements) + expanded-children))) + (inline-children all-inline-children)) + (make display-group + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) 2pi) + first-line-start-indent: -2pi + + (let loop ((nl inline-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-inline-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-inline-end block-children) + (biblioentry-inline-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl)))))) + + (make display-group + start-indent: (+ (inherited-start-indent) 2pi) + (let loop ((nl block-children)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (with-mode biblioentry-block-mode + (process-node-list (node-list-first nl))) + (if (node-list-empty? (node-list-rest nl)) + (biblioentry-block-end) + (biblioentry-block-sep (node-list-first nl) + (node-list-rest nl))) + (loop (node-list-rest nl))))))))) +) + +(element bibliomixed + (let* ((all-inline-children (children (current-node))) + (leading-abbrev (if (equal? (normalize "abbrev") + (gi (node-list-first + all-inline-children))) + (node-list-first all-inline-children) + (empty-node-list))) + (inline-children (if (node-list-empty? leading-abbrev) + all-inline-children + (node-list-rest all-inline-children))) + (has-leading-abbrev? (not (node-list-empty? leading-abbrev))) + (xreflabel (if (or has-leading-abbrev? biblio-number) + #f + (attribute-string (normalize "xreflabel"))))) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) 2pi) + first-line-start-indent: -2pi + + (if (or biblio-number xreflabel has-leading-abbrev?) + (make sequence + (literal "[") + + (if biblio-number + (literal (number->string (bibentry-number (current-node)))) + (empty-sosofo)) + + (if xreflabel + (literal xreflabel) + (empty-sosofo)) + + (if has-leading-abbrev? + (with-mode biblioentry-inline-mode + (process-node-list leading-abbrev)) + (empty-sosofo)) + + (literal "]\no-break-space;")) + (empty-sosofo)) + + (with-mode biblioentry-inline-mode + (process-children))))) + +;; ....................... BIBLIOGRAPHY ELEMENTS ....................... + +;; These are element construction rules for bibliography elements that +;; may occur outside of a BIBLIOENTRY or BIBLIOMIXED. + +(element bibliomisc (process-children)) +(element bibliomset (process-children)) +(element biblioset (process-children)) +(element bookbiblio (process-children)) + +(element street ($charseq$)) +(element pob ($charseq$)) +(element postcode ($charseq$)) +(element city ($charseq$)) +(element state ($charseq$)) +(element country ($charseq$)) +(element phone ($charseq$)) +(element fax ($charseq$)) +(element otheraddr ($charseq$)) +(element affiliation ($charseq$)) +(element shortaffil ($charseq$)) +(element jobtitle ($charseq$)) +(element orgdiv ($charseq$)) +(element artpagenums ($charseq$)) + +(element author + (make sequence + (literal (author-list-string)))) + +(element authorgroup (process-children)) + +(element collab (process-children)) +(element collabname ($charseq$)) +(element authorinitials ($charseq$)) +(element confgroup (process-children)) +(element confdates ($charseq$)) +(element conftitle ($charseq$)) +(element confnum ($charseq$)) +(element confsponsor ($charseq$)) +(element contractnum ($charseq$)) +(element contractsponsor ($charseq$)) + +(element copyright + (make paragraph + (make sequence + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children-trim)))) + +(element year + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + +(element holder ($charseq$)) + +(element corpauthor + (make sequence + (literal (author-list-string)))) + +(element corpname ($charseq$)) +(element date ($charseq$)) +(element edition ($charseq$)) +(element editor ($charseq$)) +(element isbn ($charseq$)) +(element issn ($charseq$)) +(element invpartnumber ($charseq$)) +(element issuenum ($charseq$)) + +(element legalnotice ($semiformal-object$)) +(element (legalnotice title) (empty-sosofo)) + +(element modespec (empty-sosofo)) + +(element orgname ($charseq$)) + +(element othercredit + (make sequence + (literal (author-list-string)))) + +(element pagenums ($charseq$)) +(element contrib ($charseq$)) + +(element firstname ($charseq$)) +(element honorific ($charseq$)) +(element lineage ($charseq$)) +(element othername ($charseq$)) +(element surname ($charseq$)) + +(element printhistory (empty-sosofo)) + +(element productname + (make sequence + ($charseq$) +; this is actually a problem since "trade" is the default value for +; the class attribute. we can put this back in in DocBook 5.0, when +; class becomes #IMPLIED +; (if (equal? (attribute-string "class") (normalize "trade")) +; (literal "\trade-mark-sign;") +; (empty-sosofo)) +)) + +(element productnumber ($charseq$)) +(element pubdate ($charseq$)) +(element publisher (process-children)) +(element publishername ($charseq$)) +(element pubsnumber ($charseq$)) +(element releaseinfo (empty-sosofo)) +(element revision ($charseq$)) +(element revnumber ($charseq$)) +(element revremark ($charseq$)) +(element revdescription ($block-container$)) +(element seriesvolnums ($charseq$)) +(element volumenum ($charseq$)) + +;; The (element (bookinfo revhistory)) construction rule is in dbinfo.dsl +;; It calls $book-revhistory$... +(define ($book-revhistory$) + (make sequence + (make paragraph + use: title-style + font-family-name: %title-font-family% + font-weight: 'bold + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (* (HSIZE 1) %head-before-factor%) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + +(element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (node-list-filter-by-gi + (descendants (current-node)) + (list (normalize "revremark") + (normalize "revdescription"))))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revnumber)) + (make paragraph + (make sequence + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber))) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revdate)) + (make paragraph + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + (if (not (node-list-empty? revauthor)) + (make paragraph + (make sequence + (literal (gentext-revised-by)) + (process-node-list revauthor))) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + (if (not (node-list-empty? revremark)) + (make paragraph + space-after: %block-sep% + (process-node-list revremark)) + (empty-sosofo))))))) + +(element (revision revnumber) (process-children-trim)) +(element (revision date) (process-children-trim)) +(element (revision authorinitials) (process-children-trim)) +(element (revision revremark) (process-children-trim)) +(element (revision revdescription) (process-children)) diff --git a/print/dbblock.dsl b/print/dbblock.dsl new file mode 100644 index 0000000..4ee4912 --- /dev/null +++ b/print/dbblock.dsl @@ -0,0 +1,689 @@ +;; $Id: dbblock.dsl,v 1.13 2004/09/14 09:49:58 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(element revhistory ($book-revhistory$)) + +(element highlights ($block-container$)) + +(element (para blockquote) + (let* ((attrib (select-elements (children (current-node)) + (normalize "attribution"))) + (paras (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "attribution"))))) + (make sequence + (make paragraph + first-line-start-indent: 0pt ;; workaround a bug/feature? + ;; W/o the preceding line, the first-line-start-indent of the enclosing + ;; paragraph will apply to the paragraphs in this blockquote which is + ;; probably not wanted.. + font-size: (* %bf-size% %smaller-size-factor%) + line-spacing: (* %bf-size% %line-spacing-factor% + %smaller-size-factor%) + space-before: %para-sep% + start-indent: (+ (inherited-start-indent) %blockquote-start-indent%) + end-indent: %blockquote-end-indent% + (process-node-list paras)) + (if (node-list-empty? attrib) + (empty-sosofo) + (make paragraph + font-size: (* %bf-size% %smaller-size-factor%) + line-spacing: (* %bf-size% %line-spacing-factor% + %smaller-size-factor%) + space-before: 0pt + end-indent: 1em + quadding: 'end + (make sequence + (literal "\em-dash;") + (process-node-list attrib))))))) + +(element blockquote + (let* ((attrib (select-elements (children (current-node)) + (normalize "attribution"))) + (paras (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "attribution"))))) + (make sequence + (make paragraph + font-size: (* %bf-size% %smaller-size-factor%) + line-spacing: (* %bf-size% %line-spacing-factor% + %smaller-size-factor%) + space-before: %para-sep% + start-indent: (+ (inherited-start-indent) %blockquote-start-indent%) + end-indent: %blockquote-end-indent% + (process-node-list paras)) + (if (node-list-empty? attrib) + (empty-sosofo) + (make paragraph + font-size: (* %bf-size% %smaller-size-factor%) + line-spacing: (* %bf-size% %line-spacing-factor% + %smaller-size-factor%) + space-before: 0pt + end-indent: 1em + quadding: 'end + (make sequence + (literal "\em-dash;") + (process-node-list attrib))))))) + +(element (blockquote para) + (if (absolute-last-sibling? (current-node)) + (make paragraph + space-before: %para-sep% + space-after: 0pt + quadding: %default-quadding% + (process-children-trim)) + ($paragraph$))) + +(element epigraph + (let* ((addln-indent %epigraph-start-indent%) + (attrib (select-elements (children (current-node)) + (normalize "attribution"))) + (paras (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "attribution"))))) + (make display-group + start-indent: (+ %body-start-indent% addln-indent) + end-indent: %epigraph-end-indent% + font-posture: 'italic + (process-node-list paras) + (if (node-list-empty? attrib) + (empty-sosofo) + (make paragraph + space-before: 0pt + quadding: 'end + (process-node-list attrib)))))) + +(element attribution + ($charseq$)) + +(element (epigraph para) + (if (absolute-last-sibling? (current-node)) + (make paragraph + space-before: %para-sep% + space-after: 0pt + quadding: %default-quadding% + (process-children-trim)) + ($paragraph$))) + +(element para ($paragraph$)) +(element simpara ($paragraph$)) + +(element formalpara ($para-container$)) + +(element (formalpara title) ($runinhead$)) +(element (formalpara para) (make sequence (process-children-trim))) + +(element sidebar + (make box + display?: #t + box-type: 'border + line-thickness: 1pt + start-indent: (inherited-start-indent) + end-indent: (inherited-end-indent) + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + (make display-group + start-indent: 2pt + end-indent: 2pt + space-before: %block-sep% + space-after: %block-sep% + (process-children)) + (make display-group + start-indent: 2pt + end-indent: 2pt + space-before: 0pt + space-after: %block-sep% + (make sequence + (let* ((object (current-node)) + (title (select-elements (children object) + (normalize "title"))) + (nsep (gentext-label-title-sep (gi object)))) + (make paragraph + font-weight: 'bold + space-before: %block-sep% + space-after: %para-sep% + keep-with-next?: #t + (literal (gentext-element-name object)) + (if (string=? (element-label object) "") + (literal nsep) + (literal " " (element-label object) nsep)) + (process-node-list (children title)))) + (process-children)))))) + +(element (sidebar title) (empty-sosofo)) + +(element abstract + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: %body-start-indent% + (process-children))) + +(element authorblurb ($block-container$)) + +(element ackno ($paragraph$)) + +(define ($inline-object$) + (process-children)) + +(define ($informal-object$ #!optional (rule-before? #f) (rule-after? #f)) + (make display-group + start-indent: (+ %block-start-indent% (inherited-start-indent)) + space-before: %block-sep% + space-after: %block-sep% + (if rule-before? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-after: (/ %block-sep% 2) + keep-with-next?: #t) + (empty-sosofo)) + (process-children) + (if rule-after? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-before: (/ %block-sep% 2) + keep-with-previous?: #t) + (empty-sosofo)))) + +(define (object-title-after #!optional (node (current-node))) + (if (member (gi node) ($object-titles-after$)) + #t + #f)) + +(define (float-object node) + ;; you could redefine this to make only figures float, or only tables, + ;; or whatever... + #t) + +(define (named-formal-objects) + (list (normalize "figure") + (normalize "table") + (normalize "example") + (normalize "equation"))) + +(define ($formal-object$ #!optional (rule-before? #f) (rule-after? #f)) + (let* ((object-sosofo (make paragraph + space-before: 0pt + space-after: 0pt + start-indent: (+ %block-start-indent% + (inherited-start-indent)) + keep-with-next?: (object-title-after) + (process-children))) + (title-sosofo (with-mode formal-object-title-mode + (process-node-list + (select-elements (children (current-node)) + (normalize "title"))))) + (sosofo (make display-group + space-before: %block-sep% + space-after: %block-sep% + (if rule-before? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-after: (/ %block-sep% 2) + keep-with-next?: #t) + (empty-sosofo)) + (if (object-title-after) + (make sequence + object-sosofo + title-sosofo) + (make sequence + title-sosofo + object-sosofo)) + (if rule-after? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-before: (/ %block-sep% 2) + keep-with-previous?: #t) + (empty-sosofo))))) + (if (and (equal? (print-backend) 'tex) + formal-object-float + (float-object (current-node))) + (make page-float + sosofo) + sosofo))) + +(define ($semiformal-object$) + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + ($informal-object$) + ($formal-object$))) + +(mode formal-object-title-mode + (element title + (let* ((object (parent (current-node))) + (nsep (gentext-label-title-sep (gi object)))) + (make paragraph + font-weight: %formal-object-title-font-weight% + space-before: (if (object-title-after (parent (current-node))) + %para-sep% + 0pt) + space-after: (if (object-title-after (parent (current-node))) + 0pt + %para-sep%) + start-indent: (+ %block-start-indent% (inherited-start-indent)) + keep-with-next?: (not (object-title-after (parent (current-node)))) + (if (member (gi object) (named-formal-objects)) + (make sequence + (literal (gentext-element-name object)) + (if (string=? (element-label object) "") + (literal nsep) + (literal " " (element-label object) nsep))) + (empty-sosofo)) + (process-children)))) +) + +(element example + ($formal-object$ %example-rules% %example-rules%)) + +(element (example title) (empty-sosofo)) ; don't show caption below example + +(element informalexample + ($informal-object$ %informalexample-rules% %informalexample-rules%)) + +(element informalfigure + ($informal-object$ %informalfigure-rules% %informalfigure-rules%)) + +(element (figure title) (empty-sosofo)) ; don't show caption below figure + +(element figure + ;; FIXME: this is a bit crude... + (let* ((mediaobj (select-elements (children (current-node)) + (normalize "mediaobject"))) + (imageobj (select-elements (children mediaobj) + (normalize "imageobject"))) + (image (select-elements (children imageobj) + (normalize "imagedata"))) + (graphic (select-elements (children (current-node)) + (normalize "graphic"))) + (align (if (node-list-empty? image) + (if (node-list-empty? graphic) + #f + (attribute-string (normalize "align") + (node-list-first graphic))) + (attribute-string (normalize "align") (node-list-first image)))) + (dalign (cond ((equal? align (normalize "center")) + 'center) + ((equal? align (normalize "right")) + 'end) + (else + 'start)))) + (if align + (make display-group + quadding: dalign + ($formal-object$ %figure-rules% %figure-rules%)) + ($formal-object$ %figure-rules% %figure-rules%)))) + +(element informaltable + ($informal-object$ %informaltable-rules% %informaltable-rules%)) + +(element table + ;; can't be a "formal-object" because it requires special handling for + ;; the PGWIDE attribute + (let* ((nsep (gentext-label-title-sep (gi))) + (pgwide (attribute-string (normalize "pgwide"))) + (indent (lambda () (if (not (equal? pgwide "1")) + (+ %block-start-indent% + (inherited-start-indent)) + %cals-pgwide-start-indent%))) + (rule-before? %table-rules%) + (rule-after? %table-rules%) + (title-sosofo (make paragraph + font-weight: %table-title-font-weight% + space-before: (if (object-title-after) + %para-sep% + 0pt) + space-after: (if (object-title-after) + 0pt + %para-sep%) + start-indent: (indent) + keep-with-next?: (not (object-title-after)) + (literal (gentext-element-name (current-node))) + (if (string=? (element-label) "") + (literal nsep) + (literal " " (element-label) nsep)) + (element-title-sosofo))) + (table-sosofo (make display-group + font-weight: 'bold + space-before: 0pt + space-after: 0pt + start-indent: (indent) + keep-with-next?: (object-title-after) + (process-children))) + (table (make display-group + start-indent: (+ %block-start-indent% + (inherited-start-indent)) + space-before: %block-sep% + space-after: %block-sep% + (if rule-before? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-after: (/ %block-sep% 2) + keep-with-next?: #t) + (empty-sosofo)) + (if (object-title-after) + (make sequence + table-sosofo + title-sosofo) + (make sequence + title-sosofo + table-sosofo)) + (if rule-after? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-before: (/ %block-sep% 2) + keep-with-previous?: #t) + (empty-sosofo))))) + (if (and (equal? (print-backend) 'tex) + formal-object-float + (float-object (current-node))) + (make page-float + table) + table))) + +(element (table title) (empty-sosofo)) + +(element comment + (if %show-comments% + (make paragraph + start-indent: 0pt + first-line-start-indent: -10pt + font-posture: 'italic + font-size: (* (inherited-font-size) 0.9) + (make sequence + (make line-field + field-width: 10pt + quadding: 'end + (literal "*")) + (process-children))) + (empty-sosofo))) + +;; In DocBook V4.0 comment became remark +(element remark + (if %show-comments% + (make paragraph + start-indent: 0pt + first-line-start-indent: -10pt + font-posture: 'italic + font-size: (* (inherited-font-size) 0.9) + (make sequence + (make line-field + field-width: 10pt + quadding: 'end + (literal "*")) + (process-children))) + (empty-sosofo))) + +;; ====================================================================== +;; Handle footnotes in the body... + +(define %footnote-field-width% 1.6em) +(define %footnote-number-restarts% #t) +(define %footnote-endnote-break% #f) + +(define (count-footnote? footnote) + ;; don't count footnotes in comments (unless you're showing comments) + ;; or footnotes in tables which are handled locally in the table + ;; or footnotes for empty ulinks which don't need a footnote + (if (or (and (has-ancestor-member? footnote (list (normalize "comment"))) + (not %show-comments%)) + (has-ancestor-member? footnote (list (normalize "tgroup"))) + (and (has-ancestor-member? footnote (list (normalize "ulink"))) + (node-list-empty? (children footnote)) + %footnote-ulinks%)) + #f + #t)) + +(define (footnote-number footnote) + ;; This is more complex than it at first appears because footnotes + ;; can be in Comments which may be suppressed. + (let* ((root-list (if %footnote-number-restarts% + (component-element-list) + (list (normalize "book")))) + (footnotes (if %footnote-ulinks% + (component-list-descendant-node-list + footnote + (list (normalize "ulink") (normalize "footnote")) + root-list) + (component-descendant-node-list + footnote + root-list))) + (fn-number (let loop ((nl footnotes) (num 1)) + (if (node-list-empty? nl) + 0 + (if (node-list=? (node-list-first nl) footnote) + num + (if (count-footnote? (node-list-first nl)) + (loop (node-list-rest nl) (+ num 1)) + (loop (node-list-rest nl) num))))))) + (format-number fn-number "1"))) + +(element footnote + (if (and (equal? (print-backend) 'tex) bop-footnotes) + (make sequence + ($ss-seq$ + (literal (footnote-number (current-node)))) + (make page-footnote (process-children))) + ($ss-seq$ + (literal (footnote-number (current-node)))))) + +(element (footnote para) + ;; Note: this can only get called if the backend is 'tex + ;; If the backend is anything else, footnote never calls process + ;; children except in endnote-mode, so this doesn't get called. + (let ((fnnum (footnote-number (parent (current-node))))) + (if (= (child-number) 1) + (make paragraph + use: default-text-style + font-size: (* %footnote-size-factor% %bf-size%) + quadding: %default-quadding% + line-spacing: (* (* %footnote-size-factor% %bf-size%) + %line-spacing-factor%) + space-before: %para-sep% + space-after: %para-sep% + start-indent: %footnote-field-width% + first-line-start-indent: (- %footnote-field-width%) + lines: 'wrap ; doesn't seem to work + (make line-field + field-width: %footnote-field-width% + (literal fnnum + (gentext-label-title-sep (normalize "footnote")))) + (process-children-trim)) + (make paragraph + use: default-text-style + font-size: (* %footnote-size-factor% %bf-size%) + quadding: %default-quadding% + line-spacing: (* (* %footnote-size-factor% %bf-size%) + %line-spacing-factor%) + space-before: %para-sep% + space-after: %para-sep% + start-indent: %footnote-field-width% + lines: 'wrap ; doesn't seem to work + (process-children-trim))))) + +(define (non-table-footnotes footnotenl) + (let loop ((nl footnotenl) (result (empty-node-list))) + (if (node-list-empty? nl) + result + (if (has-ancestor-member? (node-list-first nl) + (list (normalize "tgroup"))) + (loop (node-list-rest nl) + result) + (loop (node-list-rest nl) + (node-list result (node-list-first nl))))))) + +(define (make-endnote-header) + (let ((headsize (if (equal? (gi) (normalize "refentry")) + (HSIZE 2) + (HSIZE 3))) + (indent (lambda () (if (equal? (gi) (normalize "refentry")) + %body-start-indent% + 0pt)))) + (make paragraph + break-before: %footnote-endnote-break% + font-family-name: %title-font-family% + font-weight: 'bold + font-size: headsize + line-spacing: (* headsize %line-spacing-factor%) + space-before: (* headsize %head-before-factor%) + space-after: (* headsize %head-after-factor%) + start-indent: (indent) + quadding: 'start + keep-with-next?: #t + (literal (gentext-endnotes))))) + +(define (make-endnotes #!optional (node (current-node))) + (let* ((allfootnotes (if %footnote-ulinks% + (node-list-filter-by-gi + (descendants node) + (list (normalize "footnote") (normalize "ulink"))) + (select-elements (descendants node) + (normalize "footnote")))) + (footnotes (let loop ((nl (non-table-footnotes allfootnotes)) + (fnlist (empty-node-list))) + (if (node-list-empty? nl) + fnlist + (if (count-footnote? (node-list-first nl)) + (loop (node-list-rest nl) + (node-list fnlist (node-list-first nl))) + (loop (node-list-rest nl) + fnlist)))))) + (if (or (node-list-empty? footnotes) + (and (equal? (print-backend) 'tex) + bop-footnotes)) + (empty-sosofo) + (if (or (equal? (gi node) (normalize "reference")) + (equal? (gi node) (normalize "part"))) + (empty-sosofo) ;; Each RefEntry/Component does its own... + (make sequence + (make-endnote-header) + (with-mode endnote-mode + (process-node-list footnotes))))))) + +(mode endnote-mode + (element footnote + (make sequence + start-indent: %body-start-indent% + (process-children))) + + (element (footnote para) + (let ((fnnum (footnote-number (parent (current-node))))) + (if (= (child-number) 1) + (make paragraph +; I'm not sure this really makes sense in the endnote case... +; font-size: (* %footnote-size-factor% %bf-size%) +; line-spacing: (* (* %footnote-size-factor% %bf-size%) +; %line-spacing-factor%) + space-before: %para-sep% + start-indent: (+ (inherited-start-indent) %footnote-field-width%) + first-line-start-indent: (- %footnote-field-width%) + (make line-field + field-width: %footnote-field-width% + (literal fnnum + (gentext-label-title-sep (normalize "footnote")))) + (process-children-trim)) + (make paragraph + font-size: (* %footnote-size-factor% %bf-size%) + line-spacing: (* (* %footnote-size-factor% %bf-size%) + %line-spacing-factor%) + start-indent: (+ (inherited-start-indent) %footnote-field-width%) + space-before: %para-sep% + (process-children-trim))))) + + (element ulink + (if %footnote-ulinks% + (let ((fnnum (footnote-number (current-node)))) + (make paragraph +; font-size: (* %footnote-size-factor% %bf-size%) +; line-spacing: (* (* %footnote-size-factor% %bf-size%) +; %line-spacing-factor%) + space-before: %para-sep% + start-indent: (+ (inherited-start-indent) %footnote-field-width%) + first-line-start-indent: (- %footnote-field-width%) + (make line-field + field-width: %footnote-field-width% + (literal fnnum + (gentext-label-title-sep (normalize "footnote")))) + (literal (attribute-string "url")))) + (next-match)))) + +;; ====================================================================== +;; Handle table footnotes + +(define (table-footnote-number footnote) + (format-number (component-child-number footnote + ($table-element-list$)) "a")) + +(element (entry footnote) + ($ss-seq$ + (literal (table-footnote-number (current-node))))) + +(element (entry para footnote) + ($ss-seq$ + (literal (table-footnote-number (current-node))))) + +(define (make-table-endnote-header) + (make paragraph + font-family-name: %body-font-family% + font-weight: 'medium + font-size: %bf-size% + start-indent: 0pt + quadding: 'start + (literal (gentext-table-endnotes)))) + +(define (make-table-endnotes) + (let* ((footnotes (select-elements (descendants (current-node)) + (normalize "footnote"))) + (headsize (HSIZE 3)) + (tgroup (ancestor-member (current-node) (list (normalize "tgroup")))) + (cols (string->number (attribute-string (normalize "cols") tgroup)))) + (if (node-list-empty? footnotes) + (empty-sosofo) + (make table-row + (make table-cell + n-columns-spanned: cols + cell-before-row-margin: %cals-cell-before-row-margin% + cell-after-row-margin: %cals-cell-after-row-margin% + cell-before-column-margin: %cals-cell-before-column-margin% + cell-after-column-margin: %cals-cell-after-column-margin% + start-indent: %cals-cell-content-start-indent% + end-indent: %cals-cell-content-end-indent% + (make-table-endnote-header) + (with-mode table-footnote-mode + (process-node-list footnotes))))))) + +(mode table-footnote-mode + (element footnote + (make display-group + font-family-name: %body-font-family% + font-weight: 'medium + font-size: %bf-size% + start-indent: 0pt + quadding: 'start + (process-children))) + + (element (footnote para) + (let ((fnnum (table-footnote-number (parent (current-node))))) + (if (= (child-number) 1) + (make paragraph + start-indent: %footnote-field-width% + first-line-start-indent: (- %footnote-field-width%) + (make line-field + field-width: %footnote-field-width% + (literal fnnum + (gentext-label-title-sep (normalize "footnote")))) + (process-children-trim)) + (make paragraph + start-indent: %footnote-field-width% + (process-children-trim)))))) + diff --git a/print/dbcallou.dsl b/print/dbcallou.dsl new file mode 100644 index 0000000..e16f1c0 --- /dev/null +++ b/print/dbcallou.dsl @@ -0,0 +1,221 @@ +;; $Id: dbcallou.dsl,v 1.4 2004/10/10 14:04:48 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; The support provided below is a little primitive because there's no way +;; to do line-addressing in Jade. +;; +;; CO's are supported with the CO element or, in SCREENCO and +;; PROGRAMLISTINGCO only, AREAs. +;; +;; Notes on the use of AREAs: +;; +;; - Processing is very slow. Jade loops through each AREA for +;; every column on every line. +;; - Only the LINECOLUMN units are supported, and they are #IMPLIED +;; - If a COORDS only specifies a line, the %callout-default-col% will +;; be used for the column. +;; - If the column is beyond the end of the line, that will work OK, but +;; if more than one callout has to get placed beyond the end of the same +;; line, that doesn't work so well. +;; - Embedded tabs foul up the column counting. +;; - Embedded markup fouls up the column counting. +;; - Embedded markup with embedded line breaks fouls up the line counting. +;; - The callout bugs occur immediately before the LINE COLUMN specified. +;; - You can't point to an AREASET, that doesn't make any sense +;; since it would imply a one-to-many link +;; +;; There's still no support for a stylesheet drawing the callouts on a +;; GRAPHIC, and I don't think there ever will be. +;; + +(element areaspec (empty-sosofo)) +(element area (empty-sosofo)) +(element areaset (empty-sosofo)) + +(element co + ($callout-mark$ (current-node))) + +(element programlistingco ($informal-object$)) +(element screenco ($informal-object$)) +(element graphicco ($informal-object$)) + +(element (screenco screen) + ($callout-verbatim-display$ %indent-screen-lines% %number-screen-lines%)) + +(element (programlistingco programlisting) + ($callout-verbatim-display$ %indent-programlisting-lines% + %number-programlisting-lines%)) + +;; ---------------------------------------------------------------------- + +(define ($callout-bug$ conumber) + (if (and conumber %callout-fancy-bug%) + (case conumber + ((1) (literal "\dingbat-negative-circled-sans-serif-digit-one;")) + ((2) (literal "\dingbat-negative-circled-sans-serif-digit-two;")) + ((3) (literal "\dingbat-negative-circled-sans-serif-digit-three;")) + ((4) (literal "\dingbat-negative-circled-sans-serif-digit-four;")) + ((5) (literal "\dingbat-negative-circled-sans-serif-digit-five;")) + ((6) (literal "\dingbat-negative-circled-sans-serif-digit-six;")) + ((7) (literal "\dingbat-negative-circled-sans-serif-digit-seven;")) + ((8) (literal "\dingbat-negative-circled-sans-serif-digit-eight;")) + ((9) (literal "\dingbat-negative-circled-sans-serif-digit-nine;")) + (else (make sequence + font-weight: 'bold + (literal "(" (format-number conumber "1") ")")))) + (make sequence + font-weight: 'bold + (if conumber + (literal "(" (format-number conumber "1") ")") + (literal "(??)"))))) + +(define ($callout-mark$ co) + ;; Print the callout mark for co + (if (equal? (gi co) (normalize "co")) + ($callout-bug$ (if (node-list-empty? co) + #f + (child-number co))) + (let ((areanum (if (node-list-empty? co) + #f + (if (equal? (gi (parent co)) (normalize "areaset")) + (absolute-child-number (parent co)) + (absolute-child-number co))))) + ($callout-bug$ (if (node-list-empty? co) + #f + areanum))))) + +(define ($look-for-callout$ line col #!optional (eol? #f)) + ;; Look to see if a callout should be printed at line col, and print + ;; it if it should + (let* ((areaspec (select-elements (children (parent (current-node))) + (normalize "areaspec"))) + (areas (expand-children (children areaspec) + (list (normalize "areaset"))))) + (let loop ((areanl areas)) + (if (node-list-empty? areanl) + (empty-sosofo) + (make sequence + (if ($callout-area-match$ (node-list-first areanl) line col eol?) + ($callout-area-format$ (node-list-first areanl) line col eol?) + (empty-sosofo)) + (loop (node-list-rest areanl))))))) + +(define ($callout-area-match$ area line col eol?) + ;; Does AREA area match line col? + (let* ((coordlist (split (attribute-string (normalize "coords") area))) + (aline (string->number (car coordlist))) + (acol (if (null? (cdr coordlist)) + #f + (string->number (car (cdr coordlist))))) + (units (if (inherited-attribute-string (normalize "units") area) + (inherited-attribute-string (normalize "units") area) + (normalize "linecolumn")))) + (and (equal? units (normalize "linecolumn")) + (or + (and (equal? line aline) + (equal? col acol)) + (and (equal? line aline) + eol? + (or (not acol) (> acol col))))))) + +(define ($callout-area-format$ area line col eol?) + ;; Format AREA area at the appropriate place + (let* ((coordlist (split (attribute-string (normalize "coords") area))) + (aline (string->number (car coordlist))) + (acol (if (null? (cdr coordlist)) + #f + (string->number (car (cdr coordlist)))))) + (if (and (equal? line aline) + eol? + (or (not acol) (> acol col))) + (make sequence + (let loop ((atcol col)) + (if (>= atcol (if acol acol %callout-default-col%)) + (empty-sosofo) + (make sequence + (literal "\no-break-space;") + (loop (+ atcol 1))))) + ($callout-mark$ area)) + ($callout-mark$ area)))) + +(define ($callout-linespecific-content$ indent line-numbers?) + ;; Print linespecific content in a callout with line numbers + (make sequence + ($line-start$ indent line-numbers? 1) + (let loop ((kl (children (current-node))) + (linecount 1) + (colcount 1) + (res (empty-sosofo))) + (if (node-list-empty? kl) + (sosofo-append res + ($look-for-callout$ linecount colcount #t) + (empty-sosofo)) + (loop + (node-list-rest kl) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + (+ linecount 1) + linecount) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + 1 + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-0000) + colcount + (+ colcount 1))) + (let ((c (node-list-first kl))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-000D) + (sosofo-append res + ($look-for-callout$ linecount colcount #t) + (process-node-list c) + ($line-start$ indent + line-numbers? + (+ linecount 1))) + (sosofo-append res + ($look-for-callout$ linecount colcount) + (process-node-list c))))))))) + +(define ($callout-verbatim-display$ indent line-numbers?) + (let* ((width-in-chars (if (attribute-string "width") + (string->number (attribute-string "width")) + %verbatim-default-width%)) + (fsize (lambda () (if (or (attribute-string (normalize "width")) + (not %verbatim-size-factor%)) + (/ (/ (- %text-width% (inherited-start-indent)) + width-in-chars) + 0.7) + (* (inherited-font-size) + %verbatim-size-factor%)))) + (vspace-before (if (INBLOCK?) + 0pt + (if (INLIST?) + %para-sep% + %block-sep%))) + (vspace-after (if (INBLOCK?) + 0pt + (if (INLIST?) + 0pt + %block-sep%)))) + (make paragraph + use: verbatim-style + space-before: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-first-sibling?)) + 0pt + vspace-before) + space-after: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-last-sibling?)) + 0pt + vspace-after) + font-size: (fsize) + line-spacing: (* (fsize) %line-spacing-factor%) + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + quadding: 'start + ($callout-linespecific-content$ indent line-numbers?)))) + +;; EOF dbcallout.dsl diff --git a/print/dbcompon.dsl b/print/dbcompon.dsl new file mode 100644 index 0000000..17b1378 --- /dev/null +++ b/print/dbcompon.dsl @@ -0,0 +1,520 @@ +;; $Id: dbcompon.dsl,v 1.5 2003/04/29 06:33:10 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; ============================= COMPONENTS ============================= +;; +;; in docbook, components are containers at the chapter/appendix level + +(define ($title-header-footer-element$) + (let* ((firstchild (node-list-first (children (current-node)))) + (metainfo (if (node-list-empty? firstchild) + (empty-node-list) + (if (member (gi firstchild) (info-element-list)) + firstchild + (empty-node-list)))) + (metatitle (select-elements (children metainfo) (normalize "title"))) + (metatabb (select-elements (children metainfo) (normalize "titleabbrev"))) + (title (select-elements (children (current-node)) + (normalize "title"))) + (titleabb (select-elements (children (current-node)) + (normalize "titleabbrev")))) + (if (node-list-empty? metatabb) + (if (node-list-empty? titleabb) + (if (node-list-empty? metatitle) + title + metatitle) + titleabb) + metatabb))) + +(define ($refentry-header-footer-element$) + (let* ((refdescriptor (node-list-first + (select-elements + (descendants (current-node)) (normalize "refdescriptor")))) + (refname (node-list-first + (select-elements + (descendants (current-node)) (normalize "refname")))) + (refentrytitle (node-list-first + (select-elements + (descendants (current-node)) (normalize "refentrytitle"))))) + (if (node-list-empty? refentrytitle) + (if (node-list-empty? refdescriptor) + refname + refdescriptor) + refentrytitle))) + +(define ($title-header-footer$) + (let* ((title (if (equal? (gi) (normalize "refentry")) + ($refentry-header-footer-element$) + ($title-header-footer-element$)))) + (make sequence + font-posture: 'italic + (with-mode hf-mode + (process-node-list title))))) + +(define ($page-number-header-footer$) + (let ((component (ancestor-member (current-node) + (append (division-element-list) + (component-element-list))))) + (make sequence + font-posture: 'italic + (literal + (gentext-page) + (if %page-number-restart% + (if (or (equal? (gi component) (normalize "chapter")) + (equal? (gi component) (normalize "appendix"))) + (string-append + (element-label component #t) + (gentext-intra-label-sep "_pagenumber")) + "") + "")) + (page-number-sosofo)))) + +(define (first-page-inner-header gi) + (empty-sosofo)) + +(define (first-page-center-header gi) + (empty-sosofo)) + +(define (first-page-outer-header gi) + (empty-sosofo)) + +(define (page-inner-header gi) + (empty-sosofo)) + +(define (page-center-header gi) + (empty-sosofo)) + +(define (page-outer-header gi) + (cond + ((equal? (normalize gi) (normalize "dedication")) (empty-sosofo)) + ((equal? (normalize gi) (normalize "lot")) (empty-sosofo)) + ((equal? (normalize gi) (normalize "part")) (empty-sosofo)) + ((equal? (normalize gi) (normalize "toc")) (empty-sosofo)) + (else ($title-header-footer$)))) + +(define (first-page-inner-footer gi) + (empty-sosofo)) + +(define (first-page-center-footer gi) + (empty-sosofo)) + +(define (first-page-outer-footer gi) + (cond + ((equal? (normalize gi) (normalize "dedication")) (empty-sosofo)) + ((equal? (normalize gi) (normalize "part")) (empty-sosofo)) + (else ($page-number-header-footer$)))) + +(define (page-inner-footer gi) + (empty-sosofo)) + +(define (page-center-footer gi) + (empty-sosofo)) + +(define (page-outer-footer gi) + ($page-number-header-footer$)) + +(define ($page-number-format$ #!optional (gi (gi))) + (cond + ((equal? (normalize gi) (normalize "toc")) "i") + ((equal? (normalize gi) (normalize "lot")) "i") + ((equal? (normalize gi) (normalize "preface")) "i") + (else "1"))) + +(define ($left-header$ #!optional (gi (gi))) + (if-first-page + (if (equal? %writing-mode% 'left-to-right) + (first-page-inner-header gi) + (first-page-outer-header gi)) + (if %two-side% + (if-front-page + (if (equal? %writing-mode% 'left-to-right) + (page-inner-header gi) + (page-outer-header gi)) + (if (equal? %writing-mode% 'left-to-right) + (page-outer-header gi) + (page-inner-header gi))) + (if (equal? %writing-mode% 'left-to-right) + (page-inner-header gi) + (page-outer-header gi))))) + +(define ($center-header$ #!optional (gi (gi))) + (if-first-page + (first-page-center-header gi) + (page-center-header gi))) + +(define ($right-header$ #!optional (gi (gi))) + (if-first-page + (if (equal? %writing-mode% 'left-to-right) + (first-page-outer-header gi) + (first-page-inner-header gi)) + (if %two-side% + (if-front-page + (if (equal? %writing-mode% 'left-to-right) + (page-outer-header gi) + (page-inner-header gi)) + (if (equal? %writing-mode% 'left-to-right) + (page-inner-header gi) + (page-outer-header gi))) + (if (equal? %writing-mode% 'left-to-right) + (page-outer-header gi) + (page-inner-header gi))))) + +(define ($left-footer$ #!optional (gi (gi))) + (if-first-page + (if (equal? %writing-mode% 'left-to-right) + (first-page-inner-footer gi) + (first-page-outer-footer gi)) + (if %two-side% + (if-front-page + (if (equal? %writing-mode% 'left-to-right) + (page-inner-footer gi) + (page-outer-footer gi)) + (if (equal? %writing-mode% 'left-to-right) + (page-outer-footer gi) + (page-inner-footer gi))) + (if (equal? %writing-mode% 'left-to-right) + (page-inner-footer gi) + (page-outer-footer gi))))) + +(define ($center-footer$ #!optional (gi (gi))) + (if-first-page + (first-page-center-footer gi) + (page-center-footer gi))) + +(define ($right-footer$ #!optional (gi (gi))) + (if-first-page + (if (equal? %writing-mode% 'left-to-right) + (first-page-outer-footer gi) + (first-page-inner-footer gi)) + (if %two-side% + (if-front-page + (if (equal? %writing-mode% 'left-to-right) + (page-outer-footer gi) + (page-inner-footer gi)) + (if (equal? %writing-mode% 'left-to-right) + (page-inner-footer gi) + (page-outer-footer gi))) + (if (equal? %writing-mode% 'left-to-right) + (page-outer-footer gi) + (page-inner-footer gi))))) + +(define ($component$) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: (or %page-number-restart% + (first-chapter?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + (make sequence + ($component-title$) + (process-children)) + (make-endnotes))) + +(define ($component-title$) + (let* ((info (cond + ((equal? (gi) (normalize "appendix")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "article")) + (node-list-filter-by-gi (children (current-node)) + (list (normalize "artheader") + (normalize "articleinfo")))) + ((equal? (gi) (normalize "bibliography")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "chapter")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "dedication")) + (empty-node-list)) + ((equal? (gi) (normalize "glossary")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "index")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "preface")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "reference")) + (select-elements (children (current-node)) (normalize "docinfo"))) + ((equal? (gi) (normalize "setindex")) + (select-elements (children (current-node)) (normalize "docinfo"))) + (else + (empty-node-list)))) + (exp-children (if (node-list-empty? info) + (empty-node-list) + (expand-children (children info) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))))) + (parent-titles (select-elements (children (current-node)) (normalize "title"))) + (titles (if (node-list-empty? parent-titles) + (select-elements exp-children (normalize "title")) + parent-titles)) + (parent-subttl (select-elements (children (current-node)) (normalize "subtitle"))) + (subtitles (if (node-list-empty? parent-subttl) + (select-elements exp-children (normalize "subtitle")) + parent-subttl))) + (make sequence + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + start-indent: 0pt + first-line-start-indent: 0pt + quadding: %component-title-quadding% + heading-level: (if %generate-heading-level% 1 0) + keep-with-next?: #t + + (if (string=? (element-label) "") + (empty-sosofo) + (literal (gentext-element-name-space (current-node)) + (element-label) + (gentext-label-title-sep (gi)))) + + (if (node-list-empty? titles) + (element-title-sosofo) ;; get a default! + (with-mode component-title-mode + (make sequence + (process-node-list titles))))) + + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-posture: 'italic + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* 0.5 (* (HSIZE 3) %head-before-factor%)) + space-after: (* (HSIZE 4) %head-after-factor%) + start-indent: 0pt + first-line-start-indent: 0pt + quadding: %component-subtitle-quadding% + keep-with-next?: #t + + (with-mode component-title-mode + (make sequence + (process-node-list subtitles))))))) + +(mode component-title-mode + (element title + (process-children)) + + (element subtitle + (process-children)) +) + +;; this is how we prevent the title in the header from acquiring the +;; display treatment that it receives in the body of the document +;; +(mode hf-mode + (element title + (let* ((component (ancestor-member (current-node) + (component-element-list))) + (chaporapp (or (equal? (gi component) (normalize "chapter")) + (equal? (gi component) (normalize "appendix"))))) + (if %chap-app-running-heads% + (make sequence + (if (and chaporapp + %chapter-autolabel% + (or %chap-app-running-head-autolabel% + (attribute-string (normalize "label") component))) + (literal (gentext-element-name-space component) + (element-label component) + (gentext-label-title-sep (gi component))) + (empty-sosofo)) + (process-children-trim)) + (empty-sosofo)))) + + (element titleabbrev + (if %chap-app-running-heads% + (make sequence + (if (or (have-ancestor? (normalize "chapter")) + (have-ancestor? (normalize "appendix"))) + (literal (gentext-element-name-space (parent)) + (element-label (parent)) + (gentext-label-title-sep (gi (parent)))) + (empty-sosofo)) + (process-children-trim)) + (empty-sosofo))) + + (element refentrytitle + (if %chap-app-running-heads% + (process-children-trim) + (empty-sosofo))) + + (element refdescriptor + (if %chap-app-running-heads% + (process-children-trim) + (empty-sosofo))) + + (element refname + (if %chap-app-running-heads% + (process-children-trim) + (empty-sosofo))) + + ;; Graphics aren't allowed in headers and footers... + (element graphic + (empty-sosofo)) + + (element inlinegraphic + (empty-sosofo)) +) + +(element appendix ($component$)) +(element (article appendix) ($section$)) ;; this is a special case +(element (appendix title) (empty-sosofo)) + +(element chapter ($component$)) +(element (chapter title) (empty-sosofo)) + +(element preface ($component$)) +(element (preface title) (empty-sosofo)) + +(element colophon ($component$)) + +;; Dedication is empty except in a special mode so that it can be +;; reordered (made to come before the TOCs) +(element dedication (empty-sosofo)) +(mode dedication-page-mode + (element dedication ($component$)) + (element (dedication title) (empty-sosofo)) +) + +;; Articles are like components, except that if they may have much +;; more formal title pages (created with article-titlepage). +;; +(element article + (let* ((info (node-list-filter-by-gi (children (current-node)) + (list (normalize "artheader") + (normalize "articleinfo")))) + (nl (titlepage-info-elements (current-node) info)) + (article-titlepage (if %generate-article-titlepage-on-separate-page% + (make sequence + (if (article-titlepage-content? nl 'recto) + (make simple-page-sequence + page-n-columns: %page-n-columns% + use: default-text-style + quadding: %default-quadding% + (article-titlepage nl 'recto)) + (empty-sosofo)) + (if (article-titlepage-content? nl 'verso) + (make simple-page-sequence + page-n-columns: %page-n-columns% + use: default-text-style + quadding: %default-quadding% + (article-titlepage nl 'verso)) + (empty-sosofo))) + (make sequence + (article-titlepage nl 'recto) + (article-titlepage nl 'verso))))) + (make sequence + + ;; make the titlepage first if its on a separate page + (if (and %generate-article-titlepage% + %generate-article-titlepage-on-separate-page%) + article-titlepage + (empty-sosofo)) + + ;; make the TOC on a separate page if requested and it's not + ;; already on the title page and it's supposed to be in front + (if (and %generate-article-toc% + (not %generate-article-toc-on-titlepage%) + %generate-article-titlepage-on-separate-page% + (generate-toc-in-front)) + (make simple-page-sequence + page-n-columns: %page-n-columns% + ;; FIXME: page restarting here and below is ill-considered + page-number-restart?: %article-page-number-restart% + page-number-format: ($page-number-format$ (normalize "toc")) + left-header: ($left-header$ (normalize "toc")) + center-header: ($center-header$ (normalize "toc")) + right-header: ($right-header$ (normalize "toc")) + left-footer: ($left-footer$ (normalize "toc")) + center-footer: ($center-footer$ (normalize "toc")) + right-footer: ($right-footer$ (normalize "toc")) + input-whitespace-treatment: 'collapse + use: default-text-style + quadding: %default-quadding% + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + ;; start a new page for the article itself + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: (or %article-page-number-restart% + (book-start?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + + ;; ... and include the titlepage if there is one and it's not + ;; already generated on a separate page + (if (and %generate-article-titlepage% + (not %generate-article-titlepage-on-separate-page%)) + article-titlepage + (empty-sosofo)) + + ;; ... and include the TOC if it is in front and not already + ;; generated + (if (and %generate-article-toc% + (generate-toc-in-front) + (not %generate-article-toc-on-titlepage%) + (not %generate-article-titlepage-on-separate-page%)) + (make display-group + space-after: (* (HSIZE 3) %head-after-factor%) + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + ;; .. and the contents of the article + (process-children) + + ;; ... and the endnotes + (make-endnotes) + + ;; ... and the TOC if it is supposed to be on the back and not + ;; on the titlepage nor on a separate pagee + (if (and %generate-article-toc% + (not (generate-toc-in-front)) + (not %generate-article-toc-on-titlepage%) + (not %generate-article-titlepage-on-separate-page%)) + (make display-group + space-after: (* (HSIZE 3) %head-after-factor%) + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo))) + + ;; finally, produce the TOC if it is supposed to be at the end + ;; and on its own page + (if (and %generate-article-toc% + (not %generate-article-toc-on-titlepage%) + %generate-article-titlepage-on-separate-page% + (not (generate-toc-in-front))) + (make simple-page-sequence + page-n-columns: %page-n-columns% + use: default-text-style + quadding: %default-quadding% + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo))))) + +(element (article title) (empty-sosofo)) + diff --git a/print/dbdivis.dsl b/print/dbdivis.dsl new file mode 100644 index 0000000..faf7e6c --- /dev/null +++ b/print/dbdivis.dsl @@ -0,0 +1,224 @@ +;; $Id: dbdivis.dsl,v 1.5 2003/12/05 05:00:05 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================= DIVISIONS ============================== + +(element set + (let* ((setinfo (select-elements (children (current-node)) + (normalize "setinfo"))) + (nl (titlepage-info-elements (current-node) setinfo))) + (make sequence + (if %generate-set-titlepage% + (make simple-page-sequence + page-n-columns: %titlepage-n-columns% + input-whitespace-treatment: 'collapse + use: default-text-style + (set-titlepage nl 'recto) + (make display-group + break-before: 'page + (set-titlepage nl 'verso))) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if %generate-set-toc% + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$ (normalize "toc")) + use: default-text-style + left-header: ($left-header$ (normalize "toc")) + center-header: ($center-header$ (normalize "toc")) + right-header: ($right-header$ (normalize "toc")) + left-footer: ($left-footer$ (normalize "toc")) + center-footer: ($center-footer$ (normalize "toc")) + right-footer: ($right-footer$ (normalize "toc")) + input-whitespace-treatment: 'collapse + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo))))) + +(element (set title) (empty-sosofo)) + +(element book + (let* ((bookinfo (select-elements (children (current-node)) + (normalize "bookinfo"))) + (dedication (select-elements (children (current-node)) + (normalize "dedication"))) + (nl (titlepage-info-elements (current-node) bookinfo))) + (make sequence + (if %generate-book-titlepage% + (make simple-page-sequence + page-n-columns: %titlepage-n-columns% + input-whitespace-treatment: 'collapse + use: default-text-style + (book-titlepage nl 'recto) + (make display-group + break-before: 'page + (book-titlepage nl 'verso))) + (empty-sosofo)) + + (if (node-list-empty? dedication) + (empty-sosofo) + (with-mode dedication-page-mode + (process-node-list dedication))) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if %generate-book-toc% + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$ (normalize "toc")) + use: default-text-style + left-header: ($left-header$ (normalize "toc")) + center-header: ($center-header$ (normalize "toc")) + right-header: ($right-header$ (normalize "toc")) + left-footer: ($left-footer$ (normalize "toc")) + center-footer: ($center-footer$ (normalize "toc")) + right-footer: ($right-footer$ (normalize "toc")) + input-whitespace-treatment: 'collapse + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (let loop ((gilist ($generate-book-lot-list$))) + (if (null? gilist) + (empty-sosofo) + (if (not (node-list-empty? + (select-elements (descendants (current-node)) + (car gilist)))) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$ (normalize "lot")) + use: default-text-style + left-header: ($left-header$ (normalize "lot")) + center-header: ($center-header$ (normalize "lot")) + right-header: ($right-header$ (normalize "lot")) + left-footer: ($left-footer$ (normalize "lot")) + center-footer: ($center-footer$ (normalize "lot")) + right-footer: ($right-footer$ (normalize "lot")) + input-whitespace-treatment: 'collapse + (build-lot (current-node) (car gilist))) + (loop (cdr gilist))))) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo))))) + +(element (book title) (empty-sosofo)) + +(element part + (let* ((partinfo (select-elements (children (current-node)) + (normalize "docinfo"))) + (partintro (select-elements (children (current-node)) + (normalize "partintro"))) + + (nl (titlepage-info-elements + (current-node) + partinfo + (if %generate-partintro-on-titlepage% + partintro + (empty-node-list))))) + (make sequence + (if %generate-part-titlepage% + (make simple-page-sequence + page-n-columns: %titlepage-n-columns% + input-whitespace-treatment: 'collapse + use: default-text-style + (part-titlepage nl 'recto) + (make display-group + break-before: 'page + (part-titlepage nl 'verso))) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + ;; generate a part TOC on a separate page + (if (and %generate-part-toc% + (not %generate-part-toc-on-titlepage%)) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$ (normalize "toc")) + use: default-text-style + left-header: ($left-header$ (normalize "toc")) + center-header: ($center-header$ (normalize "toc")) + right-header: ($right-header$ (normalize "toc")) + left-footer: ($left-footer$ (normalize "toc")) + center-footer: ($center-footer$ (normalize "toc")) + right-footer: ($right-footer$ (normalize "toc")) + input-whitespace-treatment: 'collapse + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + ;; this seems wrong relative to generate-toc-in-front, + ;; goes *after* the content ??! + (if (and (not (node-list-empty? partintro)) + (not %generate-partintro-on-titlepage%)) + ($process-partintro$ partintro #t) + (empty-sosofo)) + + (if (generate-toc-in-front) + (process-children) + (empty-sosofo))))) + +(element (part title) (empty-sosofo)) + +(element partintro (empty-sosofo)) + +(element (partintro title) + (let* ((hlevel 1) + (hs (HSIZE (- 4 hlevel)))) + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< hlevel 5) 'bold 'medium) + font-posture: (if (< hlevel 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: 0pt + first-line-start-indent: 0pt + quadding: %section-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% (+ hlevel 1) 0) + (element-title-sosofo (parent (current-node)))))) + +(define ($process-partintro$ partintro make-page-seq?) + (if make-page-seq? + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: (or %page-number-restart% + (book-start?) + (first-chapter?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + (make sequence + (process-node-list (children partintro)) + (make-endnotes partintro))) + (make sequence + start-indent: %body-start-indent% + (process-node-list (children partintro)) + (make-endnotes partintro)))) + diff --git a/print/dbefsyn.dsl b/print/dbefsyn.dsl new file mode 100644 index 0000000..2eed205 --- /dev/null +++ b/print/dbefsyn.dsl @@ -0,0 +1,588 @@ +;; $Id: dbefsyn.dsl,v 1.4 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================ CLASS SYNOPSIS ============================= + +(define %indent-classsynopsisinfo-lines% #f) +(define %number-classsynopsisinfo-lines% #f) + +(define %default-classsynopsis-language% "java") + +(element classsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element methodsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element fieldsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element constructorynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +(element destructorsynopsis + (let ((language (if (attribute-string (normalize "language")) + (attribute-string (normalize "language")) + %default-classsynopsis-language%))) + (case language + (("java") (with-mode cs-java-mode + (process-node-list (current-node)))) + (("perl") (with-mode cs-perl-mode + (process-node-list (current-node)))) + (("idl") (with-mode cs-idl-mode + (process-node-list (current-node)))) + (("python") (with-mode cs-python-mode + (process-node-list (current-node)))) + (else (with-mode cs-java-mode + (process-node-list (current-node))))))) + +;; ===== Java ======================================================== + +(mode cs-java-mode + +(element classsynopsis + (let* ((classes (select-elements (children (current-node)) + (normalize "ooclass"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make display-group + use: verbatim-style + (make paragraph + (process-node-list classname) + (process-node-list superclasses) + (literal "{")) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + (make paragraph + (literal "}"))))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element ooclass + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (process-children))) + +(element oointerface + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (process-children))) + +(element ooexception + (make sequence + (if (first-sibling?) + (literal " ") + (literal ", ")) + (process-children))) + +(element modifier + (make sequence + (process-children) + (literal " "))) + +(element classname + (if (first-sibling?) + (make sequence + (literal "class ") + (process-children) + (literal " ") + (if (last-sibling?) + (empty-sosofo) + (literal "extends "))) + (make sequence + (process-children) + (if (last-sibling?) + (literal " ") + (literal ", "))))) + +(element fieldsynopsis + (make paragraph + use: inline-verbatim-style + (literal " ") + (process-children) + (literal ";"))) + +(element type + (make sequence + (process-children) + (literal " "))) + +(element varname + (make sequence + (process-children))) + +(element initializer + (make sequence + (literal " = ") + (process-children))) + +(element constructorsynopsis + (java-method-synopsis)) + +(element destructorsynopsis + (java-method-synopsis)) + +(element methodsynopsis + (java-method-synopsis)) + +(element void + (literal "void ")) + +(element methodname + (process-children)) + +(element methodparam + (make sequence + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (process-children)) + +(element exceptionname + (make sequence + (if (first-sibling?) + (literal " throws ") + (literal ", ")) + (process-children))) +) + +(define (java-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "methodparam")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make paragraph + use: inline-verbatim-style + (literal " ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal "(") + (process-node-list param) + (literal ")") + (process-node-list excep) + (literal ";")))) + +;; ===== Perl ======================================================== + +(mode cs-perl-mode + +(element classsynopsis + (let* ((modifiers (select-elements (children (current-node)) + (normalize "modifier"))) + (classes (select-elements (children (current-node)) + (normalize "classname"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make display-group + use: verbatim-style; + (make paragraph + (literal "package ") + (process-node-list classname) + (literal ";")) + (if (node-list-empty? superclasses) + (empty-sosofo) + (make sequence + (literal "@ISA = ("); + (process-node-list superclasses) + (literal ";"))) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo"))))))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element modifier + (literal "Perl ClassSynopses don't use Modifiers")) + +(element classname + (if (first-sibling?) + (process-children) + (make sequence + (process-children) + (if (last-sibling?) + (empty-sosofo) + (literal ", "))))) + +(element fieldsynopsis + (make paragraph + use: inline-verbatim-style + (literal " "); + (process-children) + (literal ";"))) + +(element type + (make sequence + (process-children) + (literal " "))) + +(element varname + (make sequence + (process-children))) + +(element initializer + (make sequence + (literal " = ") + (process-children))) + +(element constructorsynopsis + (perl-method-synopsis)) + +(element destructorsynopsis + (perl-method-synopsis)) + +(element methodsynopsis + (perl-method-synopsis)) + +(element void + (empty-sosofo)) + +(element methodname + (process-children)) + +(element methodparam + (make sequence + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (process-children)) + +(element exceptionname + (literal "Perl ClassSynopses don't use Exceptions")) + +) + +(define (perl-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "type") + (normalize "void")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make paragraph + use: inline-verbatim-style + (literal "sub ") + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal " { ... }")))) + +;; ===== IDL ========================================================= + +(mode cs-idl-mode + +(element classsynopsis + (let* ((modifiers (select-elements (children (current-node)) + (normalize "modifier"))) + (classes (select-elements (children (current-node)) + (normalize "classname"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make display-group + use: verbatim-style; + (make paragraph + (literal "interface ") + (process-node-list modifiers) + (process-node-list classname) + (if (node-list-empty? superclasses) + (literal " ") + (make sequence + (literal " : ") + (process-node-list superclasses))) + (literal "{")) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + (make paragraph + (literal "}"))))) + +(element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% + %number-classsynopsisinfo-lines%)) + +(element modifier + (make sequence + (process-children) + (literal " "))) + +(element classname + (if (first-sibling?) + (process-children) + (make sequence + (process-children) + (if (last-sibling?) + (empty-sosofo) + (literal ", "))))) + +(element fieldsynopsis + (make paragraph + use: inline-verbatim-style + (literal " "); + (process-children) + (literal ";"))) + +(element type + (make sequence + (process-children) + (literal " "))) + +(element varname + (make sequence + (process-children))) + +(element initializer + (make sequence + (literal " = ") + (process-children))) + +(element constructorsynopsis + (idl-method-synopsis)) + +(element destructorsynopsis + (idl-method-synopsis)) + +(element methodsynopsis + (idl-method-synopsis)) + +(element void + (literal "void ")) + +(element methodname + (process-children)) + +(element methodparam + (make sequence + (if (first-sibling?) + (empty-sosofo) + (literal ", ")) + (process-children))) + +(element parameter + (process-children)) + +(element exceptionname + (make sequence + (if (first-sibling?) + (literal " raises(") + (literal ", ")) + (process-children) + (if (last-sibling?) + (literal ")") + (empty-sosofo)))) +) + +(define (idl-method-synopsis #!optional (nd (current-node))) + (let* ((modifiers (select-elements (children nd) + (normalize "modifier"))) + (notmod (node-list-filter-by-not-gi + (children nd) + (list (normalize "modifier")))) + (type (if (equal? (gi (node-list-first notmod)) + (normalize "methodname")) + (empty-node-list) + (node-list-first notmod))) + (methodname (select-elements (children nd) + (normalize "methodname"))) + (param (node-list-filter-by-gi (node-list-rest notmod) + (list (normalize "methodparam")))) + (excep (select-elements (children nd) + (normalize "exceptionname")))) + (make paragraph + use: inline-verbatim-style + (process-node-list modifiers) + (process-node-list type) + (process-node-list methodname) + (literal "(") + (process-node-list param) + (literal ")") + (process-node-list excep) + (literal ";")))) + +;; ===== Python ====================================================== +;; Contributed by Lane Stevens, lane@cycletime.com + +(mode cs-python-mode + (element classsynopsis + (let* ((classes (select-elements (children (current-node)) + (normalize "ooclass"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make display-group + use: verbatim-style + (make paragraph + (literal "class ") + (process-node-list classname) + (literal "(") + (process-node-list superclasses) + (literal ") :")) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + ) + ) + ) + + (element ooclass + (make sequence + (process-children) + (cond + ((first-sibling?) (literal " ")) + ((last-sibling?) (empty-sosofo)) + (#t (literal ", ")) + ) + ) + ) + + (element methodsynopsis + (python-method-synopsis)) + + (element classname + (process-children)) + + (element initializer + (make sequence + (literal " = ") + (process-children))) + + (element methodname + (process-children)) + + (element methodparam + (make sequence + (process-children) + (if (last-sibling?) + (empty-sosofo) + (literal ", ")) + ) + ) + + (element parameter + (process-children)) + ) + +(define (python-method-synopsis #!optional (nd (current-node))) + (let* ((the-method-name (select-elements (children nd) (normalize "methodname"))) + (the-method-params (select-elements (children nd) (normalize "methodparam"))) + ) + (make paragraph + use: inline-verbatim-style + (literal " def ") + (process-node-list the-method-name) + (literal "(") + (process-node-list the-method-params) + (literal ") :")) + ) + ) + +;; EOF diff --git a/print/dbgloss.dsl b/print/dbgloss.dsl new file mode 100644 index 0000000..2fcc5d9 --- /dev/null +++ b/print/dbgloss.dsl @@ -0,0 +1,117 @@ +;; $Id: dbgloss.dsl,v 1.4 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= GLOSSARY ELEMENTS ========================== + +(element glossary ($component$)) +(element (article glossary) ($section$)) ;; this is a special case +(element (glossary title) (empty-sosofo)) + +(element glossdiv ($section$)) +(element (glossdiv title) (empty-sosofo)) + +(element glosslist ($block-container$)) +(element glossentry (process-children)) + +;; a glossentry glossterm +(element (glossentry glossterm) ($lowtitle$ 3 2)) +(element (glossdiv glossentry glossterm) ($lowtitle$ 3 3)) +(element (glossentry acronym) (empty-sosofo)) +(element (glossentry abbrev) (empty-sosofo)) +(element glossdef ($indent-para-container$)) + +(element glosssee ($italic-seq$)) + +(element (glossentry glosssee) + (let ((otherterm (attribute-string (normalize "otherterm")))) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) (* (ILSTEP) 2)) + quadding: %default-quadding% + ($italic-seq$ (literal (gentext-element-name (current-node)) + (gentext-label-title-sep (gi)))) + (if otherterm + (make link + destination: (node-list-address (element-with-id otherterm)) + (with-mode otherterm + (process-element-with-id otherterm))) + (process-children))))) + +;; When we hit the first GLOSSSEEALSO, process all of them as a node-list +(element glossseealso + (if (first-sibling?) + (make paragraph + ($italic-seq$ (literal (gentext-element-name (current-node)) + (gentext-label-title-sep (gi)))) + (with-mode glossseealso + (process-node-list + (select-elements (children (parent)) '(glossseealso)))) + (literal ".")) + (empty-sosofo))) + +(mode glossseealso + + (element glossseealso + (let ((otherterm (attribute-string (normalize "otherterm")))) + (make sequence + (if (first-sibling?) + (empty-sosofo) + ($italic-seq$ (literal ", "))) + + (if otherterm ;; but this should be required... + (make link + destination: (node-list-address (element-with-id otherterm)) + (with-mode otherterm + (process-element-with-id otherterm))) + (process-children))))) + +) + +;; This is referenced within the GLOSSSEE and GLOSSSEEALSO element +;; construction expressions. The OTHERTERM attributes on GLOSSSEE and +;; GLOSSSEEALSO (should) refer to GLOSSENTRY elements but we're only +;; interested in the text within the GLOSSTERM. Discard the revision +;; history and the definition from the referenced term. +(mode otherterm + (element glossentry + (process-children)) + (element glossterm + (process-children)) + (element glossdef + (empty-sosofo)) + (element revhistory + (empty-sosofo)) + (element glosssee + (empty-sosofo)) + (element (glossentry acronym) + (empty-sosofo)) + (element (glossentry abbrev) + (empty-sosofo))) + +;; an inline gloss term +(element glossterm + (let* ((linkend (attribute-string (normalize "linkend")))) + (if linkend + (make link + destination: (node-list-address (element-with-id linkend)) + ($italic-seq$)) + ($italic-seq$)))) + +;; a first glossterm +(element firstterm + (let* ((linkend (attribute-string (normalize "linkend"))) + (sosofo (if linkend + (make link + destination: (node-list-address + (element-with-id linkend)) + ($italic-seq$)) + ($italic-seq$)))) + (if firstterm-bold + (make sequence + font-weight: 'bold + sosofo) + sosofo))) diff --git a/print/dbgraph.dsl b/print/dbgraph.dsl new file mode 100644 index 0000000..218698a --- /dev/null +++ b/print/dbgraph.dsl @@ -0,0 +1,134 @@ +;; $Id: dbgraph.dsl,v 1.3 2003/03/25 19:53:55 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ==================== GRAPHICS ==================== + +;; NOTE: display #f doesn't seem to work right in the RTF back end... + +(define (graphic-file filename) + (let ((ext (file-extension filename))) + (if (or (not filename) + (not %graphic-default-extension%) + (member ext %graphic-extensions%)) + filename + (string-append filename "." %graphic-default-extension%)))) + +(define ($graphic$ fileref + #!optional (display #f) (format #f) (scale #f) (align #f)) + (let ((graphic-format (if format format "")) + (graphic-scale (if scale (/ (string->number scale) 100) 1)) + (graphic-align (cond ((equal? align (normalize "center")) + 'center) + ((equal? align (normalize "right")) + 'end) + (else + 'start)))) + (make external-graphic + entity-system-id: (graphic-file fileref) + notation-system-id: graphic-format + scale: graphic-scale + display?: display + display-alignment: graphic-align))) + +(define ($img$ #!optional (nd (current-node)) (display #f)) + ;; This function now supports an extension to DocBook. It's + ;; either a clever trick or an ugly hack, depending on your + ;; point of view, but it'll hold us until XLink is finalized + ;; and we can extend DocBook the "right" way. + ;; + ;; If the entity passed to GRAPHIC has the FORMAT + ;; "LINESPECIFIC", either because that's what's specified or + ;; because it's the notation of the supplied ENTITYREF, then + ;; the text of the entity is inserted literally (via Jade's + ;; read-entity external procedure). + ;; + (let* ((fileref (attribute-string (normalize "fileref") nd)) + (entityref (attribute-string (normalize "entityref") nd)) + (format (if (attribute-string (normalize "format") nd) + (attribute-string (normalize "format") nd) + (if entityref + (entity-notation entityref) + #f))) + (align (attribute-string (normalize "align") nd)) + (scale (attribute-string (normalize "scale") nd))) + (if (or fileref entityref) + (if (equal? format (normalize "linespecific")) + (if fileref + (include-file fileref) + (include-file (entity-generated-system-id entityref))) + (if fileref + ($graphic$ fileref display format scale align) + ($graphic$ (entity-generated-system-id entityref) + display format scale align))) + (empty-sosofo)))) + +(element graphic + (make paragraph + space-before: %block-sep% + space-after: %block-sep% + ($img$ (current-node) #t))) + +(element inlinegraphic ($img$)) + + +;; ====================================================================== +;; MediaObject and friends... + +(define preferred-mediaobject-notations + (list "EPS" "PS" "JPG" "JPEG" "PNG" "linespecific")) + +(define preferred-mediaobject-extensions + (list "eps" "ps" "jpg" "jpeg" "png")) + +(define acceptable-mediaobject-notations + (list "GIF" "GIF87a" "GIF89a" "BMP" "WMF")) + +(define acceptable-mediaobject-extensions + (list "gif" "bmp" "wmf")) + +(element mediaobject + (make paragraph + ($mediaobject$))) + +(element inlinemediaobject + (make sequence + ($mediaobject$))) + +(element mediaobjectco + (error "MediaObjectCO is not supported yet.")) + +(element imageobjectco + (error "ImageObjectCO is not supported yet.")) + +(element objectinfo + (empty-sosofo)) + +(element videoobject + (process-children)) + +(element videodata + (empty-sosofo)) + +(element audioobject + (process-children)) + +(element audiodata + (empty-sosofo)) + +(element imageobject + (process-children)) + +(element imagedata + (if (have-ancestor? (normalize "mediaobject")) + ($img$ (current-node) #t) + ($img$ (current-node) #f))) + +(element textobject + (make display-group + (process-children))) + +(element caption + (process-children)) diff --git a/print/dbindex.dsl b/print/dbindex.dsl new file mode 100644 index 0000000..c97d49b --- /dev/null +++ b/print/dbindex.dsl @@ -0,0 +1,156 @@ +;; $Id: dbindex.dsl,v 1.4 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ................... INDEX TERMS (EMBEDDED MARKERS) ................... + +(element indexterm + ;; This is different than (empty-sosofo) alone because the backend + ;; will hang an anchor off the empty sequence. This allows the index + ;; to point to the indexterm (but only if the indexterm has an ID). + (make sequence (empty-sosofo))) + +(element primary (empty-sosofo)) +(element secondary (empty-sosofo)) +(element tertiary (empty-sosofo)) +(element see (empty-sosofo)) +(element seealso (empty-sosofo)) + +;; =========================== INDEX ELEMENTS =========================== + +(element setindex ($component$)) +(element (setindex title) (empty-sosofo)) + +(element index + (make simple-page-sequence + page-number-restart?: (or %page-number-restart% + (book-start?) + (first-chapter?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + page-n-columns: 2 + (make sequence + ($component-title$) + (process-children)) + (make-endnotes))) + +;; this is a special case. this prevents the index from causing an error but +;; will make the index a single column. c'est la vie. +(element (article index) ($section$)) + +(element (index title) (empty-sosofo)) + +(element indexdiv ($section$)) +(element (indexdiv title) (empty-sosofo)) + +(element indexentry (process-children)) + +(element primaryie + (make paragraph + font-size: (* (inherited-font-size) %smaller-size-factor%) + (process-children))) + +(element secondaryie + (make paragraph + font-size: (* (inherited-font-size) %smaller-size-factor%) + start-indent: (+ (inherited-start-indent) 1em) + (process-children))) + +(element tertiaryie + (make paragraph + font-size: (* (inherited-font-size) %smaller-size-factor%) + start-indent: (+ (inherited-start-indent) 2em) + (process-children))) + +(define (find-indexterm id) + ;; If you have a lot of indexterms that don't have IDs, this could + ;; be incredibly slow. So don't do that. + (let* ((idtarget (element-with-id id))) + (if (node-list-empty? idtarget) + (let loop ((idnodes (select-elements (descendants (sgml-root-element)) + (normalize "indexterm")))) + (if (node-list-empty? idnodes) + (empty-node-list) + (if (equal? id (string-append "AEN" + (number->string + (all-element-number + (node-list-first idnodes))))) + (node-list-first idnodes) + (loop (node-list-rest idnodes))))) + idtarget))) + +(define (indexentry-link nd) + (let* ((id (attribute-string (normalize "role") nd)) + (target (find-indexterm id)) + (preferred (not (node-list-empty? + (select-elements (children (current-node)) + (normalize "emphasis"))))) + (sosofo (if (node-list-empty? target) + (literal "?") + (make link + destination: (node-list-address target) + (with-mode toc-page-number-mode + (process-node-list target)))))) + (if preferred + (make sequence + font-weight: 'bold + sosofo) + sosofo))) + +(element (primaryie ulink) + (indexentry-link (current-node))) + +(element (secondaryie ulink) + (indexentry-link (current-node))) + +(element (tertiaryie ulink) + (indexentry-link (current-node))) + +(element seeie + (let ((indent (cond ((node-list-empty? + (select-elements + (children (parent (current-node))) + (normalize "secondaryie"))) + 1em) + ((node-list-empty? + (select-elements + (children (parent (current-node))) + (normalize "tertiaryie"))) + 2em) + (else 3em)))) + (make paragraph + font-size: (* (inherited-font-size) %smaller-size-factor%) + start-indent: (+ (inherited-start-indent) indent) + (literal "(" (gentext-index-see) " ") + (process-children) + (literal ")")))) + +(element seealsoie + (let ((indent (cond ((node-list-empty? + (select-elements + (children (parent (current-node))) + (normalize "secondaryie"))) + 1em) + ((node-list-empty? + (select-elements + (children (parent (current-node))) + (normalize "tertiaryie"))) + 2em) + (else 3em)))) + (make paragraph + font-size: (* (inherited-font-size) %smaller-size-factor%) + start-indent: (+ (inherited-start-indent) indent) + (literal "(" (gentext-index-seealso) " ") + (process-children) + (literal ")")))) diff --git a/print/dbinfo.dsl b/print/dbinfo.dsl new file mode 100644 index 0000000..e89af5c --- /dev/null +++ b/print/dbinfo.dsl @@ -0,0 +1,1012 @@ +;; $Id: dbinfo.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ................................ INFO ................................ + +;; Rather than make the *INFO containers empty-sosofos, we make them +;; process-children and then make all of the elements they may contain +;; empty in this context. The advantage here is that we can then +;; more easily override some of them in stylesheets that use this one. + +(element setinfo (empty-sosofo)) + +(element (setinfo abbrev) (empty-sosofo)) +(element (setinfo abstract) (empty-sosofo)) +(element (setinfo address) (empty-sosofo)) +(element (setinfo affiliation) (empty-sosofo)) +(element (setinfo artpagenums) (empty-sosofo)) +(element (setinfo author) (empty-sosofo)) +(element (setinfo authorblurb) (empty-sosofo)) +(element (setinfo authorgroup) (empty-sosofo)) +(element (setinfo authorinitials) (empty-sosofo)) +(element (setinfo bibliomisc) (empty-sosofo)) +(element (setinfo biblioset) (empty-sosofo)) +(element (setinfo collab) (empty-sosofo)) +(element (setinfo confgroup) (empty-sosofo)) +(element (setinfo contractnum) (empty-sosofo)) +(element (setinfo contractsponsor) (empty-sosofo)) +(element (setinfo contrib) (empty-sosofo)) +(element (setinfo copyright) (empty-sosofo)) +(element (setinfo corpauthor) (empty-sosofo)) +(element (setinfo corpname) (empty-sosofo)) +(element (setinfo date) (empty-sosofo)) +(element (setinfo edition) (empty-sosofo)) +(element (setinfo editor) (empty-sosofo)) +(element (setinfo firstname) (empty-sosofo)) +(element (setinfo graphic) (empty-sosofo)) +(element (setinfo honorific) (empty-sosofo)) +(element (setinfo invpartnumber) (empty-sosofo)) +(element (setinfo isbn) (empty-sosofo)) +(element (setinfo issn) (empty-sosofo)) +(element (setinfo issuenum) (empty-sosofo)) +(element (setinfo itermset) (empty-sosofo)) +(element (setinfo keywordset) (empty-sosofo)) +(element (setinfo legalnotice) (empty-sosofo)) +(element (setinfo lineage) (empty-sosofo)) +(element (setinfo modespec) (empty-sosofo)) +(element (setinfo orgname) (empty-sosofo)) +(element (setinfo othercredit) (empty-sosofo)) +(element (setinfo othername) (empty-sosofo)) +(element (setinfo pagenums) (empty-sosofo)) +(element (setinfo printhistory) (empty-sosofo)) +(element (setinfo productname) (empty-sosofo)) +(element (setinfo productnumber) (empty-sosofo)) +(element (setinfo pubdate) (empty-sosofo)) +(element (setinfo publisher) (empty-sosofo)) +(element (setinfo publishername) (empty-sosofo)) +(element (setinfo pubsnumber) (empty-sosofo)) +(element (setinfo releaseinfo) (empty-sosofo)) +(element (setinfo revhistory) (empty-sosofo)) +(element (setinfo seriesvolnums) (empty-sosofo)) +(element (setinfo subjectset) (empty-sosofo)) +(element (setinfo subtitle) (empty-sosofo)) +(element (setinfo surname) (empty-sosofo)) +(element (setinfo title) (empty-sosofo)) +(element (setinfo titleabbrev) (empty-sosofo)) +(element (setinfo volumenum) (empty-sosofo)) + +;; BookInfo is handled differently in dbdivis.dsl by using a +;; special mode... + +(element bookinfo (empty-sosofo)) + +(element (bookinfo abbrev) (process-children)) +(element (bookinfo abstract) (process-children)) +(element (bookinfo address) (process-children)) +(element (bookinfo affiliation) (process-children)) +(element (bookinfo artpagenums) (process-children)) +(element (bookinfo author) (process-children)) +(element (bookinfo authorblurb) (process-children)) +(element (bookinfo authorgroup) (process-children)) +(element (bookinfo authorinitials) (process-children)) +(element (bookinfo bibliomisc) (process-children)) +(element (bookinfo biblioset) (process-children)) +(element (bookinfo bookbiblio) (process-children)) +(element (bookinfo collab) (process-children)) +(element (bookinfo confgroup) (process-children)) +(element (bookinfo contractnum) (process-children)) +(element (bookinfo contractsponsor) (process-children)) +(element (bookinfo contrib) (process-children)) +;; (element (bookinfo copyright) (process-children)) ;; the default is good +(element (bookinfo corpauthor) (process-children)) +(element (bookinfo corpname) (process-children)) +(element (bookinfo date) (process-children)) +(element (bookinfo edition) (process-children)) +(element (bookinfo editor) (process-children)) +(element (bookinfo firstname) (process-children)) +(element (bookinfo graphic) (process-children)) +(element (bookinfo honorific) (process-children)) +(element (bookinfo invpartnumber) (process-children)) +(element (bookinfo isbn) (process-children)) +(element (bookinfo issn) (process-children)) +(element (bookinfo issuenum) (process-children)) +(element (bookinfo itermset) (process-children)) +(element (bookinfo keywordset) (process-children)) +(element (bookinfo legalnotice) ($semiformal-object$)) +(element (bookinfo lineage) (process-children)) +(element (bookinfo modespec) (process-children)) +(element (bookinfo orgname) (process-children)) +(element (bookinfo othercredit) (process-children)) +(element (bookinfo othername) (process-children)) +(element (bookinfo pagenums) (process-children)) +(element (bookinfo printhistory) (process-children)) +(element (bookinfo productname) (process-children)) +(element (bookinfo productnumber) (process-children)) +(element (bookinfo pubdate) (process-children)) +(element (bookinfo publisher) (process-children)) +(element (bookinfo publishername) (process-children)) +(element (bookinfo pubsnumber) (process-children)) +(element (bookinfo releaseinfo) (process-children)) +(element (bookinfo revhistory) ($book-revhistory$)) +(element (bookinfo seriesvolnums) (process-children)) +(element (bookinfo subjectset) (process-children)) +(element (bookinfo subtitle) (process-children)) +(element (bookinfo surname) (process-children)) +(element (bookinfo title) (process-children)) +(element (bookinfo titleabbrev) (process-children)) +(element (bookinfo volumenum) (process-children)) + +(element docinfo (empty-sosofo)) + +(element (docinfo abbrev) (empty-sosofo)) +(element (docinfo abstract) (empty-sosofo)) +(element (docinfo address) (empty-sosofo)) +(element (docinfo affiliation) (empty-sosofo)) +(element (docinfo artpagenums) (empty-sosofo)) +(element (docinfo author) (empty-sosofo)) +(element (docinfo authorblurb) (empty-sosofo)) +(element (docinfo authorgroup) (empty-sosofo)) +(element (docinfo authorinitials) (empty-sosofo)) +(element (docinfo bibliomisc) (empty-sosofo)) +(element (docinfo biblioset) (empty-sosofo)) +(element (docinfo collab) (empty-sosofo)) +(element (docinfo confgroup) (empty-sosofo)) +(element (docinfo contractnum) (empty-sosofo)) +(element (docinfo contractsponsor) (empty-sosofo)) +(element (docinfo contrib) (empty-sosofo)) +(element (docinfo copyright) (empty-sosofo)) +(element (docinfo corpauthor) (empty-sosofo)) +(element (docinfo corpname) (empty-sosofo)) +(element (docinfo date) (empty-sosofo)) +(element (docinfo edition) (empty-sosofo)) +(element (docinfo editor) (empty-sosofo)) +(element (docinfo firstname) (empty-sosofo)) +(element (docinfo graphic) (empty-sosofo)) +(element (docinfo honorific) (empty-sosofo)) +(element (docinfo invpartnumber) (empty-sosofo)) +(element (docinfo isbn) (empty-sosofo)) +(element (docinfo issn) (empty-sosofo)) +(element (docinfo issuenum) (empty-sosofo)) +(element (docinfo itermset) (empty-sosofo)) +(element (docinfo keywordset) (empty-sosofo)) +(element (docinfo legalnotice) (empty-sosofo)) +(element (docinfo lineage) (empty-sosofo)) +(element (docinfo modespec) (empty-sosofo)) +(element (docinfo orgname) (empty-sosofo)) +(element (docinfo othercredit) (empty-sosofo)) +(element (docinfo othername) (empty-sosofo)) +(element (docinfo pagenums) (empty-sosofo)) +(element (docinfo printhistory) (empty-sosofo)) +(element (docinfo productname) (empty-sosofo)) +(element (docinfo productnumber) (empty-sosofo)) +(element (docinfo pubdate) (empty-sosofo)) +(element (docinfo publisher) (empty-sosofo)) +(element (docinfo publishername) (empty-sosofo)) +(element (docinfo pubsnumber) (empty-sosofo)) +(element (docinfo releaseinfo) (empty-sosofo)) +(element (docinfo revhistory) (empty-sosofo)) +(element (docinfo seriesvolnums) (empty-sosofo)) +(element (docinfo subjectset) (empty-sosofo)) +(element (docinfo subtitle) (empty-sosofo)) +(element (docinfo surname) (empty-sosofo)) +(element (docinfo title) (empty-sosofo)) +(element (docinfo titleabbrev) (empty-sosofo)) +(element (docinfo volumenum) (empty-sosofo)) + +(element sect1info (process-children)) + +(element (sect1info abbrev) (empty-sosofo)) +(element (sect1info abstract) (empty-sosofo)) +(element (sect1info address) (empty-sosofo)) +(element (sect1info affiliation) (empty-sosofo)) +(element (sect1info artpagenums) (empty-sosofo)) +(element (sect1info author) (empty-sosofo)) +(element (sect1info authorblurb) (empty-sosofo)) +(element (sect1info authorgroup) (empty-sosofo)) +(element (sect1info authorinitials) (empty-sosofo)) +(element (sect1info bibliomisc) (empty-sosofo)) +(element (sect1info biblioset) (empty-sosofo)) +(element (sect1info collab) (empty-sosofo)) +(element (sect1info confgroup) (empty-sosofo)) +(element (sect1info contractnum) (empty-sosofo)) +(element (sect1info contractsponsor) (empty-sosofo)) +(element (sect1info contrib) (empty-sosofo)) +(element (sect1info copyright) (empty-sosofo)) +(element (sect1info corpauthor) (empty-sosofo)) +(element (sect1info corpname) (empty-sosofo)) +(element (sect1info date) (empty-sosofo)) +(element (sect1info edition) (empty-sosofo)) +(element (sect1info editor) (empty-sosofo)) +(element (sect1info firstname) (empty-sosofo)) +(element (sect1info graphic) (empty-sosofo)) +(element (sect1info honorific) (empty-sosofo)) +(element (sect1info invpartnumber) (empty-sosofo)) +(element (sect1info isbn) (empty-sosofo)) +(element (sect1info issn) (empty-sosofo)) +(element (sect1info issuenum) (empty-sosofo)) +(element (sect1info itermset) (empty-sosofo)) +(element (sect1info keywordset) (empty-sosofo)) +(element (sect1info legalnotice) (empty-sosofo)) +(element (sect1info lineage) (empty-sosofo)) +(element (sect1info modespec) (empty-sosofo)) +(element (sect1info orgname) (empty-sosofo)) +(element (sect1info othercredit) (empty-sosofo)) +(element (sect1info othername) (empty-sosofo)) +(element (sect1info pagenums) (empty-sosofo)) +(element (sect1info printhistory) (empty-sosofo)) +(element (sect1info productname) (empty-sosofo)) +(element (sect1info productnumber) (empty-sosofo)) +(element (sect1info pubdate) (empty-sosofo)) +(element (sect1info publisher) (empty-sosofo)) +(element (sect1info publishername) (empty-sosofo)) +(element (sect1info pubsnumber) (empty-sosofo)) +(element (sect1info releaseinfo) (empty-sosofo)) +(element (sect1info revhistory) (empty-sosofo)) +(element (sect1info seriesvolnums) (empty-sosofo)) +(element (sect1info subjectset) (empty-sosofo)) +(element (sect1info subtitle) (empty-sosofo)) +(element (sect1info surname) (empty-sosofo)) +(element (sect1info title) (empty-sosofo)) +(element (sect1info titleabbrev) (empty-sosofo)) +(element (sect1info volumenum) (empty-sosofo)) + +(element sect2info (process-children)) + +(element (sect2info abbrev) (empty-sosofo)) +(element (sect2info abstract) (empty-sosofo)) +(element (sect2info address) (empty-sosofo)) +(element (sect2info affiliation) (empty-sosofo)) +(element (sect2info artpagenums) (empty-sosofo)) +(element (sect2info author) (empty-sosofo)) +(element (sect2info authorblurb) (empty-sosofo)) +(element (sect2info authorgroup) (empty-sosofo)) +(element (sect2info authorinitials) (empty-sosofo)) +(element (sect2info bibliomisc) (empty-sosofo)) +(element (sect2info biblioset) (empty-sosofo)) +(element (sect2info collab) (empty-sosofo)) +(element (sect2info confgroup) (empty-sosofo)) +(element (sect2info contractnum) (empty-sosofo)) +(element (sect2info contractsponsor) (empty-sosofo)) +(element (sect2info contrib) (empty-sosofo)) +(element (sect2info copyright) (empty-sosofo)) +(element (sect2info corpauthor) (empty-sosofo)) +(element (sect2info corpname) (empty-sosofo)) +(element (sect2info date) (empty-sosofo)) +(element (sect2info edition) (empty-sosofo)) +(element (sect2info editor) (empty-sosofo)) +(element (sect2info firstname) (empty-sosofo)) +(element (sect2info graphic) (empty-sosofo)) +(element (sect2info honorific) (empty-sosofo)) +(element (sect2info invpartnumber) (empty-sosofo)) +(element (sect2info isbn) (empty-sosofo)) +(element (sect2info issn) (empty-sosofo)) +(element (sect2info issuenum) (empty-sosofo)) +(element (sect2info itermset) (empty-sosofo)) +(element (sect2info keywordset) (empty-sosofo)) +(element (sect2info legalnotice) (empty-sosofo)) +(element (sect2info lineage) (empty-sosofo)) +(element (sect2info modespec) (empty-sosofo)) +(element (sect2info orgname) (empty-sosofo)) +(element (sect2info othercredit) (empty-sosofo)) +(element (sect2info othername) (empty-sosofo)) +(element (sect2info pagenums) (empty-sosofo)) +(element (sect2info printhistory) (empty-sosofo)) +(element (sect2info productname) (empty-sosofo)) +(element (sect2info productnumber) (empty-sosofo)) +(element (sect2info pubdate) (empty-sosofo)) +(element (sect2info publisher) (empty-sosofo)) +(element (sect2info publishername) (empty-sosofo)) +(element (sect2info pubsnumber) (empty-sosofo)) +(element (sect2info releaseinfo) (empty-sosofo)) +(element (sect2info revhistory) (empty-sosofo)) +(element (sect2info seriesvolnums) (empty-sosofo)) +(element (sect2info subjectset) (empty-sosofo)) +(element (sect2info subtitle) (empty-sosofo)) +(element (sect2info surname) (empty-sosofo)) +(element (sect2info title) (empty-sosofo)) +(element (sect2info titleabbrev) (empty-sosofo)) +(element (sect2info volumenum) (empty-sosofo)) + +(element sect3info (process-children)) + +(element (sect3info abbrev) (empty-sosofo)) +(element (sect3info abstract) (empty-sosofo)) +(element (sect3info address) (empty-sosofo)) +(element (sect3info affiliation) (empty-sosofo)) +(element (sect3info artpagenums) (empty-sosofo)) +(element (sect3info author) (empty-sosofo)) +(element (sect3info authorblurb) (empty-sosofo)) +(element (sect3info authorgroup) (empty-sosofo)) +(element (sect3info authorinitials) (empty-sosofo)) +(element (sect3info bibliomisc) (empty-sosofo)) +(element (sect3info biblioset) (empty-sosofo)) +(element (sect3info collab) (empty-sosofo)) +(element (sect3info confgroup) (empty-sosofo)) +(element (sect3info contractnum) (empty-sosofo)) +(element (sect3info contractsponsor) (empty-sosofo)) +(element (sect3info contrib) (empty-sosofo)) +(element (sect3info copyright) (empty-sosofo)) +(element (sect3info corpauthor) (empty-sosofo)) +(element (sect3info corpname) (empty-sosofo)) +(element (sect3info date) (empty-sosofo)) +(element (sect3info edition) (empty-sosofo)) +(element (sect3info editor) (empty-sosofo)) +(element (sect3info firstname) (empty-sosofo)) +(element (sect3info graphic) (empty-sosofo)) +(element (sect3info honorific) (empty-sosofo)) +(element (sect3info invpartnumber) (empty-sosofo)) +(element (sect3info isbn) (empty-sosofo)) +(element (sect3info issn) (empty-sosofo)) +(element (sect3info issuenum) (empty-sosofo)) +(element (sect3info itermset) (empty-sosofo)) +(element (sect3info keywordset) (empty-sosofo)) +(element (sect3info legalnotice) (empty-sosofo)) +(element (sect3info lineage) (empty-sosofo)) +(element (sect3info modespec) (empty-sosofo)) +(element (sect3info orgname) (empty-sosofo)) +(element (sect3info othercredit) (empty-sosofo)) +(element (sect3info othername) (empty-sosofo)) +(element (sect3info pagenums) (empty-sosofo)) +(element (sect3info printhistory) (empty-sosofo)) +(element (sect3info productname) (empty-sosofo)) +(element (sect3info productnumber) (empty-sosofo)) +(element (sect3info pubdate) (empty-sosofo)) +(element (sect3info publisher) (empty-sosofo)) +(element (sect3info publishername) (empty-sosofo)) +(element (sect3info pubsnumber) (empty-sosofo)) +(element (sect3info releaseinfo) (empty-sosofo)) +(element (sect3info revhistory) (empty-sosofo)) +(element (sect3info seriesvolnums) (empty-sosofo)) +(element (sect3info subjectset) (empty-sosofo)) +(element (sect3info subtitle) (empty-sosofo)) +(element (sect3info surname) (empty-sosofo)) +(element (sect3info title) (empty-sosofo)) +(element (sect3info titleabbrev) (empty-sosofo)) +(element (sect3info volumenum) (empty-sosofo)) + +(element sect4info (process-children)) + +(element (sect4info abbrev) (empty-sosofo)) +(element (sect4info abstract) (empty-sosofo)) +(element (sect4info address) (empty-sosofo)) +(element (sect4info affiliation) (empty-sosofo)) +(element (sect4info artpagenums) (empty-sosofo)) +(element (sect4info author) (empty-sosofo)) +(element (sect4info authorblurb) (empty-sosofo)) +(element (sect4info authorgroup) (empty-sosofo)) +(element (sect4info authorinitials) (empty-sosofo)) +(element (sect4info bibliomisc) (empty-sosofo)) +(element (sect4info biblioset) (empty-sosofo)) +(element (sect4info collab) (empty-sosofo)) +(element (sect4info confgroup) (empty-sosofo)) +(element (sect4info contractnum) (empty-sosofo)) +(element (sect4info contractsponsor) (empty-sosofo)) +(element (sect4info contrib) (empty-sosofo)) +(element (sect4info copyright) (empty-sosofo)) +(element (sect4info corpauthor) (empty-sosofo)) +(element (sect4info corpname) (empty-sosofo)) +(element (sect4info date) (empty-sosofo)) +(element (sect4info edition) (empty-sosofo)) +(element (sect4info editor) (empty-sosofo)) +(element (sect4info firstname) (empty-sosofo)) +(element (sect4info graphic) (empty-sosofo)) +(element (sect4info honorific) (empty-sosofo)) +(element (sect4info invpartnumber) (empty-sosofo)) +(element (sect4info isbn) (empty-sosofo)) +(element (sect4info issn) (empty-sosofo)) +(element (sect4info issuenum) (empty-sosofo)) +(element (sect4info itermset) (empty-sosofo)) +(element (sect4info keywordset) (empty-sosofo)) +(element (sect4info legalnotice) (empty-sosofo)) +(element (sect4info lineage) (empty-sosofo)) +(element (sect4info modespec) (empty-sosofo)) +(element (sect4info orgname) (empty-sosofo)) +(element (sect4info othercredit) (empty-sosofo)) +(element (sect4info othername) (empty-sosofo)) +(element (sect4info pagenums) (empty-sosofo)) +(element (sect4info printhistory) (empty-sosofo)) +(element (sect4info productname) (empty-sosofo)) +(element (sect4info productnumber) (empty-sosofo)) +(element (sect4info pubdate) (empty-sosofo)) +(element (sect4info publisher) (empty-sosofo)) +(element (sect4info publishername) (empty-sosofo)) +(element (sect4info pubsnumber) (empty-sosofo)) +(element (sect4info releaseinfo) (empty-sosofo)) +(element (sect4info revhistory) (empty-sosofo)) +(element (sect4info seriesvolnums) (empty-sosofo)) +(element (sect4info subjectset) (empty-sosofo)) +(element (sect4info subtitle) (empty-sosofo)) +(element (sect4info surname) (empty-sosofo)) +(element (sect4info title) (empty-sosofo)) +(element (sect4info titleabbrev) (empty-sosofo)) +(element (sect4info volumenum) (empty-sosofo)) + +(element sect5info (process-children)) + +(element (sect5info abbrev) (empty-sosofo)) +(element (sect5info abstract) (empty-sosofo)) +(element (sect5info address) (empty-sosofo)) +(element (sect5info affiliation) (empty-sosofo)) +(element (sect5info artpagenums) (empty-sosofo)) +(element (sect5info author) (empty-sosofo)) +(element (sect5info authorblurb) (empty-sosofo)) +(element (sect5info authorgroup) (empty-sosofo)) +(element (sect5info authorinitials) (empty-sosofo)) +(element (sect5info bibliomisc) (empty-sosofo)) +(element (sect5info biblioset) (empty-sosofo)) +(element (sect5info collab) (empty-sosofo)) +(element (sect5info confgroup) (empty-sosofo)) +(element (sect5info contractnum) (empty-sosofo)) +(element (sect5info contractsponsor) (empty-sosofo)) +(element (sect5info contrib) (empty-sosofo)) +(element (sect5info copyright) (empty-sosofo)) +(element (sect5info corpauthor) (empty-sosofo)) +(element (sect5info corpname) (empty-sosofo)) +(element (sect5info date) (empty-sosofo)) +(element (sect5info edition) (empty-sosofo)) +(element (sect5info editor) (empty-sosofo)) +(element (sect5info firstname) (empty-sosofo)) +(element (sect5info graphic) (empty-sosofo)) +(element (sect5info honorific) (empty-sosofo)) +(element (sect5info invpartnumber) (empty-sosofo)) +(element (sect5info isbn) (empty-sosofo)) +(element (sect5info issn) (empty-sosofo)) +(element (sect5info issuenum) (empty-sosofo)) +(element (sect5info itermset) (empty-sosofo)) +(element (sect5info keywordset) (empty-sosofo)) +(element (sect5info legalnotice) (empty-sosofo)) +(element (sect5info lineage) (empty-sosofo)) +(element (sect5info modespec) (empty-sosofo)) +(element (sect5info orgname) (empty-sosofo)) +(element (sect5info othercredit) (empty-sosofo)) +(element (sect5info othername) (empty-sosofo)) +(element (sect5info pagenums) (empty-sosofo)) +(element (sect5info printhistory) (empty-sosofo)) +(element (sect5info productname) (empty-sosofo)) +(element (sect5info productnumber) (empty-sosofo)) +(element (sect5info pubdate) (empty-sosofo)) +(element (sect5info publisher) (empty-sosofo)) +(element (sect5info publishername) (empty-sosofo)) +(element (sect5info pubsnumber) (empty-sosofo)) +(element (sect5info releaseinfo) (empty-sosofo)) +(element (sect5info revhistory) (empty-sosofo)) +(element (sect5info seriesvolnums) (empty-sosofo)) +(element (sect5info subjectset) (empty-sosofo)) +(element (sect5info subtitle) (empty-sosofo)) +(element (sect5info surname) (empty-sosofo)) +(element (sect5info title) (empty-sosofo)) +(element (sect5info titleabbrev) (empty-sosofo)) +(element (sect5info volumenum) (empty-sosofo)) + +(element refsect1info (process-children)) + +(element (refsect1info abbrev) (empty-sosofo)) +(element (refsect1info abstract) (empty-sosofo)) +(element (refsect1info address) (empty-sosofo)) +(element (refsect1info affiliation) (empty-sosofo)) +(element (refsect1info artpagenums) (empty-sosofo)) +(element (refsect1info author) (empty-sosofo)) +(element (refsect1info authorblurb) (empty-sosofo)) +(element (refsect1info authorgroup) (empty-sosofo)) +(element (refsect1info authorinitials) (empty-sosofo)) +(element (refsect1info bibliomisc) (empty-sosofo)) +(element (refsect1info biblioset) (empty-sosofo)) +(element (refsect1info collab) (empty-sosofo)) +(element (refsect1info confgroup) (empty-sosofo)) +(element (refsect1info contractnum) (empty-sosofo)) +(element (refsect1info contractsponsor) (empty-sosofo)) +(element (refsect1info contrib) (empty-sosofo)) +(element (refsect1info copyright) (empty-sosofo)) +(element (refsect1info corpauthor) (empty-sosofo)) +(element (refsect1info corpname) (empty-sosofo)) +(element (refsect1info date) (empty-sosofo)) +(element (refsect1info edition) (empty-sosofo)) +(element (refsect1info editor) (empty-sosofo)) +(element (refsect1info firstname) (empty-sosofo)) +(element (refsect1info graphic) (empty-sosofo)) +(element (refsect1info honorific) (empty-sosofo)) +(element (refsect1info invpartnumber) (empty-sosofo)) +(element (refsect1info isbn) (empty-sosofo)) +(element (refsect1info issn) (empty-sosofo)) +(element (refsect1info issuenum) (empty-sosofo)) +(element (refsect1info itermset) (empty-sosofo)) +(element (refsect1info keywordset) (empty-sosofo)) +(element (refsect1info legalnotice) (empty-sosofo)) +(element (refsect1info lineage) (empty-sosofo)) +(element (refsect1info modespec) (empty-sosofo)) +(element (refsect1info orgname) (empty-sosofo)) +(element (refsect1info othercredit) (empty-sosofo)) +(element (refsect1info othername) (empty-sosofo)) +(element (refsect1info pagenums) (empty-sosofo)) +(element (refsect1info printhistory) (empty-sosofo)) +(element (refsect1info productname) (empty-sosofo)) +(element (refsect1info productnumber) (empty-sosofo)) +(element (refsect1info pubdate) (empty-sosofo)) +(element (refsect1info publisher) (empty-sosofo)) +(element (refsect1info publishername) (empty-sosofo)) +(element (refsect1info pubsnumber) (empty-sosofo)) +(element (refsect1info releaseinfo) (empty-sosofo)) +(element (refsect1info revhistory) (empty-sosofo)) +(element (refsect1info seriesvolnums) (empty-sosofo)) +(element (refsect1info subjectset) (empty-sosofo)) +(element (refsect1info subtitle) (empty-sosofo)) +(element (refsect1info surname) (empty-sosofo)) +(element (refsect1info title) (empty-sosofo)) +(element (refsect1info titleabbrev) (empty-sosofo)) +(element (refsect1info volumenum) (empty-sosofo)) + +(element refsect2info (process-children)) + +(element (refsect2info abbrev) (empty-sosofo)) +(element (refsect2info abstract) (empty-sosofo)) +(element (refsect2info address) (empty-sosofo)) +(element (refsect2info affiliation) (empty-sosofo)) +(element (refsect2info artpagenums) (empty-sosofo)) +(element (refsect2info author) (empty-sosofo)) +(element (refsect2info authorblurb) (empty-sosofo)) +(element (refsect2info authorgroup) (empty-sosofo)) +(element (refsect2info authorinitials) (empty-sosofo)) +(element (refsect2info bibliomisc) (empty-sosofo)) +(element (refsect2info biblioset) (empty-sosofo)) +(element (refsect2info collab) (empty-sosofo)) +(element (refsect2info confgroup) (empty-sosofo)) +(element (refsect2info contractnum) (empty-sosofo)) +(element (refsect2info contractsponsor) (empty-sosofo)) +(element (refsect2info contrib) (empty-sosofo)) +(element (refsect2info copyright) (empty-sosofo)) +(element (refsect2info corpauthor) (empty-sosofo)) +(element (refsect2info corpname) (empty-sosofo)) +(element (refsect2info date) (empty-sosofo)) +(element (refsect2info edition) (empty-sosofo)) +(element (refsect2info editor) (empty-sosofo)) +(element (refsect2info firstname) (empty-sosofo)) +(element (refsect2info graphic) (empty-sosofo)) +(element (refsect2info honorific) (empty-sosofo)) +(element (refsect2info invpartnumber) (empty-sosofo)) +(element (refsect2info isbn) (empty-sosofo)) +(element (refsect2info issn) (empty-sosofo)) +(element (refsect2info issuenum) (empty-sosofo)) +(element (refsect2info itermset) (empty-sosofo)) +(element (refsect2info keywordset) (empty-sosofo)) +(element (refsect2info legalnotice) (empty-sosofo)) +(element (refsect2info lineage) (empty-sosofo)) +(element (refsect2info modespec) (empty-sosofo)) +(element (refsect2info orgname) (empty-sosofo)) +(element (refsect2info othercredit) (empty-sosofo)) +(element (refsect2info othername) (empty-sosofo)) +(element (refsect2info pagenums) (empty-sosofo)) +(element (refsect2info printhistory) (empty-sosofo)) +(element (refsect2info productname) (empty-sosofo)) +(element (refsect2info productnumber) (empty-sosofo)) +(element (refsect2info pubdate) (empty-sosofo)) +(element (refsect2info publisher) (empty-sosofo)) +(element (refsect2info publishername) (empty-sosofo)) +(element (refsect2info pubsnumber) (empty-sosofo)) +(element (refsect2info releaseinfo) (empty-sosofo)) +(element (refsect2info revhistory) (empty-sosofo)) +(element (refsect2info seriesvolnums) (empty-sosofo)) +(element (refsect2info subjectset) (empty-sosofo)) +(element (refsect2info subtitle) (empty-sosofo)) +(element (refsect2info surname) (empty-sosofo)) +(element (refsect2info title) (empty-sosofo)) +(element (refsect2info titleabbrev) (empty-sosofo)) +(element (refsect2info volumenum) (empty-sosofo)) + +(element refsect3info (process-children)) + +(element (refsect3info abbrev) (empty-sosofo)) +(element (refsect3info abstract) (empty-sosofo)) +(element (refsect3info address) (empty-sosofo)) +(element (refsect3info affiliation) (empty-sosofo)) +(element (refsect3info artpagenums) (empty-sosofo)) +(element (refsect3info author) (empty-sosofo)) +(element (refsect3info authorblurb) (empty-sosofo)) +(element (refsect3info authorgroup) (empty-sosofo)) +(element (refsect3info authorinitials) (empty-sosofo)) +(element (refsect3info bibliomisc) (empty-sosofo)) +(element (refsect3info biblioset) (empty-sosofo)) +(element (refsect3info collab) (empty-sosofo)) +(element (refsect3info confgroup) (empty-sosofo)) +(element (refsect3info contractnum) (empty-sosofo)) +(element (refsect3info contractsponsor) (empty-sosofo)) +(element (refsect3info contrib) (empty-sosofo)) +(element (refsect3info copyright) (empty-sosofo)) +(element (refsect3info corpauthor) (empty-sosofo)) +(element (refsect3info corpname) (empty-sosofo)) +(element (refsect3info date) (empty-sosofo)) +(element (refsect3info edition) (empty-sosofo)) +(element (refsect3info editor) (empty-sosofo)) +(element (refsect3info firstname) (empty-sosofo)) +(element (refsect3info graphic) (empty-sosofo)) +(element (refsect3info honorific) (empty-sosofo)) +(element (refsect3info invpartnumber) (empty-sosofo)) +(element (refsect3info isbn) (empty-sosofo)) +(element (refsect3info issn) (empty-sosofo)) +(element (refsect3info issuenum) (empty-sosofo)) +(element (refsect3info itermset) (empty-sosofo)) +(element (refsect3info keywordset) (empty-sosofo)) +(element (refsect3info legalnotice) (empty-sosofo)) +(element (refsect3info lineage) (empty-sosofo)) +(element (refsect3info modespec) (empty-sosofo)) +(element (refsect3info orgname) (empty-sosofo)) +(element (refsect3info othercredit) (empty-sosofo)) +(element (refsect3info othername) (empty-sosofo)) +(element (refsect3info pagenums) (empty-sosofo)) +(element (refsect3info printhistory) (empty-sosofo)) +(element (refsect3info productname) (empty-sosofo)) +(element (refsect3info productnumber) (empty-sosofo)) +(element (refsect3info pubdate) (empty-sosofo)) +(element (refsect3info publisher) (empty-sosofo)) +(element (refsect3info publishername) (empty-sosofo)) +(element (refsect3info pubsnumber) (empty-sosofo)) +(element (refsect3info releaseinfo) (empty-sosofo)) +(element (refsect3info revhistory) (empty-sosofo)) +(element (refsect3info seriesvolnums) (empty-sosofo)) +(element (refsect3info subjectset) (empty-sosofo)) +(element (refsect3info subtitle) (empty-sosofo)) +(element (refsect3info surname) (empty-sosofo)) +(element (refsect3info title) (empty-sosofo)) +(element (refsect3info titleabbrev) (empty-sosofo)) +(element (refsect3info volumenum) (empty-sosofo)) + +(element seriesinfo (process-children)) + +(element (seriesinfo abbrev) (empty-sosofo)) +(element (seriesinfo abstract) (empty-sosofo)) +(element (seriesinfo address) (empty-sosofo)) +(element (seriesinfo affiliation) (empty-sosofo)) +(element (seriesinfo artpagenums) (empty-sosofo)) +(element (seriesinfo author) (empty-sosofo)) +(element (seriesinfo authorblurb) (empty-sosofo)) +(element (seriesinfo authorgroup) (empty-sosofo)) +(element (seriesinfo authorinitials) (empty-sosofo)) +(element (seriesinfo bibliomisc) (empty-sosofo)) +(element (seriesinfo biblioset) (empty-sosofo)) +(element (seriesinfo collab) (empty-sosofo)) +(element (seriesinfo confgroup) (empty-sosofo)) +(element (seriesinfo contractnum) (empty-sosofo)) +(element (seriesinfo contractsponsor) (empty-sosofo)) +(element (seriesinfo contrib) (empty-sosofo)) +(element (seriesinfo copyright) (empty-sosofo)) +(element (seriesinfo corpauthor) (empty-sosofo)) +(element (seriesinfo corpname) (empty-sosofo)) +(element (seriesinfo date) (empty-sosofo)) +(element (seriesinfo edition) (empty-sosofo)) +(element (seriesinfo editor) (empty-sosofo)) +(element (seriesinfo firstname) (empty-sosofo)) +(element (seriesinfo honorific) (empty-sosofo)) +(element (seriesinfo invpartnumber) (empty-sosofo)) +(element (seriesinfo isbn) (empty-sosofo)) +(element (seriesinfo issn) (empty-sosofo)) +(element (seriesinfo issuenum) (empty-sosofo)) +(element (seriesinfo lineage) (empty-sosofo)) +(element (seriesinfo orgname) (empty-sosofo)) +(element (seriesinfo othercredit) (empty-sosofo)) +(element (seriesinfo othername) (empty-sosofo)) +(element (seriesinfo pagenums) (empty-sosofo)) +(element (seriesinfo printhistory) (empty-sosofo)) +(element (seriesinfo productname) (empty-sosofo)) +(element (seriesinfo productnumber) (empty-sosofo)) +(element (seriesinfo pubdate) (empty-sosofo)) +(element (seriesinfo publisher) (empty-sosofo)) +(element (seriesinfo publishername) (empty-sosofo)) +(element (seriesinfo pubsnumber) (empty-sosofo)) +(element (seriesinfo releaseinfo) (empty-sosofo)) +(element (seriesinfo revhistory) (empty-sosofo)) +(element (seriesinfo seriesvolnums) (empty-sosofo)) +(element (seriesinfo subtitle) (empty-sosofo)) +(element (seriesinfo surname) (empty-sosofo)) +(element (seriesinfo title) (empty-sosofo)) +(element (seriesinfo titleabbrev) (empty-sosofo)) +(element (seriesinfo volumenum) (empty-sosofo)) + +(element artheader (empty-sosofo)) + +(element (artheader abbrev) (empty-sosofo)) +(element (artheader abstract) (empty-sosofo)) +(element (artheader address) (empty-sosofo)) +(element (artheader affiliation) (empty-sosofo)) +(element (artheader artpagenums) (empty-sosofo)) +(element (artheader author) (empty-sosofo)) +(element (artheader authorblurb) (empty-sosofo)) +(element (artheader authorgroup) (empty-sosofo)) +(element (artheader authorinitials) (empty-sosofo)) +(element (artheader bibliomisc) (empty-sosofo)) +(element (artheader biblioset) (empty-sosofo)) +(element (artheader bookbiblio) (empty-sosofo)) +(element (artheader collab) (empty-sosofo)) +(element (artheader confgroup) (empty-sosofo)) +(element (artheader contractnum) (empty-sosofo)) +(element (artheader contractsponsor) (empty-sosofo)) +(element (artheader contrib) (empty-sosofo)) +(element (artheader copyright) (empty-sosofo)) +(element (artheader corpauthor) (empty-sosofo)) +(element (artheader corpname) (empty-sosofo)) +(element (artheader date) (empty-sosofo)) +(element (artheader edition) (empty-sosofo)) +(element (artheader editor) (empty-sosofo)) +(element (artheader firstname) (empty-sosofo)) +(element (artheader honorific) (empty-sosofo)) +(element (artheader invpartnumber) (empty-sosofo)) +(element (artheader isbn) (empty-sosofo)) +(element (artheader issn) (empty-sosofo)) +(element (artheader issuenum) (empty-sosofo)) +(element (artheader keywordset) (empty-sosofo)) +(element (artheader lineage) (empty-sosofo)) +(element (artheader orgname) (empty-sosofo)) +(element (artheader othercredit) (empty-sosofo)) +(element (artheader othername) (empty-sosofo)) +(element (artheader pagenums) (empty-sosofo)) +(element (artheader printhistory) (empty-sosofo)) +(element (artheader productname) (empty-sosofo)) +(element (artheader productnumber) (empty-sosofo)) +(element (artheader pubdate) (empty-sosofo)) +(element (artheader publisher) (empty-sosofo)) +(element (artheader publishername) (empty-sosofo)) +(element (artheader pubsnumber) (empty-sosofo)) +(element (artheader releaseinfo) (empty-sosofo)) +(element (artheader revhistory) (empty-sosofo)) +(element (artheader seriesvolnums) (empty-sosofo)) +(element (artheader subtitle) (empty-sosofo)) +(element (artheader surname) (empty-sosofo)) +(element (artheader title) (empty-sosofo)) +(element (artheader titleabbrev) (empty-sosofo)) +(element (artheader volumenum) (empty-sosofo)) + +(element articleinfo (empty-sosofo)) + +(element (articleinfo abbrev) (empty-sosofo)) +(element (articleinfo abstract) (empty-sosofo)) +(element (articleinfo address) (empty-sosofo)) +(element (articleinfo affiliation) (empty-sosofo)) +(element (articleinfo artpagenums) (empty-sosofo)) +(element (articleinfo author) (empty-sosofo)) +(element (articleinfo authorblurb) (empty-sosofo)) +(element (articleinfo authorgroup) (empty-sosofo)) +(element (articleinfo authorinitials) (empty-sosofo)) +(element (articleinfo bibliomisc) (empty-sosofo)) +(element (articleinfo biblioset) (empty-sosofo)) +(element (articleinfo bookbiblio) (empty-sosofo)) +(element (articleinfo collab) (empty-sosofo)) +(element (articleinfo confgroup) (empty-sosofo)) +(element (articleinfo contractnum) (empty-sosofo)) +(element (articleinfo contractsponsor) (empty-sosofo)) +(element (articleinfo contrib) (empty-sosofo)) +(element (articleinfo copyright) (empty-sosofo)) +(element (articleinfo corpauthor) (empty-sosofo)) +(element (articleinfo corpname) (empty-sosofo)) +(element (articleinfo date) (empty-sosofo)) +(element (articleinfo edition) (empty-sosofo)) +(element (articleinfo editor) (empty-sosofo)) +(element (articleinfo firstname) (empty-sosofo)) +(element (articleinfo honorific) (empty-sosofo)) +(element (articleinfo invpartnumber) (empty-sosofo)) +(element (articleinfo isbn) (empty-sosofo)) +(element (articleinfo issn) (empty-sosofo)) +(element (articleinfo issuenum) (empty-sosofo)) +(element (articleinfo lineage) (empty-sosofo)) +(element (articleinfo orgname) (empty-sosofo)) +(element (articleinfo othercredit) (empty-sosofo)) +(element (articleinfo othername) (empty-sosofo)) +(element (articleinfo pagenums) (empty-sosofo)) +(element (articleinfo printhistory) (empty-sosofo)) +(element (articleinfo productname) (empty-sosofo)) +(element (articleinfo productnumber) (empty-sosofo)) +(element (articleinfo pubdate) (empty-sosofo)) +(element (articleinfo publisher) (empty-sosofo)) +(element (articleinfo publishername) (empty-sosofo)) +(element (articleinfo pubsnumber) (empty-sosofo)) +(element (articleinfo releaseinfo) (empty-sosofo)) +(element (articleinfo revhistory) (empty-sosofo)) +(element (articleinfo seriesvolnums) (empty-sosofo)) +(element (articleinfo subtitle) (empty-sosofo)) +(element (articleinfo surname) (empty-sosofo)) +(element (articleinfo title) (empty-sosofo)) +(element (articleinfo titleabbrev) (empty-sosofo)) +(element (articleinfo volumenum) (empty-sosofo)) + +(element refsynopsisdivinfo (process-children)) + +(element (refsynopsisdivinfo graphic) (empty-sosofo)) +(element (refsynopsisdivinfo legalnotice) (empty-sosofo)) +(element (refsynopsisdivinfo modespec) (empty-sosofo)) +(element (refsynopsisdivinfo subjectset) (empty-sosofo)) +(element (refsynopsisdivinfo keywordset) (empty-sosofo)) +(element (refsynopsisdivinfo itermset) (empty-sosofo)) +(element (refsynopsisdivinfo abbrev) (empty-sosofo)) +(element (refsynopsisdivinfo abstract) (empty-sosofo)) +(element (refsynopsisdivinfo address) (empty-sosofo)) +(element (refsynopsisdivinfo artpagenums) (empty-sosofo)) +(element (refsynopsisdivinfo author) (empty-sosofo)) +(element (refsynopsisdivinfo authorgroup) (empty-sosofo)) +(element (refsynopsisdivinfo authorinitials) (empty-sosofo)) +(element (refsynopsisdivinfo bibliomisc) (empty-sosofo)) +(element (refsynopsisdivinfo biblioset) (empty-sosofo)) +(element (refsynopsisdivinfo collab) (empty-sosofo)) +(element (refsynopsisdivinfo confgroup) (empty-sosofo)) +(element (refsynopsisdivinfo contractnum) (empty-sosofo)) +(element (refsynopsisdivinfo contractsponsor) (empty-sosofo)) +(element (refsynopsisdivinfo copyright) (empty-sosofo)) +(element (refsynopsisdivinfo corpauthor) (empty-sosofo)) +(element (refsynopsisdivinfo corpname) (empty-sosofo)) +(element (refsynopsisdivinfo date) (empty-sosofo)) +(element (refsynopsisdivinfo edition) (empty-sosofo)) +(element (refsynopsisdivinfo editor) (empty-sosofo)) +(element (refsynopsisdivinfo invpartnumber) (empty-sosofo)) +(element (refsynopsisdivinfo isbn) (empty-sosofo)) +(element (refsynopsisdivinfo issn) (empty-sosofo)) +(element (refsynopsisdivinfo issuenum) (empty-sosofo)) +(element (refsynopsisdivinfo orgname) (empty-sosofo)) +(element (refsynopsisdivinfo othercredit) (empty-sosofo)) +(element (refsynopsisdivinfo pagenums) (empty-sosofo)) +(element (refsynopsisdivinfo printhistory) (empty-sosofo)) +(element (refsynopsisdivinfo productname) (empty-sosofo)) +(element (refsynopsisdivinfo productnumber) (empty-sosofo)) +(element (refsynopsisdivinfo pubdate) (empty-sosofo)) +(element (refsynopsisdivinfo publisher) (empty-sosofo)) +(element (refsynopsisdivinfo publishername) (empty-sosofo)) +(element (refsynopsisdivinfo pubsnumber) (empty-sosofo)) +(element (refsynopsisdivinfo releaseinfo) (empty-sosofo)) +(element (refsynopsisdivinfo revhistory) (empty-sosofo)) +(element (refsynopsisdivinfo seriesvolnums) (empty-sosofo)) +(element (refsynopsisdivinfo subtitle) (empty-sosofo)) +(element (refsynopsisdivinfo title) (empty-sosofo)) +(element (refsynopsisdivinfo titleabbrev) (empty-sosofo)) +(element (refsynopsisdivinfo volumenum) (empty-sosofo)) +(element (refsynopsisdivinfo honorific) (empty-sosofo)) +(element (refsynopsisdivinfo firstname) (empty-sosofo)) +(element (refsynopsisdivinfo surname) (empty-sosofo)) +(element (refsynopsisdivinfo lineage) (empty-sosofo)) +(element (refsynopsisdivinfo othername) (empty-sosofo)) +(element (refsynopsisdivinfo affiliation) (empty-sosofo)) +(element (refsynopsisdivinfo authorblurb) (empty-sosofo)) +(element (refsynopsisdivinfo contrib) (empty-sosofo)) + +(element prefaceinfo (empty-sosofo)) + +(element (prefaceinfo abbrev) (empty-sosofo)) +(element (prefaceinfo abstract) (empty-sosofo)) +(element (prefaceinfo address) (empty-sosofo)) +(element (prefaceinfo affiliation) (empty-sosofo)) +(element (prefaceinfo artpagenums) (empty-sosofo)) +(element (prefaceinfo author) (empty-sosofo)) +(element (prefaceinfo authorblurb) (empty-sosofo)) +(element (prefaceinfo authorgroup) (empty-sosofo)) +(element (prefaceinfo authorinitials) (empty-sosofo)) +(element (prefaceinfo bibliomisc) (empty-sosofo)) +(element (prefaceinfo biblioset) (empty-sosofo)) +(element (prefaceinfo bookbiblio) (empty-sosofo)) +(element (prefaceinfo collab) (empty-sosofo)) +(element (prefaceinfo confgroup) (empty-sosofo)) +(element (prefaceinfo contractnum) (empty-sosofo)) +(element (prefaceinfo contractsponsor) (empty-sosofo)) +(element (prefaceinfo contrib) (empty-sosofo)) +(element (prefaceinfo copyright) (empty-sosofo)) +(element (prefaceinfo corpauthor) (empty-sosofo)) +(element (prefaceinfo corpname) (empty-sosofo)) +(element (prefaceinfo date) (empty-sosofo)) +(element (prefaceinfo edition) (empty-sosofo)) +(element (prefaceinfo editor) (empty-sosofo)) +(element (prefaceinfo firstname) (empty-sosofo)) +(element (prefaceinfo honorific) (empty-sosofo)) +(element (prefaceinfo invpartnumber) (empty-sosofo)) +(element (prefaceinfo isbn) (empty-sosofo)) +(element (prefaceinfo issn) (empty-sosofo)) +(element (prefaceinfo issuenum) (empty-sosofo)) +(element (prefaceinfo lineage) (empty-sosofo)) +(element (prefaceinfo orgname) (empty-sosofo)) +(element (prefaceinfo othercredit) (empty-sosofo)) +(element (prefaceinfo othername) (empty-sosofo)) +(element (prefaceinfo pagenums) (empty-sosofo)) +(element (prefaceinfo printhistory) (empty-sosofo)) +(element (prefaceinfo productname) (empty-sosofo)) +(element (prefaceinfo productnumber) (empty-sosofo)) +(element (prefaceinfo pubdate) (empty-sosofo)) +(element (prefaceinfo publisher) (empty-sosofo)) +(element (prefaceinfo publishername) (empty-sosofo)) +(element (prefaceinfo pubsnumber) (empty-sosofo)) +(element (prefaceinfo releaseinfo) (empty-sosofo)) +(element (prefaceinfo revhistory) (empty-sosofo)) +(element (prefaceinfo seriesvolnums) (empty-sosofo)) +(element (prefaceinfo subtitle) (empty-sosofo)) +(element (prefaceinfo surname) (empty-sosofo)) +(element (prefaceinfo title) (empty-sosofo)) +(element (prefaceinfo titleabbrev) (empty-sosofo)) +(element (prefaceinfo volumenum) (empty-sosofo)) + +(element chapterinfo (empty-sosofo)) + +(element (chapterinfo abbrev) (empty-sosofo)) +(element (chapterinfo abstract) (empty-sosofo)) +(element (chapterinfo address) (empty-sosofo)) +(element (chapterinfo affiliation) (empty-sosofo)) +(element (chapterinfo artpagenums) (empty-sosofo)) +(element (chapterinfo author) (empty-sosofo)) +(element (chapterinfo authorblurb) (empty-sosofo)) +(element (chapterinfo authorgroup) (empty-sosofo)) +(element (chapterinfo authorinitials) (empty-sosofo)) +(element (chapterinfo bibliomisc) (empty-sosofo)) +(element (chapterinfo biblioset) (empty-sosofo)) +(element (chapterinfo bookbiblio) (empty-sosofo)) +(element (chapterinfo collab) (empty-sosofo)) +(element (chapterinfo confgroup) (empty-sosofo)) +(element (chapterinfo contractnum) (empty-sosofo)) +(element (chapterinfo contractsponsor) (empty-sosofo)) +(element (chapterinfo contrib) (empty-sosofo)) +(element (chapterinfo copyright) (empty-sosofo)) +(element (chapterinfo corpauthor) (empty-sosofo)) +(element (chapterinfo corpname) (empty-sosofo)) +(element (chapterinfo date) (empty-sosofo)) +(element (chapterinfo edition) (empty-sosofo)) +(element (chapterinfo editor) (empty-sosofo)) +(element (chapterinfo firstname) (empty-sosofo)) +(element (chapterinfo honorific) (empty-sosofo)) +(element (chapterinfo invpartnumber) (empty-sosofo)) +(element (chapterinfo isbn) (empty-sosofo)) +(element (chapterinfo issn) (empty-sosofo)) +(element (chapterinfo issuenum) (empty-sosofo)) +(element (chapterinfo lineage) (empty-sosofo)) +(element (chapterinfo orgname) (empty-sosofo)) +(element (chapterinfo othercredit) (empty-sosofo)) +(element (chapterinfo othername) (empty-sosofo)) +(element (chapterinfo pagenums) (empty-sosofo)) +(element (chapterinfo printhistory) (empty-sosofo)) +(element (chapterinfo productname) (empty-sosofo)) +(element (chapterinfo productnumber) (empty-sosofo)) +(element (chapterinfo pubdate) (empty-sosofo)) +(element (chapterinfo publisher) (empty-sosofo)) +(element (chapterinfo publishername) (empty-sosofo)) +(element (chapterinfo pubsnumber) (empty-sosofo)) +(element (chapterinfo releaseinfo) (empty-sosofo)) +(element (chapterinfo revhistory) (empty-sosofo)) +(element (chapterinfo seriesvolnums) (empty-sosofo)) +(element (chapterinfo subtitle) (empty-sosofo)) +(element (chapterinfo surname) (empty-sosofo)) +(element (chapterinfo title) (empty-sosofo)) +(element (chapterinfo titleabbrev) (empty-sosofo)) +(element (chapterinfo volumenum) (empty-sosofo)) + +(element appendixinfo (empty-sosofo)) + +(element (appendixinfo abbrev) (empty-sosofo)) +(element (appendixinfo abstract) (empty-sosofo)) +(element (appendixinfo address) (empty-sosofo)) +(element (appendixinfo affiliation) (empty-sosofo)) +(element (appendixinfo artpagenums) (empty-sosofo)) +(element (appendixinfo author) (empty-sosofo)) +(element (appendixinfo authorblurb) (empty-sosofo)) +(element (appendixinfo authorgroup) (empty-sosofo)) +(element (appendixinfo authorinitials) (empty-sosofo)) +(element (appendixinfo bibliomisc) (empty-sosofo)) +(element (appendixinfo biblioset) (empty-sosofo)) +(element (appendixinfo bookbiblio) (empty-sosofo)) +(element (appendixinfo collab) (empty-sosofo)) +(element (appendixinfo confgroup) (empty-sosofo)) +(element (appendixinfo contractnum) (empty-sosofo)) +(element (appendixinfo contractsponsor) (empty-sosofo)) +(element (appendixinfo contrib) (empty-sosofo)) +(element (appendixinfo copyright) (empty-sosofo)) +(element (appendixinfo corpauthor) (empty-sosofo)) +(element (appendixinfo corpname) (empty-sosofo)) +(element (appendixinfo date) (empty-sosofo)) +(element (appendixinfo edition) (empty-sosofo)) +(element (appendixinfo editor) (empty-sosofo)) +(element (appendixinfo firstname) (empty-sosofo)) +(element (appendixinfo honorific) (empty-sosofo)) +(element (appendixinfo invpartnumber) (empty-sosofo)) +(element (appendixinfo isbn) (empty-sosofo)) +(element (appendixinfo issn) (empty-sosofo)) +(element (appendixinfo issuenum) (empty-sosofo)) +(element (appendixinfo lineage) (empty-sosofo)) +(element (appendixinfo orgname) (empty-sosofo)) +(element (appendixinfo othercredit) (empty-sosofo)) +(element (appendixinfo othername) (empty-sosofo)) +(element (appendixinfo pagenums) (empty-sosofo)) +(element (appendixinfo printhistory) (empty-sosofo)) +(element (appendixinfo productname) (empty-sosofo)) +(element (appendixinfo productnumber) (empty-sosofo)) +(element (appendixinfo pubdate) (empty-sosofo)) +(element (appendixinfo publisher) (empty-sosofo)) +(element (appendixinfo publishername) (empty-sosofo)) +(element (appendixinfo pubsnumber) (empty-sosofo)) +(element (appendixinfo releaseinfo) (empty-sosofo)) +(element (appendixinfo revhistory) (empty-sosofo)) +(element (appendixinfo seriesvolnums) (empty-sosofo)) +(element (appendixinfo subtitle) (empty-sosofo)) +(element (appendixinfo surname) (empty-sosofo)) +(element (appendixinfo title) (empty-sosofo)) +(element (appendixinfo titleabbrev) (empty-sosofo)) +(element (appendixinfo volumenum) (empty-sosofo)) diff --git a/print/dbinline.dsl b/print/dbinline.dsl new file mode 100644 index 0000000..43fb26a --- /dev/null +++ b/print/dbinline.dsl @@ -0,0 +1,263 @@ +;; $Id: dbinline.dsl,v 1.7 2003/03/25 19:53:56 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== INLINES =============================== + +(element abbrev ($charseq$)) +(element accel ($score-seq$ 'after)) +(element acronym ($charseq$)) +(element action ($charseq$)) +(element application ($charseq$)) +(element classname ($mono-seq$)) +(element constant ($mono-seq$)) +(element command ($bold-seq$)) +(element computeroutput ($mono-seq$)) +(element database ($charseq$)) +(element email + (make sequence (literal "<") ($mono-seq$) (literal ">"))) +(element envar ($charseq$)) +(element errorcode ($charseq$)) +(element errorname ($charseq$)) +(element errortype ($charseq$)) +(element filename ($mono-seq$)) +(element function ($mono-seq$)) +(element guibutton ($guilabel-seq$)) +(element guiicon ($guilabel-seq$)) +(element guilabel ($guilabel-seq$)) +(element guimenu ($guilabel-seq$)) +(element guimenuitem ($guilabel-seq$)) +(element guisubmenu ($guilabel-seq$)) +(element hardware ($charseq$)) +(element interface ($charseq$)) +(element interfacedefinition ($charseq$)) +(element keycap ($bold-seq$)) +(element keycode ($charseq$)) + +(element keycombo + (let* ((action (attribute-string (normalize "action"))) + (joinchar + (cond + ((equal? action (normalize "seq")) " ") ;; space + ((equal? action (normalize "simul")) "+") ;; + + ((equal? action (normalize "press")) "-") ;; ? I don't know + ((equal? action (normalize "click")) "-") ;; ? what to do + ((equal? action (normalize "double-click")) "-") ;; ? about the rest + ((equal? action (normalize "other")) "-") ;; ? of these + (else "-")))) + (let loop ((nl (children (current-node))) (count 1)) + (if (node-list-empty? nl) + (empty-sosofo) + (if (equal? count 1) + (make sequence + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl) (+ count 1))) + (make sequence + (literal joinchar) + (process-node-list (node-list-first nl)) + (loop (node-list-rest nl) (+ count 1)))))))) + +(element keysym ($charseq$)) +(element literal ($mono-seq$)) +(element medialabel ($italic-seq$)) + +(element menuchoice + (let* ((shortcut (select-elements (children (current-node)) + (normalize "shortcut"))) + (items (node-list-filter-by-not-gi + (children (current-node)) + (list (normalize "shortcut"))))) + (make sequence + (let loop ((nl items) (first? #t)) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if first? + (process-node-list (node-list-first nl)) + (make sequence + (if (or (equal? (gi (node-list-first nl)) + (normalize "guimenuitem")) + (equal? (gi (node-list-first nl)) + (normalize "guisubmenu"))) + (literal "\rightwards-arrow;") + (literal "+")) + (process-node-list (node-list-first nl)))) + (loop (node-list-rest nl) #f)))) + (if (node-list-empty? shortcut) + (empty-sosofo) + (make sequence + (literal " (") + (process-node-list shortcut) + (literal ")")))))) + +(element methodname ($mono-seq$)) +(element shortcut ($bold-seq$)) +(element mousebutton ($charseq$)) +(element option ($mono-seq$)) + +(element optional + (make sequence + (literal %arg-choice-opt-open-str%) + ($charseq$) + (literal %arg-choice-opt-close-str%))) + +(element parameter ($italic-mono-seq$)) +(element property ($charseq$)) +(element prompt ($mono-seq$)) +(element replaceable ($italic-mono-seq$)) +(element returnvalue ($charseq$)) +(element structfield ($italic-mono-seq$)) +(element structname ($charseq$)) +(element symbol ($charseq$)) +(element systemitem ($charseq$)) +(element token ($charseq$)) +(element type ($charseq$)) +(element userinput ($bold-mono-seq$)) +(element varname ($mono-seq$)) + +(element citation + (if biblio-citation-check + (let* ((bgraphies (select-elements (descendants (sgml-root-element)) + (normalize "bibliography"))) + (bchildren1 (expand-children bgraphies + (list (normalize "bibliography")))) + (bchildren2 (expand-children bchildren1 + (list (normalize "bibliodiv")))) + (bibentries (node-list-filter-by-gi + bchildren2 + (list (normalize "biblioentry") + (normalize "bibliomixed"))))) + (let loop ((bibs bibentries)) + (if (node-list-empty? bibs) + (make sequence + (error (string-append "Cannot find citation: " + (data (current-node)))) + (literal "[") ($charseq$) (literal "]")) + (if (citation-matches-target? (current-node) + (node-list-first bibs)) + (make link + destination: (node-list-address (node-list-first bibs)) + (literal "[") ($charseq$) (literal "]")) + (loop (node-list-rest bibs)))))) + (make sequence + (literal "[") ($charseq$) (literal "]")))) + +(element citerefentry + (if %refentry-xref-italic% + ($italic-seq$) + ($charseq$))) + +(element citetitle + (if (equal? (attribute-string (normalize "pubwork")) "article") + (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote))) + ($italic-seq$))) + +(element emphasis + (if (and (attribute-string (normalize "role")) + (or (equal? (attribute-string (normalize "role")) "strong") + (equal? (attribute-string (normalize "role")) "bold"))) + ($bold-seq$) + ($italic-seq$))) + +(element foreignphrase ($italic-seq$)) +(element markup ($charseq$)) +(element phrase ($charseq$)) + +(element quote + (let* ((hnr (hierarchical-number-recursive (normalize "quote") + (current-node))) + (depth (length hnr))) + (if (equal? (modulo depth 2) 1) + (make sequence + (literal (gentext-start-nested-quote)) + (process-children) + (literal (gentext-end-nested-quote))) + (make sequence + (literal (gentext-start-quote)) + (process-children) + (literal (gentext-end-quote)))))) + +(element sgmltag + (let ((class (if (attribute-string (normalize "class")) + (attribute-string (normalize "class")) + (normalize "element")))) + (cond +<![CDATA[ + ((equal? class (normalize "attribute")) ($mono-seq$)) + ((equal? class (normalize "attvalue")) ($mono-seq$)) + ((equal? class (normalize "element")) ($mono-seq$)) + ((equal? class (normalize "emptytag")) ($mono-seq$ (make sequence + (literal "<") + (process-children) + (literal "/>")))) + ((equal? class (normalize "endtag")) ($mono-seq$ (make sequence + (literal "</") + (process-children) + (literal ">")))) + ((equal? class (normalize "genentity")) ($mono-seq$ (make sequence + (literal "&") + (process-children) + (literal ";")))) + ((equal? class (normalize "numcharref")) ($mono-seq$ (make sequence + (literal "&#") + (process-children) + (literal ";")))) + ((equal? class (normalize "paramentity")) ($mono-seq$ (make sequence + (literal "%") + (process-children) + (literal ";")))) + ((equal? class (normalize "pi")) ($mono-seq$ (make sequence + (literal "<?") + (process-children) + (literal ">")))) + ((equal? class (normalize "starttag")) ($mono-seq$ (make sequence + (literal "<") + (process-children) + (literal ">")))) + ((equal? class (normalize "sgmlcomment")) ($mono-seq$ (make sequence + (literal "<!--") + (process-children) + (literal "-->")))) + ((equal? class (normalize "xmlpi")) ($mono-seq$ (make sequence + (literal "<?") + (process-children) + (literal "?>")))) +]]> + (else ($charseq$))))) + +(element trademark + (make sequence + ($charseq$) + (cond + ((equal? (attribute-string "class") (normalize "copyright")) + (literal "\copyright-sign;")) + ((equal? (attribute-string "class") (normalize "registered")) + (literal "\registered-sign;")) + ((equal? (attribute-string "class") (normalize "service")) + ($ss-seq$ + (literal "SM"))) + (else + (literal "\trade-mark-sign;"))))) + +(element wordasword ($italic-seq$)) + +(element lineannotation + (make sequence + font-family-name: %body-font-family% + font-posture: 'italic + (process-children))) + +(define ($ss-seq$ plus-or-minus #!optional (sosofo (process-children))) + (make sequence + font-size: + (* (inherited-font-size) %ss-size-factor%) + position-point-shift: + (plus-or-minus (* (inherited-font-size) %ss-shift-factor%)) + sosofo)) + +(element superscript ($ss-seq$ +)) +(element subscript ($ss-seq$ -)) diff --git a/print/dblink.dsl b/print/dblink.dsl new file mode 100644 index 0000000..6517a26 --- /dev/null +++ b/print/dblink.dsl @@ -0,0 +1,457 @@ +;; $Id: dblink.dsl,v 1.6 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= LINKS AND ANCHORS ========================== + +(element link + ;; No warnings about missing targets. Jade will do that for us, and + ;; this way we can use -wno-idref if we really don't care. + (let* ((endterm (attribute-string (normalize "endterm"))) + (linkend (attribute-string (normalize "linkend"))) + (target (element-with-id linkend)) + (etarget (if endterm + (element-with-id endterm) + (empty-node-list))) + (link-cont (if endterm + (if (node-list-empty? etarget) + (literal + (string-append "LINK CONTENT ENDTERM '" + endterm + "' MISSING")) + (with-mode xref-endterm-mode + (process-node-list etarget))) + (process-children)))) + (if (node-list-empty? target) + link-cont + (make link + destination: (node-list-address target) + link-cont)))) + +(element ulink + (make sequence + (if (node-list-empty? (children (current-node))) + (literal (attribute-string (normalize "url"))) + (make sequence + ($charseq$) + (if (not (equal? (attribute-string (normalize "url")) + (data-of (current-node)))) + (if %footnote-ulinks% + (if (and (equal? (print-backend) 'tex) bop-footnotes) + (make sequence + ($ss-seq$ + (literal (footnote-number (current-node)))) + (make page-footnote + (make paragraph + font-family-name: %body-font-family% + font-size: (* %footnote-size-factor% %bf-size%) + font-posture: 'upright + quadding: %default-quadding% + line-spacing: (* (* %footnote-size-factor% %bf-size%) + %line-spacing-factor%) + space-before: %para-sep% + space-after: %para-sep% + start-indent: %footnote-field-width% + first-line-start-indent: (- %footnote-field-width%) + (make line-field + field-width: %footnote-field-width% + (literal (footnote-number (current-node)) + (gentext-label-title-sep (normalize "footnote")))) + (literal (attribute-string (normalize "url")))))) + ($ss-seq$ + (literal (footnote-number (current-node))))) + (if %show-ulinks% + (make sequence + (literal " (") + (literal (attribute-string (normalize "url"))) + (literal ")")) + (empty-sosofo))) + (empty-sosofo)))))) + +(element footnoteref + (process-element-with-id (attribute-string (normalize "linkend")))) + +(element anchor + ;; This is different than (empty-sosofo) alone because the backend + ;; will hang an anchor off the empty sequence. + (make sequence (empty-sosofo))) + +(element beginpage (empty-sosofo)) + +;; ====================================================================== + +(define (olink-link) + ;; This is an olink without a TARGETDOCENT, treat it as a link within + ;; the same document. + (let* ((localinfo (attribute-string (normalize "localinfo"))) + (target (element-with-id localinfo)) + (linkmode (attribute-string (normalize "linkmode"))) + (modespec (if linkmode (element-with-id linkmode) (empty-node-list))) + (xreflabel (if (node-list-empty? modespec) + #f + (attribute-string (normalize "xreflabel") modespec))) + (linktext (strip (data-of (current-node))))) + (if (node-list-empty? target) + (make sequence + (error (string-append "OLink to missing ID '" localinfo "'")) + (if (and (equal? linktext "") xreflabel) + (literal xreflabel) + (process-children))) + (if (equal? linktext "") + (if xreflabel + (xref-general target xreflabel) + (xref-general target)) + (process-children))))) + +(define (olink-simple) + ;; Assumptions: + ;; - The TARGETDOCENT is identified by a public ID + ;; - If the element has no content, the title extracted by + ;; (olink-resource-title) should be used + ;; - The (olink-resource-title) function can deduce the title from + ;; the pubid and the sysid + (let* ((target (attribute-string (normalize "targetdocent"))) + (pubid (entity-public-id target)) + (sysid (system-id-filename target)) + (title (olink-resource-title pubid sysid)) + (linktext (strip (data-of (current-node))))) + (if (equal? linktext "") + (make sequence + font-posture: 'italic + (literal title)) + (process-children)))) + +(define (olink-outline-xref olroot target linktext) + (let* ((name (attribute-string (normalize "name") target)) + (label (attribute-string (normalize "label") target)) + (title (select-elements (children target) (normalize "ttl"))) + (substitute (list + (list "%g" (if name (literal name) (literal ""))) + (list "%n" (if label (literal label) (literal ""))) + (list "%t" (with-mode olink-title-mode + (process-node-list title))))) + (tlist (match-split-list linktext (assoc-objs substitute)))) + (string-list-sosofo tlist substitute))) + +(define (olink-outline) + (let* ((target (attribute-string (normalize "targetdocent"))) + (linkmode (attribute-string (normalize "linkmode"))) + (localinfo (attribute-string (normalize "localinfo"))) + (modespec (if linkmode (element-with-id linkmode) (empty-node-list))) + (xreflabel (if (node-list-empty? modespec) + "" + (attribute-string (normalize "xreflabel") modespec))) + (pubid (entity-public-id target)) + (sysid (system-id-filename target)) + (basename (trim-string sysid '(".sgm" ".xml" ".sgml"))) + (olinkfile (string-append basename %olink-outline-ext%)) + (olinkdoc (sgml-parse olinkfile)) + (olinkroot (node-property 'document-element olinkdoc)) + (olnode (if localinfo + (element-with-id localinfo olinkroot) + olinkroot)) + (linktext (strip (data-of (current-node))))) + (if (equal? linktext "") + (olink-outline-xref olinkroot olnode xreflabel) + (process-children)))) + +(element olink + (if (not (attribute-string (normalize "targetdocent"))) + (olink-link) + (if (attribute-string (normalize "linkmode")) + (olink-outline) + (olink-simple)))) + +(mode olink-title-mode + (default (process-children)) + + (element ttl + (make sequence + font-posture: 'italic + (process-children))) + + (element it + (make sequence + font-posture: 'upright + (process-children))) + + (element tt + (make sequence + font-family-name: %mono-font-family% + (process-children))) + + (element sub + ($ss-seq$ -)) + + (element sup + ($ss-seq$ +)) +) + +;; ====================================================================== + +(element xref + (let* ((endterm (attribute-string (normalize "endterm"))) + (linkend (attribute-string (normalize "linkend"))) + (target (element-with-id linkend)) + (xreflabel (if (node-list-empty? target) + #f + (attribute-string (normalize "xreflabel") target)))) + (if (node-list-empty? target) + (error (string-append "XRef LinkEnd to missing ID '" linkend "'")) + (if xreflabel + (make link + destination: (node-list-address target) + (literal xreflabel)) + (if endterm + (if (node-list-empty? (element-with-id endterm)) + (error (string-append "XRef EndTerm to missing ID '" + endterm "'")) + (make link + destination: (node-list-address (element-with-id endterm)) + (with-mode xref-endterm-mode + (process-element-with-id endterm)))) + (cond + ((or (equal? (gi target) (normalize "biblioentry")) + (equal? (gi target) (normalize "bibliomixed"))) + ;; xref to the bibliography is a special case + (xref-biblioentry target)) + ((equal? (gi target) (normalize "co")) + ;; callouts are a special case + (xref-callout target)) + ((equal? (gi target) (normalize "listitem")) + (xref-listitem target)) + ((equal? (gi target) (normalize "varlistentry")) + (xref-varlistentry target)) + ((equal? (gi target) (normalize "question")) + (xref-question target)) + ((equal? (gi target) (normalize "answer")) + (xref-answer target)) + ((equal? (gi target) (normalize "refentry")) + (xref-refentry target)) + ((equal? (gi target) (normalize "refnamediv")) + ;; and refnamedivs + (xref-refnamediv target)) + ((equal? (gi target) (normalize "glossentry")) + ;; as are glossentrys + (xref-glossentry target)) + ((equal? (gi target) (normalize "author")) + ;; and authors + (xref-author target)) + ((equal? (gi target) (normalize "authorgroup")) + ;; and authorgroups + (xref-authorgroup target)) + (else + (xref-general target)))))))) + +(define (xref-general target #!optional (xref-string #f)) + ;; This function is used by both XREF and OLINK (when no TARGETDOCENT + ;; is specified). The only case where xref-string is supplied is + ;; on OLINK. + (let ((label (attribute-string (normalize "xreflabel") target))) + (make link + destination: (node-list-address target) + (if xref-string + (auto-xref target xref-string) + (if label + (xreflabel-sosofo label) + (auto-xref target)))))) + +(define (xref-refentry target) +;; refmeta/refentrytitle, refmeta/manvolnum, refnamediv/refdescriptor, +;; refnamediv/refname + (let* ((refmeta (select-elements (children target) + (normalize "refmeta"))) + (refnamediv (select-elements (children target) + (normalize "refnamediv"))) + (rfetitle (select-elements (children refmeta) + (normalize "refentrytitle"))) + (manvolnum (select-elements (children refmeta) + (normalize "manvolnum"))) + (refdescrip (select-elements (children refnamediv) + (normalize "refdescriptor"))) + (refname (select-elements (children refnamediv) + (normalize "refname"))) + + (title (if (node-list-empty? rfetitle) + (if (node-list-empty? refdescrip) + (node-list-first refname) + (node-list-first refdescrip)) + (node-list-first rfetitle)))) + (make link + destination: (node-list-address target) + + (make sequence + font-posture: (if %refentry-xref-italic% + 'italic + (inherited-font-posture)) + + (process-node-list (children title)) + (if (and %refentry-xref-manvolnum% + (not (node-list-empty? manvolnum))) + (process-node-list manvolnum) + (empty-sosofo)))))) + +(define (xref-refnamediv target) + (let* ((refname (select-elements (children target) + (normalize "refname"))) + + (title (node-list-first refname))) + (make link + destination: (node-list-address target) + + (make sequence + font-posture: (if %refentry-xref-italic% + 'italic + (inherited-font-posture)) + + (process-node-list (children title)))))) + +(define (xref-varlistentry target) + (let ((terms (select-elements (children target) + (normalize "term")))) + (make link + destination: (node-list-address target) + (with-mode xref-varlistentry-mode + (process-node-list (node-list-first terms)))))) + +(define (xref-glossentry target) + (let ((glossterms (select-elements (children target) + (normalize "glossterm")))) + (make link + destination: (node-list-address target) + (with-mode xref-glossentry-mode + (process-node-list (node-list-first glossterms)))))) + +(define (xref-author target) + (make link + destination: (node-list-address target) + (literal (author-string target)))) + +(define (xref-authorgroup target) + ;; it's a quirk of author-list-string that it needs to point to + ;; one of the authors in the authorgroup, not the authorgroup. + ;; go figure. + (make link + destination: (node-list-address target) + (let loop ((author (select-elements (children target) + (normalize "author")))) + (if (node-list-empty? author) + (empty-sosofo) + (make sequence + (literal (author-list-string (node-list-first author))) + (loop (node-list-rest author))))))) + +(define (xref-biblioentry target) + (let* ((abbrev (node-list-first + (node-list-filter-out-pis (children target)))) + (label (attribute-string (normalize "xreflabel") target))) + (make link + destination: (node-list-address target) + + (if biblio-xref-title + (let* ((citetitles (select-elements (descendants target) + (normalize "citetitle"))) + (titles (select-elements (descendants target) + (normalize "title"))) + (title (if (node-list-empty? citetitles) + (node-list-first titles) + (node-list-first citetitles)))) + (with-mode xref-title-mode + (process-node-list title))) + (if biblio-number + (make sequence + (literal "[" (number->string (bibentry-number target)) "]")) + (if label + (make sequence + (literal "[" label "]")) + (if (equal? (gi abbrev) (normalize "abbrev")) + (make sequence + (process-node-list abbrev)) + (make sequence + (literal "[" + (attribute-string (normalize "id") target) + "]"))))))))) + +(define (xref-callout target) + (make link + destination: (node-list-address target) + ($callout-mark$ target))) + +(define (xref-listitem target) + (if (equal? (gi (parent target)) (normalize "orderedlist")) + (make link + destination: (node-list-address target) + (literal (orderedlist-listitem-label-recursive target))) + (error + (string-append "XRef to LISTITEM only supported in ORDEREDLISTs")))) + + +(define (xref-question target) + (make link + destination: (node-list-address target) + (make sequence + (literal (gentext-element-name target)) + (literal (gentext-label-title-sep target)) + (literal (question-answer-label target))))) + +(define (xref-answer target) + (xref-question target)) + +(mode xref-endterm-mode + (default + (make sequence + font-posture: 'italic + (process-children-trim)))) + +(define (xreflabel-sosofo xreflabel) + (make sequence + font-posture: 'italic + (literal xreflabel))) + +;; ====================================================================== + +;; Returns the title of the element as a sosofo, italicized for xref. +;; +(define (element-title-xref-sosofo nd) + (make sequence + font-posture: 'italic + (element-title-sosofo nd))) + +(mode xref-title-mode + (element title + (make sequence + font-posture: 'italic + (process-children-trim))) + + (element citetitle + (make sequence + font-posture: 'italic + (process-children-trim))) + + (element refname + (process-children-trim)) + + (element refentrytitle + (process-children-trim)) +) + +(mode xref-varlistentry-mode + (element term + ($italic-seq$))) + +(mode xref-glossentry-mode + (element glossterm + ($italic-seq$))) + +;; ====================================================================== + +(define (element-page-number-sosofo target) + (with-mode pageno-mode + (process-node-list target))) + +(mode pageno-mode + (default + (current-node-page-number-sosofo))) + +;; ====================================================================== + diff --git a/print/dblists.dsl b/print/dblists.dsl new file mode 100644 index 0000000..d109e77 --- /dev/null +++ b/print/dblists.dsl @@ -0,0 +1,515 @@ +;; $Id: dblists.dsl,v 1.7 2003/02/17 02:42:44 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; =============================== LISTS ================================ + +(define (BULLTREAT bullfcn ilevel override mark) + (cond + (override (bullfcn override ilevel)) + (mark (bullfcn mark ilevel)) + (else (bullfcn "bullet" ilevel)))) + +(define (BULLSTR m lvl) + (dingbat m)) + +(define (BULLSHIFT m lvl) + (let ((md (case-fold-down m))) + (case md + (("bullet") 0.0em) + (("box") (if (= lvl 1) 0.0em 0.1em)) + (("checkbox") (if (= lvl 1) 0.0em 0.1em)) + (("check") 0.0em) + (("checkedbox") 0.0em) + (("dash") 0.0em) + (("none") 0.0em) + (else 0.0em)))) + +(define (MSIZE m lvl f1 f2) + (if (= lvl 1) + (* %bf-size% f1) + (* %bf-size% f2))) + +(define (BULLSIZE m lvl) + (let ((md (case-fold-down m))) + (case md + (("bullet") (MSIZE m lvl 0.8 0.72)) + (("box") (MSIZE m lvl 0.9 0.72)) + (("checkbox") (MSIZE m lvl 0.9 0.72)) + (("check") (MSIZE m lvl 1.0 1.0)) + (("checkedbox") (MSIZE m lvl 1.0 1.0)) + (("dash") (MSIZE m lvl 1.0 1.0)) + (("none") (MSIZE m lvl 1.0 1.0)) + (else (MSIZE m lvl 1.0 1.0))))) + +(define (OLSTEP) 0.9em) +;; (case +;; (modulo (length (hierarchical-number-recursive (normalize "orderedlist"))) 4) +;; ((1) 1.4em) +;; ((2) 1.4em) +;; ((3) 1.4em) +;; ((0) 1.4em))) + +(define (ILSTEP) 1.0em) + +(define (COSTEP) 1.5pi) + +;; Improve spacing on lists, remove extra space before.. +;; Suggested by Adam Di Carlo, adam@onshore.com +(define ($list$) + (make display-group + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + space-after: (if (INLIST?) %para-sep% %block-sep%))) + +(element itemizedlist ($list$)) + +(element (itemizedlist title) + (make paragraph + use: title-style + (process-children))) + +(define (generic-list-item indent-step line-field) + (let* ((itemcontent (children (current-node))) + (first-child (node-list-first itemcontent)) + (spacing (inherited-attribute-string (normalize "spacing")))) + (make display-group + start-indent: (+ (inherited-start-indent) indent-step) + (make paragraph + use: (cond + ((equal? (gi first-child) (normalize "programlisting")) + verbatim-style) + ((equal? (gi first-child) (normalize "screen")) + verbatim-style) + ((equal? (gi first-child) (normalize "synopsis")) + verbatim-style) + ((equal? (gi first-child) (normalize "literallayout")) + linespecific-style) + ((equal? (gi first-child) (normalize "address")) + linespecific-style) + (else + nop-style)) + space-before: (if (equal? (normalize "compact") spacing) + 0pt + %para-sep%) + first-line-start-indent: (- indent-step) + (make sequence + line-field) + (with-mode listitem-content-mode + (process-node-list first-child))) + (process-node-list (node-list-rest itemcontent))))) + +(define (process-listitem-content) + (if (absolute-first-sibling?) + (make sequence + (process-children-trim)) + (next-match))) + +(mode listitem-content-mode + (element (listitem programlisting) (process-listitem-content)) + (element (listitem screen) (process-listitem-content)) + (element (listitem synopsis) (process-listitem-content)) + (element (listitem funcsynopsis) (process-listitem-content)) + (element (listitem literallayout) (process-listitem-content)) + (element (listitem address) (process-listitem-content)) + (element (listitem para) (process-listitem-content)) + (element (listitem formalpara) (process-listitem-content)) + (element (listitem simpara) (process-listitem-content)) +) + +(element (itemizedlist listitem) + (let ((ilevel (length (hierarchical-number-recursive (normalize "itemizedlist")))) + (override (inherited-attribute-string (normalize "override"))) + (mark (inherited-attribute-string (normalize "mark")))) + (generic-list-item + (ILSTEP) + (if (or (and override + (equal? (normalize override) (normalize "none"))) + (and (not override) + (equal? (normalize mark) (normalize "none")))) + (make line-field + font-size: (BULLTREAT BULLSIZE ilevel override mark) + position-point-shift: (BULLTREAT BULLSHIFT ilevel override mark) + field-width: (ILSTEP) + (literal "\no-break-space;")) + (make line-field + font-size: (BULLTREAT BULLSIZE ilevel override mark) + position-point-shift: (BULLTREAT BULLSHIFT ilevel override mark) + field-width: (ILSTEP) + (literal (BULLTREAT BULLSTR ilevel override mark))))))) + +(element orderedlist ($list$)) + +(element (orderedlist title) + (make paragraph + use: title-style + (process-children))) + +(element (orderedlist listitem) + (let* ((listitems (select-elements (children (parent (current-node))) + (normalize "listitem"))) + (itemnumber (orderedlist-listitem-number (current-node))) + (displaynum (if (string=? (inherited-attribute-string + (normalize "inheritnum")) + (normalize "inherit")) + (let loop ((nd (current-node)) (inum "")) + (if (node-list-empty? nd) + inum + (if (and (equal? (gi nd) + (normalize "listitem")) + (equal? (gi (parent nd)) + (normalize "orderedlist"))) + (loop (parent nd) + (string-append + (number-with-numeration + nd + (inherited-attribute-string + (normalize "numeration") nd) + (orderedlist-listitem-number nd)) + (if (string=? inum "") + "" + ".") + inum)) + (loop (parent nd) inum)))) + (number-with-numeration + (current-node) + (inherited-attribute-string (normalize "numeration")) + (orderedlist-listitem-number (current-node))))) + (listcount (+ (node-list-length listitems) itemnumber)) + (factor (cond + ((> listcount 999) 4) + ((> listcount 99) 3) + ((> listcount 9) 2) + (else 2)))) + (generic-list-item + (* (OLSTEP) factor) + (make line-field + field-width: (* (OLSTEP) factor) + field-align: 'end + (literal displaynum + (gentext-label-title-sep (normalize "orderedlist"))))))) + +(define (number-with-numeration node numeration number) + (let* ((depth (length (hierarchical-number-recursive (normalize "orderedlist") node))) + (rawnum (cond + ((equal? numeration (normalize "arabic")) 1) + ((equal? numeration (normalize "loweralpha")) 2) + ((equal? numeration (normalize "lowerroman")) 3) + ((equal? numeration (normalize "upperalpha")) 4) + ((equal? numeration (normalize "upperroman")) 0) + (else (modulo depth 5)))) + (num (case rawnum + ((1) (format-number number "1")) + ((2) (format-number number "a")) + ((3) (format-number number "i")) + ((4) (format-number number "A")) + ((0) (format-number number "I"))))) + (if (> depth 5) + (string-append "(" num ")") + num))) + +(element variablelist + (let* ((termlength (if (attribute-string (normalize "termlength")) + (string->number + (attribute-string (normalize "termlength"))) + %default-variablelist-termlength%)) + (maxlen (if (> termlength %default-variablelist-termlength%) + termlength + %default-variablelist-termlength%)) + (too-long? (variablelist-term-too-long? termlength))) + (make display-group + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + space-before: (if (INLIST?) %para-sep% %block-sep%) + space-after: (if (INLIST?) %para-sep% %block-sep%) + + (if (and (or (and termlength (not too-long?)) + %always-format-variablelist-as-table%) + (or %may-format-variablelist-as-table% + %always-format-variablelist-as-table%)) + (make table + space-before: (if (INLIST?) %para-sep% %block-sep%) + space-after: (if (INLIST?) %para-sep% %block-sep%) + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% + (inherited-start-indent))) + +;; Calculate the width of the column containing the terms... +;; +;; maxlen in (inherited-font-size) 72pt +;; x ---------- x ----------------------- x ------ = width +;; 12 chars 10pt in +;; + (make table-column + column-number: 1 + width: (* (* (/ maxlen 12) (/ (inherited-font-size) 10pt)) 72pt)) + (with-mode variablelist-table + (process-children))) + (process-children))))) + +(element varlistentry (process-children)) + +(element (varlistentry term) + (make paragraph + space-before: (if (first-sibling?) + %block-sep% + 0pt) + keep-with-next?: #t + first-line-start-indent: 0pt + start-indent: (inherited-start-indent) + (process-children))) + +(element (varlistentry listitem) + (let ((vle-indent 2em)) ; this ought to be in dbparam! + (generic-list-item + vle-indent + (make line-field + field-width: vle-indent + (literal "\no-break-space;"))))) + +(mode variablelist-table + (element varlistentry + (let* ((terms (select-elements (children (current-node)) + (normalize "term"))) + (listitem (select-elements (children (current-node)) + (normalize "listitem"))) + (termlen (if (attribute-string (normalize "termlength") + (parent (current-node))) + (string->number (attribute-string + (normalize "termlength") + (parent (current-node)))) + %default-variablelist-termlength%)) + (too-long? (varlistentry-term-too-long? (current-node) termlen))) + (if too-long? + (make sequence + (make table-row + cell-before-row-margin: %para-sep% + + (make table-cell + column-number: 1 + n-columns-spanned: 2 + n-rows-spanned: 1 + (process-node-list terms))) + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + ;; where terms would have gone + (empty-sosofo)) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + (process-node-list listitem)))) + (make table-row + cell-before-row-margin: %para-sep% + + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + (process-node-list terms)) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + (process-node-list listitem)))))) + + (element (varlistentry term) + (make sequence + (process-children-trim) + (if (not (last-sibling?)) + (literal ", ") + (empty-sosofo)))) + + (element (varlistentry listitem) + (make display-group + start-indent: 0pt + (process-children))) + + ;; Suggested by Nick NICHOLAS, nicholas@uci.edu + (element (variablelist title) + (make table-row + cell-before-row-margin: %para-sep% + (make table-cell + column-number: 1 + n-columns-spanned: 2 + n-rows-spanned: 1 + (make paragraph + use: title-style + start-indent: 0pt + (process-children))))) + +) + +(define (simplelist-table majororder cols members) + (let* ((termcount (node-list-length members)) + (rows (quotient (+ termcount (- cols 1)) cols))) + (make table + space-before: (if (INLIST?) %para-sep% %block-sep%) + space-after: (if (INLIST?) %para-sep% %block-sep%) + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + (if %simplelist-column-width% + (let colloop ((colnum 1)) + (if (> colnum cols) + (empty-sosofo) + (make sequence + (make table-column + width: %simplelist-column-width%) + (colloop (+ colnum 1))))) + (empty-sosofo)) + (let rowloop ((rownum 1)) + (if (> rownum rows) + (empty-sosofo) + (make sequence + (simplelist-row rownum majororder rows cols members) + (rowloop (+ rownum 1)))))))) + +(define (simplelist-row rownum majororder rows cols members) + (make table-row + (let colloop ((colnum 1)) + (if (> colnum cols) + (empty-sosofo) + (make sequence + (simplelist-entry rownum colnum majororder rows cols members) + (colloop (+ colnum 1))))))) + +(define (simplelist-entry rownum colnum majororder rows cols members) + (let ((membernum (if (equal? majororder 'row) + (+ (* (- rownum 1) cols) colnum) + (+ (* (- colnum 1) rows) rownum)))) + (let loop ((nl members) (count membernum)) + (if (<= count 1) + (make table-cell + column-number: colnum + n-columns-spanned: 1 + n-rows-spanned: 1 +;; removed to avoid dependency between dblists and dbtable +;; cell-before-row-margin: %cals-cell-before-row-margin% +;; cell-after-row-margin: %cals-cell-after-row-margin% +;; cell-before-column-margin: %cals-cell-before-column-margin% +;; cell-after-column-margin: %cals-cell-after-column-margin% +;; start-indent: %cals-cell-content-start-indent% +;; end-indent: %cals-cell-content-end-indent% +;; is another variable needed to parameterize these settings, or are +;; constants good enough? + cell-before-row-margin: 0pt + cell-after-row-margin: 0pt + cell-before-column-margin: 3pt + cell-after-column-margin: 3pt + start-indent: 0pt + end-indent: 0pt + quadding: 'start + (if (node-list-empty? nl) + (literal "\no-break-space;") + (process-node-list (node-list-first nl)))) + (loop (node-list-rest nl) (- count 1)))))) + +(element (entry simplelist) + ;; This is to avoid possibly putting tables inside tables, which don't + ;; work in some backends (e.g. RTF) + (make paragraph + (process-children))) + +(element (entry simplelist member) + ;; This is to avoid possibly putting tables inside tables, which don't + ;; work in some backends (e.g. RTF) + (let ((type (inherited-attribute-string (normalize "type")))) + (if (equal? type (normalize "inline")) + (next-match) + (make sequence + (if (equal? (child-number) 1) + (empty-sosofo) + (make paragraph-break)) + (process-children))))) + +(element simplelist + (let ((type (attribute-string (normalize "type"))) + (cols (if (attribute-string (normalize "columns")) + (if (> (string->number (attribute-string (normalize "columns"))) 0) + (string->number (attribute-string (normalize "columns"))) + 1) + 1)) + (members (select-elements (children (current-node)) (normalize "member")))) + (cond + ((equal? type (normalize "inline")) + (process-children)) + ((equal? type (normalize "vert")) + (simplelist-table 'column cols members)) + ((equal? type (normalize "horiz")) + (simplelist-table 'row cols members))))) + +(element member + (let ((type (inherited-attribute-string (normalize "type")))) + (if (equal? type (normalize "inline")) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal ""))) + (make paragraph + quadding: 'start + (process-children))))) + +(element segmentedlist (process-children)) +(element (segmentedlist title) ($lowtitle$ 2 4)) + +(element segtitle (empty-sosofo)) +(mode seglist-in-seg + (element segtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (process-children)))) + +(element seglistitem ($paragraph$)) +(element seg + (let* ((seg-num (child-number (current-node))) + (seglist (parent (parent (current-node)))) + (segtitle (nth-node (select-elements + (descendants seglist) (normalize "segtitle")) seg-num))) + + ;; Note: segtitle is only going to be the right thing in a well formed + ;; SegmentedList. If there are too many Segs or too few SegTitles, + ;; you'll get something odd...maybe an error + + (with-mode seglist-in-seg + (make paragraph + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (sosofo-append (process-node-list segtitle)) + (literal ": ")) + (process-children))))) + +(element calloutlist ($list$)) +(element (calloutlist title) ($lowtitle$ 2 4)) + +(element callout + (let* ((calloutcontent (children (current-node))) + (arearefs (inherited-attribute-string (normalize "arearefs"))) + (idlist (split arearefs))) + (make sequence + start-indent: (+ (inherited-start-indent) (COSTEP)) + (make paragraph + space-before: %para-sep% + first-line-start-indent: (- (COSTEP)) + (make line-field + field-width: (COSTEP) + (let loop ((ids idlist)) + (if (null? ids) + (empty-sosofo) + (make sequence + ($callout-mark$ (element-with-id (car ids))) + (loop (cdr ids)))))) + (process-node-list (children (node-list-first calloutcontent)))) + + (process-node-list (node-list-rest calloutcontent))))) diff --git a/print/dblot.dsl b/print/dblot.dsl new file mode 100644 index 0000000..6964ad4 --- /dev/null +++ b/print/dblot.dsl @@ -0,0 +1,24 @@ +;; $Id: dblot.dsl,v 1.2 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; need test cases to do toc/lot; do these later + +(element toc (empty-sosofo)) +(element (toc title) (empty-sosofo)) +(element tocfront ($paragraph$)) +(element tocentry ($paragraph$)) +(element tocpart (process-children)) +(element tocchap (process-children)) +(element toclevel1 (process-children)) +(element toclevel2 (process-children)) +(element toclevel3 (process-children)) +(element toclevel4 (process-children)) +(element toclevel5 (process-children)) +(element tocback ($paragraph$)) +(element lot (empty-sosofo)) +(element (lot title) (empty-sosofo)) +(element lotentry ($paragraph$)) + diff --git a/print/dbmath.dsl b/print/dbmath.dsl new file mode 100644 index 0000000..7284176 --- /dev/null +++ b/print/dbmath.dsl @@ -0,0 +1,92 @@ +;; $Id: dbmath.dsl,v 1.2 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define %equation-autolabel% #f) + +(element equation + ;; derived from $semiformal-object$ + (if (node-list-empty? (select-elements (children (current-node)) + (normalize "title"))) + ($informal-object$ %informalequation-rules% %informalequation-rules%) + ($formal-object$ %informalequation-rules% %informalequation-rules%))) + +(element (equation title) (empty-sosofo)) +(element (equation alt) (empty-sosofo)) +(element (equation graphic) + (make paragraph + space-before: 0pt + space-after: 0pt + ($img$ (current-node) #t))) + +(element informalequation + ;; Derived from informal-object + (let ((rule-before? %informalequation-rules%) + (rule-after? %informalequation-rules%)) + (if %equation-autolabel% + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: (+ %block-start-indent% + (inherited-start-indent)) + keep-with-next?: (object-title-after) + + (if rule-before? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-after: (/ %block-sep% 2) + keep-with-next?: #t) + (empty-sosofo)) + + (make table + (make table-column + column-number: 1 + width: (- %text-width% + (+ (inherited-start-indent) + (inherited-end-indent) + 1in))) + (make table-column + column-number: 2 + width: 1in) + (make table-row + (make table-cell + cell-row-alignment: 'center + start-indent: 0pt + end-indent: 0pt + (process-children)) + (make table-cell + cell-row-alignment: 'center + quadding: 'end + start-indent: 0pt + end-indent: 0pt + (make paragraph + (literal "(" (element-label (current-node)) ")"))))) + + (if rule-after? + (make rule + orientation: 'horizontal + line-thickness: %object-rule-thickness% + display-alignment: 'center + space-before: (/ %block-sep% 2) + keep-with-previous?: #t) + (empty-sosofo))) + ($informal-object$ rule-before? rule-after?)))) + +(element (informalequation alt) (empty-sosofo)) +(element (informalequation graphic) + (make paragraph + space-before: 0pt + space-after: 0pt + quadding: 'end + ($img$ (current-node) #t))) + +(element inlineequation ($inline-object$)) +(element (inlineequation alt) (empty-sosofo)) +(element (inlineequation graphic) + (make sequence + ($img$ (current-node) #f))) + diff --git a/print/dbmsgset.dsl b/print/dbmsgset.dsl new file mode 100644 index 0000000..ba0648e --- /dev/null +++ b/print/dbmsgset.dsl @@ -0,0 +1,51 @@ +;; $Id: dbmsgset.dsl,v 1.2 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ======================== ERROR MESSAGES (ETC.) ======================= + +(element msgset (process-children)) + +(element msgentry ($informal-object$)) + +(element simplemsgentry ($informal-object$)) + +(element msg + (make display-group + font-weight: 'bold + font-family-name: %mono-font-family% + (process-children))) + +(element msgmain (process-children)) + +(element msgsub + (make display-group + start-indent: (+ (inherited-start-indent) (ILSTEP)) + (process-children))) + +(element msgrel (empty-sosofo)) + +(element msgtext (process-children)) + +(element msginfo ($indent-para-container$)) + +(define ($genhead-para$ headtext) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + (make sequence + font-weight: 'bold + (literal + (string-append headtext ": "))) + (process-children))) + +(element msglevel ($genhead-para$ (gentext-element-name (current-node)))) +(element msgorig ($genhead-para$ (gentext-element-name (current-node)))) +(element msgaud ($genhead-para$ (gentext-element-name (current-node)))) + +(element msgexplan ($indent-para-container$)) +(element (msgexplan title) ($runinhead$)) +(element (msgexplan para) (make sequence (process-children))) + diff --git a/print/dbparam.dsl b/print/dbparam.dsl new file mode 100644 index 0000000..2170512 --- /dev/null +++ b/print/dbparam.dsl @@ -0,0 +1,2085 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN"> + +<style-sheet> +<style-specification> +<style-specification-body> + +;; $Id: dbparam.dsl,v 1.9 2003/04/29 05:33:30 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +;; === Book intro, for dsl2man ========================================== + +<![CDATA[ +;; DOCINFO +;; <title>DocBook Print Parameters</title> +;; <subtitle>Part of the Modular DocBook Stylesheet distribution</subtitle> +;; <author><firstname>Norman</firstname><surname>Walsh</surname> +;; </author> +;; <edition>$Revision: 1.9 $</edition> +;; <copyright><year>1997</year><year>1998</year><year>1999</year> +;; <holder>Norman Walsh</holder></copyright> +;; <legalnotice> +;; <para> +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER +;; CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +;; OTHER DEALINGS IN THE SOFTWARE. +;; </para> +;; </legalnotice> +;; <legalnotice> +;; <para> +;; Please direct all questions, bug reports, or suggestions for changes +;; to Norman Walsh, <<literal>ndw@nwalsh.com</literal>>. +;; </para> +;; <para> +;; See <ulink url="http://nwalsh.com/docbook/dsssl/">http://nwalsh.com/docbook/dsssl/</ulink> for more information.</para> +;; </legalnotice> +;; /DOCINFO +]]> + +;; REFERENCE TOC/LOT Apparatus + +(define %generate-set-toc% + ;; REFENTRY generate-set-toc + ;; PURP Should a Table of Contents be produced for Sets? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Set'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-book-toc% + ;; REFENTRY generate-book-toc + ;; PURP Should a Table of Contents be produced for Books? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Book'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define ($generate-book-lot-list$) + ;; REFENTRY generate-book-lot-list + ;; PURP Which Lists of Titles should be produced for Books? + ;; DESC + ;; This parameter should be a list (possibly empty) of the elements + ;; for which Lists of Titles should be produced for each 'Book'. + ;; + ;; It is meaningless to put elements that do not have titles in this + ;; list. If elements with optional titles are placed in this list, only + ;; the instances of those elements that do have titles will appear in + ;; the LOT. + ;; + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list (normalize "table") +(normalize "figure") +(normalize "example") +(normalize "equation"))) + +(define %generate-part-toc% + ;; REFENTRY generate-part-toc + ;; PURP Should a Table of Contents be produced for Parts? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Part'. + ;; Note: '%generate-part-toc-on-titlepage%' controls whether the Part TOC + ;; is placed on the bottom of the part titlepage or on page(s) of its own. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-part-toc-on-titlepage% + ;; REFENTRY generate-part-toc-on-titlepage + ;; PURP Should the Part TOC appear on the Part title page? + ;; DESC + ;; If true, the Part TOC will be placed on the Part title page. If false, + ;; the TOC will be placed on separate page(s) after the Part title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-reference-toc% + ;; REFENTRY generate-reference-toc + ;; PURP Should a Table of Contents be produced for References? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Reference'. + ;; Note: '%generate-reference-toc-on-titlepage%' controls whether the + ;; Reference TOC + ;; is placed on the bottom of the title page or on page(s) of its own. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-reference-toc-on-titlepage% + ;; REFENTRY generate-reference-toc-on-titlepage + ;; PURP Should the Reference TOC appear on the Reference title page? + ;; DESC + ;; If true, the Reference TOC will be placed on the Reference title page. + ;; If false, + ;; the TOC will be placed on separate page(s) after the title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-article-toc% + ;; REFENTRY generate-article-toc + ;; PURP Should a Table of Contents be produced for Articles? + ;; DESC + ;; If true, a Table of Contents will be generated for each 'Article'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-article-toc-on-titlepage% + ;; REFENTRY generate-article-toc-on-titlepage + ;; PURP Should the Article TOC appear on the Article title page? + ;; DESC + ;; If true, the Article TOC will be placed on the Article title page. + ;; If false, + ;; the TOC will be placed on separate page(s) after the title page. + ;; If false, %generate-article-titlepage-on-separate-page% should be + ;; true. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Titlepages + +(define %generate-set-titlepage% + ;; REFENTRY generate-set-titlepage + ;; PURP Should a set title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Set'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-book-titlepage% + ;; REFENTRY generate-book-titlepage + ;; PURP Should a book title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Book'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-part-titlepage% + ;; REFENTRY generate-part-titlepage + ;; PURP Should a part title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Part'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-partintro-on-titlepage% + ;; REFENTRY generate-partintro-on-titlepage + ;; PURP Should the PartIntro appear on the Part/Reference title page? + ;; DESC + ;; If true, the PartIntro content will appear on the title page of + ;; Parts and References. If false, + ;; it will be placed on separate page(s) after the title page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-reference-titlepage% + ;; REFENTRY generate-reference-titlepage + ;; PURP Should a reference title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Reference'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-article-titlepage% + ;; REFENTRY generate-article-titlepage + ;; PURP Should an article title page be produced? + ;; DESC + ;; If true, a title page will be generated for each 'Article'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %generate-article-titlepage-on-separate-page% + ;; REFENTRY generate-article-ttlpg-on-sep-page + ;; PURP Should the article title page be on a separate page? + ;; DESC + ;; If true, the title page for each 'Article' will occur on its own page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %titlepage-in-info-order% + ;; REFENTRY titlepage-in-info-order + ;; PURP Place elements on title page in document order? + ;; DESC + ;; If true, the elements on the title page will be set in the order that + ;; they appear in the *info element. Otherwise, they will be set in + ;; the order specified in the *-titlepage-*-elements list. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %author-othername-in-middle% + ;; REFENTRY othername-in-middle + ;; PURP Author OTHERNAME appears between FIRSTNAME and SURNAME? + ;; DESC + ;; If true, the OTHERNAME of an AUTHOR appears between the + ;; FIRSTNAME and SURNAME. Otherwise, OTHERNAME is suppressed. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE RefEntries and FuncSynopses + +(define %refentry-new-page% + ;; REFENTRY refentry-new-page + ;; PURP 'RefEntry' starts on new page? + ;; DESC + ;; If true, each 'RefEntry' begins on a new page. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %refentry-keep% + ;; REFENTRY refentry-keep + ;; PURP Keep RefEntrys together? + ;; DESC + ;; Refentry keep indicates how the stylesheet should + ;; attempt to keep each RefEntry. Common values are '#t', for the + ;; smallest possible area, 'page' for the same page, and '#f' to ignore + ;; this characteristic. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %refentry-generate-name% + ;; REFENTRY refentry-generate-name + ;; PURP Output NAME header before 'RefName'(s)? + ;; DESC + ;; If true, a "NAME" section title is output before the list + ;; of 'RefName's. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %refentry-xref-italic% + ;; REFENTRY refentry-xref-italic + ;; PURP Use italic text when cross-referencing RefEntrys? + ;; DESC + ;; If true, italics are used when cross-referencing RefEntrys, either + ;; with XRef or CiteRefEntry. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %refentry-xref-manvolnum% + ;; REFENTRY refentry-xref-manvolnum + ;; PURP Output manvolnum as part of RefEntry cross-reference? + ;; DESC + ;; If true, the manvolnum is used when cross-referencing RefEntrys, either + ;; with XRef or CiteRefEntry. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %funcsynopsis-style% + ;; REFENTRY funcsynopsis-style + ;; PURP What style of 'FuncSynopsis' should be generated? + ;; DESC + ;; If '%funcsynopsis-style%' is 'ansi', + ;; ANSI-style function synopses are generated for a 'FuncSynopsis', + ;; otherwise K<![CDATA[&]]>R-style function synopses are generated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'ansi) + +(define %kr-funcsynopsis-indent% + ;; REFENTRY kr-funcsynopsis-indent + ;; PURP Indent-depth in K<![CDATA[&]]>R-style function synopses + ;; DESC + ;; If the '%funcsynopsis-style%' is 'kr', + ;; '%kr-funcsynopsis-indent%' specifies the amount by which parameter + ;; definitions should be indented under the function prototype. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 1pi) + +(define %funcsynopsis-decoration% + ;; REFENTRY funcsynopsis-decoration + ;; PURP Decorate elements of a FuncSynopsis? + ;; DESC + ;; If true, elements of the FuncSynopsis will be decorated (e.g. bold or + ;; italic). The decoration is controlled by functions that can be redefined + ;; in a customization layer. See 'edbsynop.dsl'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Fonts + +(define %refentry-name-font-family% + ;; REFENTRY refentry-name-font-family + ;; PURP The font family used in RefName + ;; DESC + ;; The name of the font family used in 'RefEntry' + ;; 'RefName's. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + %mono-font-family%) + +(define %title-font-family% + ;; REFENTRY title-font-family + ;; PURP The font family used in titles + ;; DESC + ;; The name of the font family used in titles (Arial by default). + ;; + ;; The values used here are system dependent (you have + ;; to have the fonts you select) and backend dependent (the backend has + ;; to know how to use them). + ;; + ;; The values here work for the RTF backend under MS Windows. YMMV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "Arial") + +(define %body-font-family% + ;; REFENTRY body-font-family + ;; PURP The font family used in body text + ;; DESC + ;; The name of the font family used in body text + ;; (Times New Roman by default). + ;; + ;; The values used here are system dependent (you have + ;; to have the fonts you select) and backend dependent (the backend has + ;; to know how to use them). + ;; + ;; The values here work for the RTF backend under MS Windows. YMMV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "Times New Roman") + +(define %mono-font-family% + ;; REFENTRY mono-font-family + ;; PURP The font family used in verbatim environments + ;; DESC + ;; The name of the font family used in verbatim environments (Courier New + ;; by default). + ;; + ;; The values used here are system dependent (you have + ;; to have the fonts you select) and backend dependent (the backend has + ;; to know how to use them). + ;; + ;; The values here work for the RTF backend under MS Windows. YMMV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "Courier New") + +(define %admon-font-family% + ;; REFENTRY admon-font-family + ;; PURP The font family used in admonitions + ;; DESC + ;; The name of the font family used for body text in admonitions (Arial + ;; by default). + ;; + ;; The values used here are system dependent (you have + ;; to have the fonts you select) and backend dependent (the backend has + ;; to know how to use them). + ;; + ;; The values here work for the RTF backend under MS Windows. YMMV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "Arial") + +(define %guilabel-font-family% + ;; REFENTRY guilabel-font-family + ;; PURP The font family used in GUI labels + ;; DESC + ;; The name of the font family used for text that represents text on a + ;; GUI (e.g., text in 'GUILabel', 'GUIMenu', + ;; etc.). (Arial by default). + ;; + ;; The values used here are system dependent (you have + ;; to have the fonts you select) and backend dependent (the backend has + ;; to know how to use them). + ;; + ;; The values here work for the RTF backend under MS Windows. YMMV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "Arial") + +(define %visual-acuity% + ;; REFENTRY visual-acuity + ;; PURP General measure of document text size + ;; DESC + ;; This parameter controls the general size of the text in the document. + ;; Several other values (body font size and margins) have default values that + ;; vary depending on the setting of '%visual-acuity%'. There + ;; are three legal values: 'normal', + ;; the normal, standard document size (10pt body text); + ;; 'tiny', + ;; a small text size (8pt body text); + ;; 'presbyopic', + ;; a slightly more generous size (12pt body text); and + ;; 'large-type', + ;; quite large (24pt body text). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ;; "tiny" + ;; "presbyopic" + ;; "large-type" + "normal") + +(define %hsize-bump-factor% + ;; REFENTRY hsize-bump-factor + ;; PURP Font scaling factor + ;; DESC + ;; Internally, the stylesheet refers to font sizes in purely relative + ;; terms. This is done by defining a scaled set of fonts + ;; (sizes 1, 2, 3, etc.) + ;; based at the default text font size (e.g. 10pt). The '%hsize-bump-factor%' + ;; describes the ratio between scaled sizes. The default is 1.2. + ;; + ;; Each hsize is '%hsize-bump-factor%' times larger than + ;; the previous hsize. For example, if the base size is 10pt, and + ;; '%hsize-bump-factor%' + ;; 1.2, hsize 1 is 12pt, hsize 2 is 14.4pt, hsize 3 is 17.28pt, etc. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 1.2) + +(define %smaller-size-factor% + ;; REFENTRY smaller-size-factor + ;; PURP Smaller font scaling factor + ;; DESC + ;; In environments that are usually set with a slightly smaller font size, + ;; for example block quotations, the stylesheet calculates the smaller font + ;; size by muliplying the current font size by '%smaller-size-factor%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.9) + +(define %ss-size-factor% + ;; REFENTRY ss-size-factor + ;; PURP Super/subscript scaling factor + ;; DESC + ;; When text is set as a subscript or superscript, the font size of the + ;; text is multiplied by '%ss-size-factor%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.6) + +(define %ss-shift-factor% + ;; REFENTRY ss-shift-factor + ;; PURP Super/subscript shift factor + ;; DESC + ;; When text is set as a subscript or superscript, it is set above or below + ;; the baseline by a factor of the current font size and '%ss-shift-factor%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.4) + +(define %verbatim-size-factor% + ;; REFENTRY verbatim-size-factor + ;; PURP Verbatim font scaling factor + ;; DESC + ;; When a monospace font is selected, the current font size is multiplied + ;; by the '%verbatim-size-factor%'. If '%verbatim-size-factor%' + ;; is '#f', no scaling is performed (Well, that's not precisely true. + ;; In '$verbatim-display$' + ;; environments, the font size is calculated with respect to the longest line + ;; in the display, if '%verbatim-size-factor%' is '#f'). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.9) + +(define %bf-size% + ;; REFENTRY bf-size + ;; PURP Defines the body font size + ;; DESC + ;; Sets the body font size. This parameter is usually controlled by the + ;; '%visual-acuity%' parameter. + ;; /DESC + ;; /REFENTRY + (case %visual-acuity% + (("tiny") 8pt) + (("normal") 10pt) + (("presbyopic") 12pt) + (("large-type") 24pt))) + +(define-unit em %bf-size%) + +(define %footnote-size-factor% + ;; REFENTRY footnote-size-factor + ;; PURP Footnote font scaling factor + ;; DESC + ;; When printing footnotes, the current font size is multiplied by the + ;; '%footnote-size-factor%'. + ;; /DESC + ;; /REFENTRY + 0.9) + +(define %formal-object-title-font-weight% + ;; REFENTRY formal-object-title-font-weight + ;; PURP Formal object title font weight + ;; DESC + ;; Specifies the title font weight (i.e., 'bold or 'medium) of + ;; formal objects (e.g., figures). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'bold) + +(define %table-title-font-weight% + ;; REFENTRY table-title-font-weight + ;; PURP Table title font weight + ;; DESC + ;; Specifies the title font weight (i.e., 'bold or 'medium) of the + ;; formal tables. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'bold) + +;; REFERENCE Backends + +(define tex-backend + ;; REFENTRY tex-backend + ;; PURP Are we using the TeX backend? + ;; DESC + ;; This parameter exists so that '-V tex-backend' can be used on the + ;; command line to explicitly select the TeX backend. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define mif-backend + ;; REFENTRY mif-backend + ;; PURP Are we using the MIF backend? + ;; DESC + ;; This parameter exists so that '-V mif-backend' can be used on the + ;; command line to explicitly select the MIF backend. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define rtf-backend + ;; REFENTRY rtf-backend + ;; PURP Are we using the RTF backend? + ;; DESC + ;; This parameter exists so that '-V rtf-backend' can be used on the + ;; command line to explicitly select the RTF backend. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define default-backend + ;; REFENTRY default-backend + ;; PURP What is the default backend? + ;; DESC + ;; This parameter sets the default backend. Selecting an explicit + ;; backend enables features specific to that backend (if there are any). + ;; The legal values are 'rtf', 'tex', 'mif', and '#f'. Using + ;; '#f' implies that no special features are used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define (print-backend) + ;; REFENTRY print-backend + ;; PURP Returns the backend that is being used to format the document + ;; DESC + ;; This parameter controls features in the stylesheet that are backend + ;; specific. The legal values are 'rtf', 'tex', 'mif', and '#f'. Using + ;; '#f' implies that no special features are used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (cond + (tex-backend 'tex) + (mif-backend 'mif) + (rtf-backend 'rtf) + (else default-backend))) + +;; REFERENCE Verbatim Environments + +(define %verbatim-default-width% + ;; REFENTRY verbatim-default-width + ;; PURP Default width of verbatim environments + ;; DESC + ;; If no WIDTH attribute is specified on verbatim environments, + ;; '%verbatim-default-width%' is the default. Note: this width only + ;; comes into play if '%verbatim-size-factor%' is '#f'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 80) + +(define %number-synopsis-lines% + ;; REFENTRY number-synopsis-lines + ;; PURP Enumerate lines in a 'Synopsis'? + ;; DESC + ;; If true, lines in each 'Synopsis' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-funcsynopsisinfo-lines% + ;; REFENTRY number-funcsynopsisinfo-lines + ;; PURP Enumerate lines in a 'FuncSynopsisInfo'? + ;; DESC + ;; If true, lines in each 'FuncSynopsisInfo' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-literallayout-lines% + ;; REFENTRY number-literallayout-lines + ;; PURP Enumerate lines in a 'LiteralLayout'? + ;; DESC + ;; If true, lines in each 'LiteralLayout' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-address-lines% + ;; REFENTRY number-address-lines + ;; PURP Enumerate lines in a 'Address'? + ;; DESC + ;; If true, lines in each 'Address' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-programlisting-lines% + ;; REFENTRY number-programlisting-lines + ;; PURP Enumerate lines in a 'ProgramListing'? + ;; DESC + ;; If true, lines in each 'ProgramListing' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %number-screen-lines% + ;; REFENTRY number-screen-lines + ;; PURP Enumerate lines in a 'Screen'? + ;; DESC + ;; If true, lines in each 'Screen' will be enumerated. + ;; See also '%linenumber-mod%', '%linenumber-length%', + ;; '%linenumber-padchar%', and '($linenumber-space$)'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %linenumber-mod% + ;; REFENTRY linenumber-mod + ;; PURP Controls line-number frequency in enumerated environments. + ;; DESC + ;; Every '%linenumber-mod%' line will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 5) + +(define %linenumber-length% + ;; REFENTRY linenumber-length + ;; PURP Width of line numbers in enumerated environments + ;; DESC + ;; Line numbers will be padded to '%linenumber-length%' + ;; characters. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 3) + +(define %linenumber-padchar% + ;; REFENTRY linenumber-padchar + ;; PURP Pad character in line numbers + ;; DESC + ;; Line numbers will be padded (on the left) with '%linenumber-padchar%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "\no-break-space;") + +(define ($linenumber-space$) + ;; REFENTRY linenumber-space + ;; PURP Returns the sosofo which separates line numbers from the text + ;; DESC + ;; The sosofo returned by '($linenumber-space$)' is placed + ;; between the line number and the corresponding line in + ;; enumerated environments. + ;; + ;; Note: '%linenumber-padchar%'s are separated from lines + ;; that are not enumerated (because they don't match '%linenumber-mod%'). + ;; In other words, '($linenumber-space$)' occurs + ;; on every line. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (literal "\no-break-space;")) + +(define %indent-synopsis-lines% + ;; REFENTRY indent-synopsis-lines + ;; PURP Indent lines in a 'Synopsis'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-funcsynopsisinfo-lines% + ;; REFENTRY indent-funcsynopsisinfo-lines + ;; PURP Indent lines in a 'FuncSynopsisInfo'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-literallayout-lines% + ;; REFENTRY indent-literallayout-lines + ;; PURP Indent lines in a 'LiteralLayout'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-address-lines% + ;; REFENTRY indent-address-lines + ;; PURP Indent lines in a 'Address'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-programlisting-lines% + ;; REFENTRY indent-programlisting-lines + ;; PURP Indent lines in a 'ProgramListing'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %indent-screen-lines% + ;; REFENTRY indent-screen-lines + ;; PURP Indent lines in a 'Screen'? + ;; DESC + ;; If not '#f', each line in the display will be indented + ;; with the content of this variable. Usually it is set to some number + ;; of spaces, but you can indent with any string you wish. + ;; /DESC + ;; /REFENTRY + #f) + +(define %callout-fancy-bug% + ;; REFENTRY callout-fancy-bug + ;; PURP Use fancy callout bugs? + ;; DESC + ;; If true, fancy callout bugs will be used. Otherwise, simple ones are + ;; used. Fancy callout bugs may require the RTF backend. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %callout-default-col% + ;; REFENTRY callout-default-col + ;; PURP Default column for callouts + ;; DESC + ;; If the coordinates of a callout include only a line number, the callout + ;; bug will appear in column '%callout-default-col%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 60) + +;; REFERENCE Labelling + +(define %section-autolabel% + ;; REFENTRY section-autolabel + ;; PURP Are sections enumerated? + ;; DESC + ;; If true, unlabeled sections will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %chapter-autolabel% + ;; REFENTRY chapter-autolabel + ;; PURP Are chapters enumerated? + ;; DESC + ;; If true, chapters will be enumerated. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %label-preface-sections% + ;; REFENTRY label-preface-sections + ;; PURP Are sections in the Preface enumerated? + ;; DESC + ;; If true, unlabeled sections in the Preface will be enumerated + ;; if '%section-autolabel%' is true. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %qanda-inherit-numeration% + ;; REFENTRY qanda-inherit-numeration + ;; PURP Should numbered questions inherit the surrounding numeration? + ;; DESC + ;; If true, question numbers are prefixed with the surrounding + ;; component or section number. Has no effect unless + ;; '%section-autolabel%' is also true. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE Running Heads + +(define %chap-app-running-heads% + ;; REFENTRY chap-app-running-heads + ;; PURP Generate running headers and footers on chapter-level elements? + ;; DESC + ;; If true, running headers and footers are produced on chapter-level + ;; elements. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %chap-app-running-head-autolabel% + ;; REFENTRY chap-app-running-head-autolabel + ;; PURP Put chapter labels in running heads? + ;; DESC + ;; If true, running heads on 'Chapter's and + ;; 'Appendix'es will include an automatic label. + ;; + ;; In other words, if a 'Chapter' has no 'Label' attribute, + ;; and '%chap-app-running-head-autolabel%' + ;; is true, running heads will include the automatic label for the + ;; 'Chapter'. If '%chap-app-running-head-autolabel%' + ;; is false, only the 'Title' (or 'TitleAbbrev') + ;; will appear in the running head. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Paper/Page Characteristics + +(define %paper-type% + ;; REFENTRY paper-type + ;; PURP Name of paper type + ;; DESC + ;; The paper type value identifies the sort of paper in use, for example, + ;; 'A4' or 'USletter'. Setting the paper type is an + ;; easy shortcut for setting the correct paper height and width. + ;; + ;; See %page-width% and %page-height concerning what other page size + ;; are available. Some common examples are 'A4', 'USletter', + ;; 'A4landscape', 'USlandscape'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ;; "A4" + "USletter") + +(define %two-side% + ;; REFENTRY two-side + ;; PURP Is two-sided output being produced? + ;; DESC + ;; If '%two-side%' is true, headers and footers are alternated + ;; so that the "outer" and "inner" headers will be correctly + ;; placed in the bound document. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %writing-mode% + ;; REFENTRY writing-mode + ;; PURP The writing mode + ;; DESC + ;; The writing mode is either 'left-to-right', or + ;; 'right-to-left'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'left-to-right) + +(define %page-n-columns% + ;; REFENTRY page-n-columns + ;; PURP Sets the number of columns on each page + ;; DESC + ;; Sets the number of columns on each page + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 1) + +(define %titlepage-n-columns% + ;; REFENTRY titlepage-n-columns + ;; PURP Sets the number of columns on the title page + ;; DESC + ;; Sets the number of columns on the title page + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 1) + +(define %page-column-sep% + ;; REFENTRY page-column-sep + ;; PURP Sets the width of the gutter between columns + ;; DESC + ;; Sets the width of the gutter between columns + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.5in) + +(define %page-balance-columns?% + ;; REFENTRY page-balance-columns + ;; PURP Balance columns on pages? + ;; DESC + ;; If true, the columns on the final page of a multiple column layout + ;; will be balanced. Otherwise, the columns will be completely filled in the + ;; writing direction and the last column may be a different length + ;; than the preceding columns. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %left-margin% + ;; REFENTRY left-margin + ;; PURP Width of left margin + ;; DESC + ;; The '%left-margin%' parameter specifies the width of the left margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 6pi) + +(define %right-margin% + ;; REFENTRY right-margin + ;; PURP Width of the right margin + ;; DESC + ;; The '%right-margin%' parameter specifies the width of the right margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 6pi) + +(define %page-width% + ;; REFENTRY page-width + ;; PURP Specifies the page width + ;; DESC + ;; Identifies the width of the page (length in the writing direction). + ;; It is usually controlled by the '%paper-type%' parameter. + ;; /DESC + ;; /REFENTRY + (case %paper-type% + (("A4landscape") 297mm) + (("USletter") 8.5in) + (("USlandscape") 11in) + (("4A0") 1682mm) + (("2A0") 1189mm) + (("A0") 841mm) + (("A1") 594mm) + (("A2") 420mm) + (("A3") 297mm) + (("A4") 210mm) + (("A5") 148mm) + (("A6") 105mm) + (("A7") 74mm) + (("A8") 52mm) + (("A9") 37mm) + (("A10") 26mm) + (("B0") 1000mm) + (("B1") 707mm) + (("B2") 500mm) + (("B3") 353mm) + (("B4") 250mm) + (("B5") 176mm) + (("B6") 125mm) + (("B7") 88mm) + (("B8") 62mm) + (("B9") 44mm) + (("B10") 31mm) + (("C0") 917mm) + (("C1") 648mm) + (("C2") 458mm) + (("C3") 324mm) + (("C4") 229mm) + (("C5") 162mm) + (("C6") 114mm) + (("C7") 81mm) + (("C8") 57mm) + (("C9") 40mm) + (("C10") 28mm))) + +(define %page-height% + ;; REFENTRY page-height + ;; PURP Specifies the page height + ;; DESC + ;; Identifies the height of the page (length perpendicular to the + ;; writing direction). + ;; It is usually controlled by the '%paper-type%' parameter. + ;; /DESC + ;; /REFENTRY + (case %paper-type% + (("A4landscape") 210mm) + (("USletter") 11in) + (("USlandscape") 8.5in) + (("4A0") 2378mm) + (("2A0") 1682mm) + (("A0") 1189mm) + (("A1") 841mm) + (("A2") 594mm) + (("A3") 420mm) + (("A4") 297mm) + (("A5") 210mm) + (("A6") 148mm) + (("A7") 105mm) + (("A8") 74mm) + (("A9") 52mm) + (("A10") 37mm) + (("B0") 1414mm) + (("B1") 1000mm) + (("B2") 707mm) + (("B3") 500mm) + (("B4") 353mm) + (("B5") 250mm) + (("B6") 176mm) + (("B7") 125mm) + (("B8") 88mm) + (("B9") 62mm) + (("B10") 44mm) + (("C0") 1297mm) + (("C1") 917mm) + (("C2") 648mm) + (("C3") 458mm) + (("C4") 324mm) + (("C5") 229mm) + (("C6") 162mm) + (("C7") 114mm) + (("C8") 81mm) + (("C9") 57mm) + (("C10") 40mm))) + +(define %text-width% + ;; REFENTRY text-width + ;; PURP Specifies the width of the body column + ;; DESC + ;; Identifies the width of the page on which text may occur. + ;; /DESC + ;; /REFENTRY + (- %page-width% (+ %left-margin% %right-margin%))) + +(define %epigraph-start-indent% + ;; REFENTRY epigraph-start-indent + ;; PURP Specifies the left indent of epigraphs. + ;; DESC + ;; The indent of a epigraph. Default 55% of the text width. + ;; /DESC + ;; /REFENTRY + (* %text-width% 0.55)) + +(define %epigraph-end-indent% + ;; REFENTRY epigraph-end-indent + ;; PURP Specified the right indent of epigraphs. + ;; DESC + ;; The right indent of a epigraph. Default none. + ;; /DESC + ;; /REFENTRY + 0pt) + +(define %body-width% + ;; REFENTRY body-width + ;; PURP Specifies the width of the text in the body column + ;; DESC + ;; Identifies the width of the page on which text will occur, after + ;; the '%body-start-indent%' is removed. + ;; /DESC + ;; /REFENTRY + (- %text-width% %body-start-indent%)) + +(define %top-margin% + ;; REFENTRY top-margin + ;; PURP Height of top margin + ;; DESC + ;; The '%top-margin%' parameter specifies the height of the + ;; top margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; /REFENTRY + (if (equal? %visual-acuity% "large-type") + 7.5pi + 6pi)) + +(define %bottom-margin% + ;; REFENTRY bottom-margin + ;; PURP Height of bottom margin + ;; DESC + ;; The '%bottom-margin%' parameter specifies the + ;; height of the bottom margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; /REFENTRY + (if (equal? %visual-acuity% "large-type") + 9.5pi + 8pi)) + +(define %header-margin% + ;; REFENTRY header-margin + ;; PURP Height of header margin + ;; DESC + ;; The '%header-margin%' parameter specifies the heigth + ;; of the header margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; /REFENTRY + (if (equal? %visual-acuity% "large-type") + 5.5pi + 4pi)) + +(define %footer-margin% + ;; REFENTRY footer-margin + ;; PURP Height of footer margin + ;; DESC + ;; The '%footer-margin%' parameter specifies the height + ;; of the footer margin + ;; of the page. Note that this setting is relative to the physical page, + ;; not the writing direction. + ;; /DESC + ;; /REFENTRY + 4pi) + +(define %page-number-restart% + ;; REFENTRY page-number-restart + ;; PURP Restart page numbers in each component? + ;; DESC + ;; If true, page numbers are restarted at the beginning of each + ;; component-level + ;; element ('Chapter', 'Appendix', + ;; 'Bibliography', etc.). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %article-page-number-restart% + ;; REFENTRY article-page-number-restart + ;; PURP Restart page numbers in each article? + ;; DESC + ;; If true, page numbers are restarted at the beginning of each + ;; article. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %generate-heading-level% + ;; REFENTRY generate-heading-level + ;; PURP Output RTF heading level characteristics? + ;; DESC + ;; If true, component and section titles will have the heading-level + ;; characteristic in the RTF. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +;; REFERENCE Admonitions + +(define %admon-graphics% + ;; REFENTRY admon-graphics + ;; PURP Use graphics in admonitions? + ;; DESC + ;; If true, admonitions are presented in an alternate style that uses + ;; a graphic. Default graphics are provided in the distribution. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %admon-graphics-path% + ;; REFENTRY admon-graphics-path + ;; PURP Path to admonition graphics + ;; DESC + ;; Sets the path, probably relative to the directory where the HTML + ;; files are created, to the admonition graphics. Must include + ;; trailing directory separator. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "../images/") + + +;; just for back compat, set it false to say its not set +(define admon-graphic-default-extension #f) + +(define %admon-graphics-extension% + ;; REFENTRY admon-graphic-extension + ;; PURP Admonition graphic file extension + ;; DESC + ;; Identifies the extension for admonition graphics. This allows + ;; backends to select different images (e.g., EPS for print, PNG for + ;; PDF, etc.) + ;; + ;; The older parameter, admon-graphic-default-extension, will be + ;; used if it is set, for backwards compatability. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (if admon-graphic-default-extension + admon-graphic-default-extension + ".eps")) + +(define ($admon-graphic$ #!optional (nd (current-node))) + ;; REFENTRY admon-graphic + ;; PURP Admonition graphic file + ;; DESC + ;; Given an admonition node, returns the name of the graphic that should + ;; be used for that admonition. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (cond ((equal? (gi nd) (normalize "tip")) + (string-append %admon-graphics-path% + (string-append "tip" + %admon-graphics-extension%))) + ((equal? (gi nd) (normalize "note")) + (string-append %admon-graphics-path% + (string-append "note" + %admon-graphics-extension%))) + + ((equal? (gi nd) (normalize "important")) + (string-append %admon-graphics-path% + (string-append "important" + %admon-graphics-extension%))) + + ((equal? (gi nd) (normalize "caution")) + (string-append %admon-graphics-path% + (string-append "caution" + %admon-graphics-extension%))) + ((equal? (gi nd) (normalize "warning")) + (string-append %admon-graphics-path% + (string-append "warning" + %admon-graphics-extension%))) + (else (error (string-append (gi nd) " is not an admonition."))))) + +(define ($admon-graphic-width$ #!optional (nd (current-node))) + ;; REFENTRY admon-graphic-width + ;; PURP Admonition graphic file width + ;; DESC + ;; Given an admonition node, returns the width of the graphic that will + ;; be used for that admonition. + ;; + ;; All of the default graphics in the distribution are 0.3in wide. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.3in) + +;; REFERENCE Quadding + +(define %default-quadding% + ;; REFENTRY default-quadding + ;; PURP The default quadding + ;; DESC + ;; The default quadding ('start', 'center', 'justify', + ;; or 'end'). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'start) + +(define %division-title-quadding% + ;; REFENTRY division-title-quadding + ;; PURP Division title quadding + ;; DESC + ;; The quadding of division-level titles ('Set', 'Book', and 'Part'). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'center) + +(define %division-subtitle-quadding% + ;; REFENTRY division-subtitle-quadding + ;; PURP Division subtitle quadding + ;; DESC + ;; The quadding of division-level subtitles ('Set', 'Book', and 'Part'). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'center) + +(define %component-title-quadding% + ;; REFENTRY component-title-quadding + ;; PURP Component title quadding + ;; DESC + ;; The quadding of component-level titles ('Chapter', + ;; 'Appendix', 'Glossary', etc.). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'start) + +(define %component-subtitle-quadding% + ;; REFENTRY component-subtitle-quadding + ;; PURP Component subtitle quadding + ;; DESC + ;; The quadding of component-level subtitles ('Chapter', + ;; 'Appendix', 'Glossary', etc.). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'start) + +(define %article-title-quadding% + ;; REFENTRY article-title-quadding + ;; PURP Article title quadding + ;; DESC + ;; The quadding of article titles. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'center) + +(define %article-subtitle-quadding% + ;; REFENTRY article-subtitle-quadding + ;; PURP Article subtitle quadding + ;; DESC + ;; The quadding of article subtitles. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'center) + +(define %section-title-quadding% + ;; REFENTRY section-title-quadding + ;; PURP Section title quadding + ;; DESC + ;; The quadding of section-level titles. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'start) + +(define %section-subtitle-quadding% + ;; REFENTRY section-subtitle-quadding + ;; PURP Section subtitle quadding + ;; DESC + ;; The quadding of section-level subtitles. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 'start) + +;; REFERENCE Bibliographies + +(define biblio-citation-check + ;; REFENTRY biblio-citation-check + ;; PURP Check citations + ;; DESC + ;; If true, the content of CITATIONs will be checked against possible + ;; biblioentries. If the citation cannot be found, an error is issued + ;; and the citation is generated. If the citation is found, it is generated + ;; with a cross reference to the appropriate biblioentry. + ;; + ;; A citation matches if the content of the citation element matches the + ;; ID, XREFLABEL, or leading ABBREV of a biblioentry. + ;; + ;; This setting may have significant performance implications on large + ;; documents, hence it is false by default. + ;; + ;; (This option can conveniently be set with '-V biblio-citation-check' + ;; on the Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-filter-used + ;; REFENTRY filter-used + ;; PURP Suppress unreferenced bibliography entries + ;; DESC + ;; If true, bibliography entries which are not cited are suppressed. + ;; A biblioentry is cited if an XREF or LINK matches its ID, or if + ;; a CITE element matches its + ;; ID, XREFLABEL, or leading ABBREV. + ;; + ;; A BIBLIOGRAPHY with no entries will still be output (making a whole + ;; component conditional would be _A LOT_ of work and seems unnecessary), + ;; but BIBLIDIVs with no entries will be suppressed. + ;; + ;; This setting may have significant performance implications, + ;; hence it is false by default. + ;; + ;; (This option can conveniently be set with '-V biblio-filter-used' on the + ;; Jade command line). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-number + ;; REFENTRY biblio-number + ;; PURP Enumerate bibliography entries + ;; DESC + ;; If true, bibliography entries will be numbered. If you cross-reference + ;; bibliography entries, you should probably use biblio-number or + ;; consistently use XREFLABEL or ABBREV. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define biblio-xref-title + ;; REFENTRY biblio-xref-title + ;; PURP Use the titles of bibliography entries in XREFs + ;; DESC + ;; If true, cross references to bibliography entries will use the + ;; title of the entry as the cross reference text. Otherwise, either + ;; the number (see 'biblio-number') or XREFLABEL/ABBREV will be used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE OLinks + +(define %olink-outline-ext% + ;; REFENTRY olink-outline-ext + ;; PURP Extension for olink outline file + ;; DESC + ;; The extension used to find the outline information file. When searching + ;; for outline information about a document, the extension is discarded + ;; from the system ID of the file and '%olinke-outline-ext%' is appended. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".olink") + +;; REFERENCE Footnotes + +(define %footnote-ulinks% + ;; REFENTRY footnote-ulinks + ;; PURP Generate footnotes for ULinks? + ;; DESC + ;; If true, the URL of each ULink will appear as a footnote. + ;; Processing ULinks this way may be very, very slow. It requires + ;; walking over every descendant of every component in order to count + ;; both ulinks and footnotes. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define bop-footnotes + ;; REFENTRY bop-footnotes + ;; PURP Make "bottom-of-page" footnotes? + ;; DESC + ;; If true, footnotes will be done at the bottom of the page instead + ;; of collected together as notes at the end of the section. + ;; This variable is ignored if the print backend does not support + ;; bottom-of-the-page footnotes. At present, only the TeX backend + ;; supports them. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE Graphics + +(define %graphic-default-extension% + ;; REFENTRY graphic-default-extension + ;; PURP Default extension for graphic FILEREFs + ;; DESC + ;; The '%graphic-default-extension%' will be + ;; added to the end of all 'fileref' filenames on + ;; 'Graphic's if they do not end in one of the + ;; '%graphic-extensions%'. Set this to '#f' + ;; to turn off this feature. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %graphic-extensions% + ;; REFENTRY graphic-extensions + ;; PURP List of graphic filename extensions + ;; DESC + ;; The list of extensions which may appear on a 'fileref' + ;; on a 'Graphic' which are indicative of graphic formats. + ;; + ;; Filenames that end in one of these extensions will not have + ;; the '%graphic-default-extension%' added to them. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '("eps" "epsf" "gif" "tif" "tiff" "jpg" "jpeg" "png" "pdf")) + +(define image-library + ;; REFENTRY image-library + ;; PURP Load image library database for additional info about images? + ;; DESC + ;; If true, an image library database is loaded and extra information + ;; about web graphics is retrieved from it. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define image-library-filename + ;; REFENTRY image-library-filename + ;; PURP Name of the image library database + ;; DESC + ;; If 'image-library' is true, then the database is loaded from + ;; 'image-library-filename'. It's a current limitation that only a + ;; single database can be loaded. + ;; + ;; The image library database is stored in a separate directory + ;; because it must be parsed with the XML declaration. The only + ;; practical way to accomplish this with Jade, if you are processing a + ;; document that uses another declaration, is by having a catalog + ;; file in the directory that contains the image library that + ;; specifies the SGMLDECL. (So if it was in the same directory + ;; as your document, your document would also be parsed with the + ;; XML declaration, which may not be correct.) + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + "imagelib/imagelib.xml") + +;; REFERENCE Tables + +(define ($table-element-list$) + ;; REFENTRY table-element-list + ;; PURP List of table element names + ;; DESC + ;; The list of table elements in the DTD. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (list (normalize "table") (normalize "informaltable"))) + +(define %simplelist-column-width% + ;; REFENTRY simplelist-column-width + ;; PURP Width of columns in tabular simple lists + ;; DESC + ;; If set to '#f', the table will span the entire + ;; page width. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +;; REFERENCE VariableLists + +(define %default-variablelist-termlength% + ;; REFENTRY default-variablelist-termlength + ;; PURP Default term length on variablelists + ;; DESC + ;; When formatting a 'VariableList', this value is used as the + ;; default term length, if no 'TermLength' is specified. + ;; + ;; If all of the terms in a list shorter than the term length, + ;; the stylesheet may format them "side-by-side" in a table if + ;; 'may-format-variablelist-as-table' is '#t'. + ;; /DESC + ;; /REFENTRY + 20) + +(define %may-format-variablelist-as-table% + ;; REFENTRY may-format-variablelist-as-table + ;; PURP Format VariableLists as tables? + ;; DESC + ;; If '%may-format-variablelist-as-table%' is '#t', a + ;; 'VariableList' will be formatted as a table, if *all of* + ;; the terms are shorter than the specified 'TermLength'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %always-format-variablelist-as-table% + ;; REFENTRY always-format-variablelist-as-table + ;; PURP Always format VariableLists as tables? + ;; DESC + ;; When a 'VariableList' is formatted, if any of the + ;; terms in the list are too long, the whole list is formatted as a + ;; list. + ;; + ;; If '%always-format-variablelist-as-table%' is + ;; '#t', the 'VariableList' will be + ;; formatted as a table, even if some terms are too long. The terms that + ;; are too long will format span above their associated description. + ;; /DESC + ;; /REFENTRY + #f) + +;; REFERENCE Vertical Spacing + +(define %line-spacing-factor% + ;; REFENTRY line-spacing-factor + ;; PURP Factor used to calculate leading + ;; DESC + ;; The leading is calculated by multiplying the current font size by the + ;; '%line-spacing-factor%'. For example, if the font size is 10pt and + ;; the '%line-spacing-factor%' is 1.1, then the text will be + ;; printed "10-on-11". + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 1.3) + +(define %head-before-factor% + ;; REFENTRY head-before-factor + ;; PURP Factor used to calculate space above a title + ;; DESC + ;; The space before a title is calculated by multiplying the font size + ;; used in the title by the '%head-before-factor%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.75) + +(define %head-after-factor% + ;; REFENTRY head-after-factor + ;; PURP Factor used to calculate space below a title + ;; DESC + ;; The space after a title is calculated by multiplying the font size used + ;; in the title by the '%head-after-factor%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0.5) + +(define %body-start-indent% + ;; REFENTRY body-start-indent + ;; PURP Default indent of body text + ;; DESC + ;; The default indent of body text. Some elements may have more or less + ;; indentation. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 4pi) + +(define %blockquote-start-indent% + ;; PURP Default indent of blockquoted text + ;; DESC + ;; The default start (usually left) indent of blockquoted text. + ;; /DESC + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + 1em) + +(define %blockquote-end-indent% + ;; PURP Default indent of blockquoted text + ;; DESC + ;; The default end (usually right) indent of blockquoted text. + ;; /DESC + ;; AUTHOR Ola Lundqvist + ;; /REFENTRY + 1em) + +(define %para-sep% + ;; REFENTRY para-sep + ;; PURP Distance between paragraphs + ;; DESC + ;; The '%para-sep%' is the distance between the last line + ;; of one paragraph and the first line of the next. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (/ %bf-size% 2.0)) + +(define %block-sep% + ;; REFENTRY block-sep + ;; PURP Distance between block-elements + ;; DESC + ;; The '%block-sep%' is the vertical distance between + ;; block elements (figures, tables, etc.) + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + (* %para-sep% 2.0)) + +;; REFERENCE Indents + +(define %para-indent% + ;; REFENTRY para-indent + ;; PURP First line start-indent for paragraphs (other than the first) + ;; DESC + ;; The '%para-indent%' is the amount of extra indentation that the + ;; first line of a paragraph should receive. This parameter applies + ;; only to the second and subsequent paragraphs in a section. See + ;; '%para-indent-firstpara%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0pt) + +(define %para-indent-firstpara% + ;; REFENTRY para-indent-firstpara + ;; PURP First line start-indent for the first paragraph + ;; DESC + ;; The '%para-indent-firstpara%' is the amount of extra indentation + ;; that the first line of the first paragraph of a section should receive. + ;; This parameter is frequently '0pt' even when '%para-indent%' is + ;; not. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0pt) + +(define %block-start-indent% + ;; REFENTRY block-start-indent + ;; PURP Extra start-indent for block-elements + ;; DESC + ;; Block elements (tables, figures, verbatim environments, etc.) will + ;; be indented by the specified amount. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 0pt) + +;; REFERENCE Object Rules + +(define %example-rules% + ;; REFENTRY example-rules + ;; PURP Specify rules before and after an Example + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Example'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %figure-rules% + ;; REFENTRY figure-rules + ;; PURP Specify rules before and after an Figure + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Figure'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %table-rules% + ;; REFENTRY table-rules + ;; PURP Specify rules before and after an Table + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Table'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %equation-rules% + ;; REFENTRY equation-rules + ;; PURP Specify rules before and after an Equation + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'Equation'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalexample-rules% + ;; REFENTRY informalexample-rules + ;; PURP Specify rules before and after an InformalExample + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalExample'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalfigure-rules% + ;; REFENTRY informalfigure-rules + ;; PURP Specify rules before and after an InformalFigure + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalFigure'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informaltable-rules% + ;; REFENTRY informaltable-rules + ;; PURP Specify rules before and after an InformalTable + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalTable'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %informalequation-rules% + ;; REFENTRY informalequation-rules + ;; PURP Specify rules before and after an InformalEquation + ;; DESC + ;; If '#t', rules will be drawn before and after each + ;; 'InformalEquation'. + ;; /DESC + ;; /REFENTRY + #f) + +(define %object-rule-thickness% + ;; REFENTRY object-rule-thickness + ;; PURP Width of rules around formal and informal objects + ;; DESC + ;; Specifies the width of the rules drawn before and after an object. + ;; This only applies if the appropriate + ;; '%*-rules%' variable + ;; is '#t'. + ;; /DESC + ;; /REFENTRY + 2pt) + +;; REFERENCE Miscellaneous + +(define ($object-titles-after$) + ;; REFENTRY object-titles-after + ;; PURP List of objects who's titles go after the object + ;; DESC + ;; Titles of formal objects (Figures, Equations, Tables, etc.) + ;; in this list will be placed below the object instead of above it. + ;; + ;; This is a list of element names, for example: + ;; '(list (normalize "figure") (normalize "table"))'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '()) + +(define formal-object-float + ;; REFENTRY formal-object-float + ;; PURP Do formal objects float? + ;; DESC + ;; If '#t', formal objects will float if floating is supported by the + ;; backend. At present, only the TeX backend supports floats. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %default-title-end-punct% + ;; REFENTRY default-title-end-punct + ;; PURP Default punctuation at the end of a run-in head. + ;; DESC + ;; The punctuation used at the end of a run-in head (e.g. on FORMALPARA). + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".") + +(define %content-title-end-punct% + ;; REFENTRY content-title-end-punct + ;; PURP List of punctuation chars at the end of a run-in head + ;; DESC + ;; If a run-in head ends in any of these characters, the + ;; '%default-title-end-punct%' is not used. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + '(#\. #\! #\? #\:)) + +(define %honorific-punctuation% + ;; REFENTRY honorific-punctuation + ;; PURP Punctuation to follow honorifics in names + ;; DESC + ;; The honorific punctuation is placed after the honorific in + ;; a name. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + ".") + +(define %default-simplesect-level% + ;; REFENTRY default-simplesect-level + ;; PURP Default section level for 'SimpleSect's. + ;; DESC + ;; If 'SimpleSect's appear inside other section-level + ;; elements, they are rendered at the appropriate section level, but if they + ;; appear in a component-level element, they are rendered at + ;; '%default-simplesect-level%'. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 4) + +(define %show-ulinks% + ;; REFENTRY show-ulinks + ;; PURP Display URLs after ULinks? + ;; DESC + ;; If true, the URL of each ULink will appear in parenthesis after + ;; the text of the link. If the text of the link and the URL are + ;; identical, the parenthetical URL is suppressed. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define %show-comments% + ;; REFENTRY show-comments + ;; PURP Display Comment elements? + ;; DESC + ;; If true, comments will be displayed, otherwise they are suppressed. + ;; Comments here refers to the 'Comment' element, which will be renamed + ;; 'Remark' in DocBook V4.0, not SGML/XML comments which are unavailable. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #t) + +(define firstterm-bold + ;; REFENTRY firstterm-bold + ;; PURP Make FIRSTTERM elements bold? + ;; DESC + ;; If '#t', FIRSTTERMs will be bold, to distinguish them from + ;; simple GLOSSTERMs. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + #f) + +(define %min-leading% + ;; REFENTRY min-leading + ;; PURP Minumum leading between lines + ;; DESC + ;; The '%min-leading%' parameter specifies the smallest amount of leading + ;; to allow between lines. The default value, '#f', has the side-effect + ;; that leading cannot change. This means that graphics that appear in + ;; a paragraph are truncated if they are taller than the current leading. + ;; By setting this parameter to some small value, we get stretchable + ;; space between lines. + ;; /DESC + ;; AUTHOR N/A + ;; /REFENTRY + 2pt) + +(define %hyphenation% + ;; REFENTRY hyphenation + ;; PURP Allow automatic hyphenation? + ;; DESC + ;; The '%hyphenation%' parameter indicates whether or + ;; not the backend should allow automatic hyphention of text, for example + ;; in paragraphs. The default value, '#f', indicates that + ;; it should not. + ;; /DESC + ;; /REFENTRY + #f) + +(declare-initial-value writing-mode %writing-mode%) + +(declare-initial-value input-whitespace-treatment 'collapse) + +(declare-initial-value left-margin %left-margin%) +(declare-initial-value right-margin %right-margin%) + +(declare-initial-value page-width %page-width%) +(declare-initial-value page-height %page-height%) + +(declare-initial-value min-leading %min-leading%) +(declare-initial-value top-margin %top-margin%) +(declare-initial-value bottom-margin %bottom-margin%) +(declare-initial-value header-margin %header-margin%) +(declare-initial-value footer-margin %footer-margin%) + +</style-specification-body> +</style-specification> +</style-sheet> diff --git a/print/dbprint.dsl b/print/dbprint.dsl new file mode 100644 index 0000000..01005d4 --- /dev/null +++ b/print/dbprint.dsl @@ -0,0 +1,205 @@ +;; $Id: dbprint.dsl,v 1.6 2004/10/09 19:46:33 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define (HSIZE n) + (let ((m (if (< n 0) 0 n))) + (* %bf-size% + (expt %hsize-bump-factor% m)))) + +(define (print-backend) + (cond + (tex-backend 'tex) + (mif-backend 'mif) + (rtf-backend 'rtf) + (else default-backend))) + +;; ====================== COMMON STYLE TEMPLATES ======================= + +(define ($block-container$) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: %body-start-indent% + (process-children))) + +(define (is-first-para #!optional (para (current-node))) + ;; A paragraph is the first paragraph if it is preceded by a title + ;; (or bridgehead) and the only elements that intervene between the + ;; title and the paragraph are *info elements, indexterms, and beginpage. + ;; + (let loop ((nd (ipreced para))) + (if (node-list-empty? nd) + ;; We've run out of nodes. We still might be the first paragraph + ;; preceded by a title if the parent element has an implied + ;; title. + (if (equal? (element-title-string (parent para)) "") + #f ;; nope + #t) ;; yep + (if (or (equal? (gi nd) (normalize "title")) + (equal? (gi nd) (normalize "titleabbrev")) + (equal? (gi nd) (normalize "bridgehead"))) + #t + (if (or (not (equal? (node-property 'class-name nd) 'element)) + (member (gi nd) (info-element-list))) + (loop (ipreced nd)) + #f))))) + +(define (dsssl-language-code #!optional (node (current-node))) + (let* ((lang ($lang$)) + (langcode (if (> (string-index lang "_") 0) + (substring lang 0 (string-index lang "_")) + lang))) + (string->symbol (case-fold-up langcode)))) + +(define (dsssl-country-code #!optional (node (current-node))) + (let* ((lang ($lang$)) + (ctrycode (if (> (string-index lang "_") 0) + (substring lang + (+ (string-index lang "_") 1) + (string-length lang)) + #f))) + (if ctrycode + (string->symbol (case-fold-up ctrycode)) + #f))) + +(define ($paragraph$) + (if (or (equal? (print-backend) 'tex) + (equal? (print-backend) #f)) + ;; avoid using country: characteristic because of a JadeTeX bug... + (make paragraph + first-line-start-indent: (if (is-first-para) + %para-indent-firstpara% + %para-indent%) + space-before: %para-sep% + space-after: (if (INLIST?) + 0pt + %para-sep%) + quadding: %default-quadding% + hyphenate?: %hyphenation% + language: (dsssl-language-code) + (process-children-trim)) + (make paragraph + first-line-start-indent: (if (is-first-para) + %para-indent-firstpara% + %para-indent%) + space-before: %para-sep% + space-after: (if (INLIST?) + 0pt + %para-sep%) + quadding: %default-quadding% + hyphenate?: %hyphenation% + language: (dsssl-language-code) + country: (dsssl-country-code) + (process-children-trim)))) + +(define ($para-container$) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (if (member (current-node) (outer-parent-list)) + %body-start-indent% + (inherited-start-indent)) + (process-children-trim))) + +(define ($indent-para-container$) + (make paragraph + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) (* (ILSTEP) 2)) + quadding: %default-quadding% + (process-children-trim))) + +(define nop-style + ;; a nop for use: + (style + font-family-name: (inherited-font-family-name) + font-weight: (inherited-font-weight) + font-size: (inherited-font-size))) + +(define default-text-style + (style + font-size: %bf-size% + font-weight: 'medium + font-posture: 'upright + font-family-name: %body-font-family% + line-spacing: (* %bf-size% %line-spacing-factor%))) + +(define ($bold-seq$ #!optional (sosofo (process-children))) + (make sequence + font-weight: 'bold + sosofo)) + +(define ($italic-seq$ #!optional (sosofo (process-children))) + (make sequence + font-posture: 'italic + sosofo)) + +(define ($bold-italic-seq$ #!optional (sosofo (process-children))) + (make sequence + font-weight: 'bold + font-posture: 'italic + sosofo)) + +(define ($mono-seq$ #!optional (sosofo (process-children))) + (let ((%factor% (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0))) + (make sequence + font-family-name: %mono-font-family% + font-size: (* (inherited-font-size) %factor%) + sosofo))) + +(define ($italic-mono-seq$ #!optional (sosofo (process-children))) + (let ((%factor% (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0))) + (make sequence + font-family-name: %mono-font-family% + font-size: (* (inherited-font-size) %factor%) + font-posture: 'italic + sosofo))) + +(define ($bold-mono-seq$ #!optional (sosofo (process-children))) + (let ((%factor% (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0))) + (make sequence + font-family-name: %mono-font-family% + font-size: (* (inherited-font-size) %factor%) + font-weight: 'bold + sosofo))) + +(define ($score-seq$ stype #!optional (sosofo (process-children))) + (make score + type: stype + sosofo)) + +(define ($charseq$ #!optional (sosofo (process-children))) + (make sequence + sosofo)) + +(define ($guilabel-seq$ #!optional (sosofo (process-children))) + (make sequence + font-family-name: %guilabel-font-family% + sosofo)) + +;; Stolen from a posting by James on dssslist +(define *small-caps* + (letrec ((signature (* #o375 256)) + (make-afii + (lambda (n) + (glyph-id (string-append "ISO/IEC 10036/RA//Glyphs::" + (number->string n))))) + (gen + (lambda (from count) + (if (= count 0) + '() + (cons (cons (make-afii from) + (make-afii (+ from signature))) + (gen (+ 1 from) + (- count 1))))))) + (glyph-subst-table (gen #o141 26)))) + diff --git a/print/dbprocdr.dsl b/print/dbprocdr.dsl new file mode 100644 index 0000000..2627699 --- /dev/null +++ b/print/dbprocdr.dsl @@ -0,0 +1,38 @@ +;; $Id: dbprocdr.dsl,v 1.2 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================= PROCEDURES ============================= + +(define (PROCSTEP ilvl) + (if (> ilvl 1) 2.0em 1.8em)) + +(element procedure + (if (node-list-empty? (select-elements (children (current-node)) (normalize "title"))) + ($informal-object$) + ($formal-object$))) + +(element (procedure title) (empty-sosofo)) + +(element substeps + (make display-group + space-before: %para-sep% + space-after: %para-sep% + start-indent: (+ (inherited-start-indent) (PROCSTEP 2)))) + +(element step + (let ((stepcontent (children (current-node))) + (ilevel (length (hierarchical-number-recursive (normalize "step"))))) + (make sequence + start-indent: (+ (inherited-start-indent) (PROCSTEP ilevel)) + + (make paragraph + space-before: %para-sep% + first-line-start-indent: (- (PROCSTEP ilevel)) + (make line-field + field-width: (PROCSTEP ilevel) + (literal ($proc-step-number$ (current-node)))) + (process-node-list (children (node-list-first stepcontent)))) + (process-node-list (node-list-rest stepcontent))))) diff --git a/print/dbqanda.dsl b/print/dbqanda.dsl new file mode 100644 index 0000000..4ea9aef --- /dev/null +++ b/print/dbqanda.dsl @@ -0,0 +1,126 @@ +;; $Id: dbqanda.dsl,v 1.1 2003/03/25 19:53:56 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== QANDASET ============================== + +(define (qanda-defaultlabel) + (normalize "number")) + +(element qandaset + (let ((title (select-elements (children (current-node)) + (normalize "title")))) + (make display-group + (process-node-list title) + (process-qanda)))) + +(element (qandaset title) + (let* ((enclsect (ancestor-member (current-node) + (list (normalize "section") + (normalize "simplesect") + (normalize "sect5") + (normalize "sect4") + (normalize "sect3") + (normalize "sect2") + (normalize "sect1") + (normalize "refsect3") + (normalize "refsect2") + (normalize "refsect1")))) + (sectlvl (SECTLEVEL enclsect)) + (hs (HSIZE (- 4 (+ sectlvl 1))))) + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< sectlvl 5) 'bold 'medium) + font-posture: (if (< sectlvl 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: %body-start-indent% + first-line-start-indent: 0pt + quadding: %section-title-quadding% + keep-with-next?: #t + (process-children)))) + +(element qandadiv + (let ((title (select-elements (children (current-node)) + (normalize "title")))) + (make sequence + (process-node-list title) + (make display-group + start-indent: (+ (inherited-start-indent) 2pi) + (process-qanda))))) + +(element (qandadiv title) + (let* ((hnr (hierarchical-number-recursive (normalize "qandadiv") + (current-node))) + (number (let loop ((numlist hnr) (number "") (sep "")) + (if (null? numlist) + number + (loop (cdr numlist) + (string-append number + sep + (number->string (car numlist))) + "."))))) + (make paragraph + font-weight: 'bold + space-after: %block-sep% + (literal number ". ") + (process-children)))) + +(define (process-qanda #!optional (node (current-node))) + (let* ((preamble (node-list-filter-by-not-gi + (children node) + (list (normalize "title") + (normalize "qandadiv") + (normalize "qandaentry")))) + (divs (node-list-filter-by-gi (children node) + (list (normalize "qandadiv")))) + (entries (node-list-filter-by-gi (children node) + (list (normalize "qandaentry")))) + (inhlabel (inherited-attribute-string (normalize "defaultlabel"))) + (deflabel (if inhlabel inhlabel (qanda-defaultlabel)))) + (make sequence + (process-node-list preamble) + (process-node-list divs) + (process-node-list entries)))) + +(element qandaentry + (process-children)) + +(element question + (let* ((chlist (children (current-node))) + (firstch (node-list-first chlist)) + (restch (node-list-rest chlist)) + (label (question-answer-label (current-node)))) + (make sequence + (make paragraph + space-after: (/ %para-sep% 2) + keep-with-next?: #t + (make sequence + (make sequence + font-weight: 'bold + (if (string=? label "") + (empty-sosofo) + (literal label " "))) + (process-node-list (children firstch))) + (process-node-list restch))))) + +(element answer + (let* ((chlist (children (current-node))) + (firstch (node-list-first chlist)) + (restch (node-list-rest chlist)) + (label (question-answer-label (current-node)))) + (make display-group + space-after: %block-sep% + (make paragraph + (make sequence + (make sequence + font-weight: 'bold + (if (string=? label "") + (empty-sosofo) + (literal label " "))) + (process-node-list (children firstch)))) + (process-node-list restch)))) diff --git a/print/dbrfntry.dsl b/print/dbrfntry.dsl new file mode 100644 index 0000000..39833ab --- /dev/null +++ b/print/dbrfntry.dsl @@ -0,0 +1,215 @@ +;; $Id: dbrfntry.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; =========================== REFERENCE PAGES ========================== + +;;(element reference ($component$)) + +(element reference + (let* ((refinfo (select-elements (children (current-node)) + (normalize "docinfo"))) + (refintro (select-elements (children (current-node)) + (normalize "partintro"))) + (nl (titlepage-info-elements + (current-node) + refinfo + (if %generate-partintro-on-titlepage% + refintro + (empty-node-list))))) + (make sequence + (if %generate-reference-titlepage% + (make sequence + (reference-titlepage nl 'recto) + (reference-titlepage nl 'verso)) + (empty-sosofo)) + + (if (not (generate-toc-in-front)) + (process-children) + (empty-sosofo)) + + (if (and %generate-reference-toc% + (not %generate-reference-toc-on-titlepage%)) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: #t + page-number-format: ($page-number-format$ (normalize "toc")) + use: default-text-style + left-header: ($left-header$ (normalize "toc")) + center-header: ($center-header$ (normalize "toc")) + right-header: ($right-header$ (normalize "toc")) + left-footer: ($left-footer$ (normalize "toc")) + center-footer: ($center-footer$ (normalize "toc")) + right-footer: ($right-footer$ (normalize "toc")) + input-whitespace-treatment: 'collapse + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + (if (and (not (node-list-empty? refintro)) + (not %generate-partintro-on-titlepage%)) + ($process-partintro$ refintro #t) + (empty-sosofo)) + + (if (generate-toc-in-front) + (if %refentry-new-page% + (process-children) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + (process-children))) + (empty-sosofo))))) + +;; If each RefEntry begins on a new page, this title is going to wind +;; up on its own page, too, so make it a divtitlepage instead. Otherwise, +;; just let it be a component title. +(element (reference title) (empty-sosofo)) +;; (if %refentry-new-page% +;; ($divtitlepage$) +;; (empty-sosofo))) + +(element refentry + (make display-group + keep: %refentry-keep% + (if (or %refentry-new-page% + (node-list=? (current-node) (sgml-root-element))) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + ($refentry-title$) + (process-children)) + (make sequence + ($refentry-title$) + ($block-container$))) + (make-endnotes))) + +(define ($refentry-title$) + (let* ((refmeta (select-elements (children (current-node)) + (normalize "refmeta"))) + (refentrytitle (select-elements (children refmeta) + (normalize "refentrytitle"))) + (refnamediv (select-elements (children (current-node)) + (normalize "refnamediv"))) + (refdescriptor (select-elements (children refnamediv) + (normalize "refdescriptor"))) + (refname (select-elements (children refnamediv) + (normalize "refname"))) + (title (if (node-list-empty? refentrytitle) + (if (node-list-empty? refdescriptor) + (node-list-first refname) + refdescriptor) + refentrytitle)) + (slevel (SECTLEVEL)) ;; the true level in the section hierarchy + (hlevel (if (> slevel 2) 2 slevel)) ;; limit to sect2 equiv. + (hs (HSIZE (- 4 hlevel)))) + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: %body-start-indent% + first-line-start-indent: (- %body-start-indent%) + quadding: 'start + heading-level: (if %generate-heading-level% 2 0) + keep-with-next?: #t + (process-node-list (children title))))) +;; nwalsh, this is wrong, 29 July 1999 +; (if %refentry-function% +; (sosofo-append +; (literal "\no-break-space;") +; (process-first-descendant (normalize "manvolnum"))) +; (empty-sosofo))))) + +(element refmeta (empty-sosofo)) ;; handled by $refentry-title$ + +(element manvolnum + (if %refentry-xref-manvolnum% + (sosofo-append + (literal "(") + (process-children) + (literal ")")) + (empty-sosofo))) + +(element refmiscinfo (empty-sosofo)) + +(element refentrytitle ($charseq$)) + +(element refnamediv + (make paragraph + space-before: %para-sep% + start-indent: %body-start-indent% + quadding: 'start + (process-children))) + +(element refname + (make sequence + (if (and %refentry-generate-name% (first-sibling? (current-node))) + ($lowtitlewithsosofo$ 1 3 (literal (gentext-element-name + (current-node)))) + (empty-sosofo)) + (make sequence + font-weight: 'medium + font-family-name: %refentry-name-font-family% + (process-children) + (if (last-sibling? (current-node)) + (empty-sosofo) + (literal (gentext-intra-label-sep (gi (current-node)))))))) + +(element refpurpose + (make sequence + font-family-name: %body-font-family% + (make sequence + (literal " \em-dash ") + (process-children)) + (make paragraph-break))) + +(element refdescriptor (empty-sosofo)) + +(element refclass + (let ((role (attribute-string "role"))) + (make paragraph + space-before: %para-sep% + start-indent: %body-start-indent% + quadding: 'start + (make sequence + font-weight: 'bold + (literal + (if role + (string-append role ": ") + ""))) + (process-children-trim)))) + +(element refsynopsisdiv ($section$)) + +(element (refsynopsisdiv title) (empty-sosofo)) + +(element refsect1 ($section$)) +(element (refsect1 title) (empty-sosofo)) +(element refsect2 ($section$)) +(element (refsect2 title) (empty-sosofo)) +(element refsect3 ($section$)) +(element (refsect3 title) (empty-sosofo)) + + diff --git a/print/dbsect.dsl b/print/dbsect.dsl new file mode 100644 index 0000000..39b1f6a --- /dev/null +++ b/print/dbsect.dsl @@ -0,0 +1,208 @@ +;; $Id: dbsect.dsl,v 1.6 2003/03/25 19:53:57 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ============================== SECTIONS ============================== + +(define (SECTLEVEL #!optional (sect (current-node))) + (section-level-by-node #f sect)) + +;; BRIDGEHEAD isn't a proper section, but appears to be a section title +(element bridgehead + (let* ((renderas (attribute-string "renderas")) + ;; the apparent section level + (hlevel + ;; if not real section level, then get the apparent level + ;; from "renderas" + (if renderas + (section-level-by-gi #f (normalize renderas)) + ;; else use the real level + (SECTLEVEL))) + (hs (HSIZE (- 5 hlevel)))) + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< hlevel 5) 'bold 'medium) + font-posture: (if (< hlevel 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: (if (< hlevel 3) + 0pt + %body-start-indent%) + first-line-start-indent: 0pt + quadding: %section-title-quadding% + keep-with-next?: #t + (process-children)))) + +(define ($section$) + (if (node-list=? (current-node) (sgml-root-element)) + (make simple-page-sequence + page-n-columns: %page-n-columns% + page-number-restart?: (or %page-number-restart% + (book-start?) + (first-chapter?)) + page-number-format: ($page-number-format$) + use: default-text-style + left-header: ($left-header$) + center-header: ($center-header$) + right-header: ($right-header$) + left-footer: ($left-footer$) + center-footer: ($center-footer$) + right-footer: ($right-footer$) + start-indent: %body-start-indent% + input-whitespace-treatment: 'collapse + quadding: %default-quadding% + (make sequence + ($section-title$) + (process-children))) + (make display-group + space-before: %block-sep% + space-after: %block-sep% + start-indent: %body-start-indent% + (make sequence + ($section-title$) + (process-children))))) + +(define ($section-title$) + (let* ((sect (current-node)) + (info (info-element)) + (exp-children (if (node-list-empty? info) + (empty-node-list) + (expand-children (children info) + (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))))) + (parent-titles (select-elements (children sect) (normalize "title"))) + (info-titles (select-elements exp-children (normalize "title"))) + (titles (if (node-list-empty? parent-titles) + info-titles + parent-titles)) + (subtitles (select-elements exp-children (normalize "subtitle"))) + (renderas (inherited-attribute-string (normalize "renderas") sect)) + ;; the apparent section level + (hlevel + ;; if not real section level, then get the apparent level + ;; from "renderas" + (if renderas + (section-level-by-gi #f (normalize renderas)) + ;; else use the real level + (SECTLEVEL))) + (hs (HSIZE (- 5 hlevel)))) + (make sequence + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< hlevel 5) 'bold 'medium) + font-posture: (if (< hlevel 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (if (node-list-empty? subtitles) + (* hs %head-after-factor%) + 0pt) + start-indent: (if (or (>= hlevel 3) + (member (gi) (list (normalize "refsynopsisdiv") + (normalize "refsect1") + (normalize "refsect2") + (normalize "refsect3")))) + %body-start-indent% + 0pt) + first-line-start-indent: 0pt + quadding: %section-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% hlevel 0) + ;; SimpleSects are never AUTO numbered...they aren't hierarchical + (if (string=? (element-label (current-node)) "") + (empty-sosofo) + (literal (element-label (current-node)) + (gentext-label-title-sep (gi sect)))) + (element-title-sosofo (current-node))) + (with-mode section-title-mode + (process-node-list subtitles)) + ($proc-section-info$ info)))) + +(mode section-title-mode + (element subtitle + (let* ((sect (parent (parent (current-node)))) ;; parent=>sect*info + (renderas (inherited-attribute-string "renderas" sect)) + ;; the apparent section level + (hlevel + ;; if not real section level, then get the apparent level + ;; from "renderas" + (if renderas + (section-level-by-gi #f (normalize renderas)) + ;; else use the real level + (SECTLEVEL))) + (hs (HSIZE (- 4 hlevel)))) ;; one smaller than the title... + (make paragraph + font-family-name: %title-font-family% + font-weight: (if (< hlevel 5) 'bold 'medium) + font-posture: (if (< hlevel 5) 'upright 'italic) + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: 0pt + space-after: (* hs %head-after-factor%) + start-indent: + (if (< hlevel 3) + 0pt + %body-start-indent%) + first-line-start-indent: 0pt + quadding: %section-subtitle-quadding% + keep-with-next?: #t + (process-children)))) +) + +(define ($proc-section-info$ info) + (cond ((equal? (gi) (normalize "sect1")) + ($sect1-info$ info)) + ((equal? (gi) (normalize "sect2")) + ($sect2-info$ info)) + ((equal? (gi) (normalize "sect3")) + ($sect3-info$ info)) + ((equal? (gi) (normalize "sect4")) + ($sect4-info$ info)) + ((equal? (gi) (normalize "sect5")) + ($sect5-info$ info)) + ((equal? (gi) (normalize "section")) + ($section-info$ info)) + ((equal? (gi) (normalize "refsect1")) + ($refsect1-info$ info)) + ((equal? (gi) (normalize "refsect2")) + ($refsect2-info$ info)) + ((equal? (gi) (normalize "refsect3")) + ($refsect3-info$ info)) + (else (empty-sosofo)))) + +(define ($sect1-info$ info) (empty-sosofo)) +(define ($sect2-info$ info) (empty-sosofo)) +(define ($sect3-info$ info) (empty-sosofo)) +(define ($sect4-info$ info) (empty-sosofo)) +(define ($sect5-info$ info) (empty-sosofo)) +(define ($section-info$ info) (empty-sosofo)) +(define ($refsect1-info$ info) (empty-sosofo)) +(define ($refsect2-info$ info) (empty-sosofo)) +(define ($refsect3-info$ info) (empty-sosofo)) + +(element section ($section$)) +(element (section title) (empty-sosofo)) + +(element sect1 ($section$)) +(element (sect1 title) (empty-sosofo)) + +(element sect2 ($section$)) +(element (sect2 title) (empty-sosofo)) + +(element sect3 ($section$)) +(element (sect3 title) (empty-sosofo)) + +(element sect4 ($section$)) +(element (sect4 title) (empty-sosofo)) + +(element sect5 ($section$)) +(element (sect5 title) (empty-sosofo)) + +(element simplesect ($section$)) +(element (simplesect title) (empty-sosofo)) + diff --git a/print/dbsynop.dsl b/print/dbsynop.dsl new file mode 100644 index 0000000..2e04e5c --- /dev/null +++ b/print/dbsynop.dsl @@ -0,0 +1,224 @@ +;; $Id: dbsynop.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +;; ========================= SYNTAX DEFINITIONS ========================= + +(element synopsis ($verbatim-display$ %indent-synopsis-lines% + %number-synopsis-lines%)) + +(element cmdsynopsis + ;; Can't be an $informal-object$ because it needs the paragraph + ;; wrapper around process-children + (make display-group + start-indent: (+ %block-start-indent% (inherited-start-indent)) + space-before: %block-sep% + space-after: %block-sep% + (make paragraph + (process-children)))) + +;; Support for ARG provided by James Bostock, augmented by norm +;; + +(element (cmdsynopsis command) + (make sequence + (if (first-sibling? (current-node)) + (empty-sosofo) + (make paragraph-break)) + (next-match) + (literal " "))) + +(element group + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep"))) + (sepchar (if (inherited-attribute-string (normalize "sepchar")) + (inherited-attribute-string (normalize "sepchar")) + " "))) + (make sequence + (if (equal? (absolute-child-number (current-node)) 1) + (empty-sosofo) + (literal sepchar)) + (cond + ((equal? choice (normalize "plain")) (literal %arg-choice-plain-open-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%)) + (else (literal %arg-choice-def-open-str%))) + (process-children) + (cond + ((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%)) + (else (literal %arg-choice-def-close-str%))) + (cond + ((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%)) + ((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%)) + (else (literal %arg-rep-def-str%)))))) + +(element arg + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep"))) + (sepchar (if (inherited-attribute-string (normalize "sepchar")) + (inherited-attribute-string (normalize "sepchar")) + " "))) + (make sequence + (if (equal? (absolute-child-number (current-node)) 1) + (empty-sosofo) + (literal sepchar)) + (cond + ((equal? choice (normalize "plain")) (literal %arg-choice-plain-open-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%)) + (else (literal %arg-choice-def-open-str%))) + (process-children) + (cond + ((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%)) + ((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%)) + (else (literal %arg-rep-def-str%))) + (cond + ((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%)) + ((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%)) + ((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%)) + (else (literal %arg-choice-def-close-str%)))))) + +(element (group arg) + (let ((choice (attribute-string (normalize "choice"))) + (rep (attribute-string (normalize "rep")))) + (make sequence + (if (not (first-sibling? (current-node))) + (literal %arg-or-sep%) + (empty-sosofo)) + (process-children)))) + +(element sbr + (make paragraph-break)) + +;; ---------------------------------------------------------------------- +;; Syntax highlighting... + +(define (funcsynopsis-function #!optional (sosofo (process-children))) + (make sequence + font-weight: 'bold + sosofo)) + +(define (paramdef-parameter #!optional (sosofo (process-children))) + (make sequence + font-posture: 'italic + sosofo)) + +;; ---------------------------------------------------------------------- + +(element synopfragmentref + (let* ((target (element-with-id (attribute-string (normalize "linkend")))) + (snum (child-number target))) + (make sequence + font-posture: 'italic + (make link + destination: (node-list-address target) + (make sequence + font-posture: 'upright + ($callout-bug$ snum))) + (process-children)))) + +(element synopfragment + (let ((snum (child-number (current-node)))) + (make paragraph + ($callout-bug$ snum) + (literal " ") + (process-children)))) + +(element funcsynopsis + (let* ((width-in-chars (if (attribute-string "width") + (string->number (attribute-string "width")) + %verbatim-default-width%)) + (fsize (lambda () (if (or (attribute-string (normalize "width")) + (not %verbatim-size-factor%)) + (/ (/ (- %text-width% (inherited-start-indent)) + width-in-chars) + 0.7) + (* (inherited-font-size) + %verbatim-size-factor%))))) + ;; This used to be a sequence, but that caused the start-indent to be + ;; wrong when it was the first element of a RefSect. Making it a + ;; paragraph makes the bug go away and doesn't seem to have any ill + ;; effects. Need to investigate further... + (make paragraph + font-family-name: %mono-font-family% + font-size: (fsize) + font-weight: 'medium + font-posture: 'upright + line-spacing: (* (fsize) %line-spacing-factor%) + ($informal-object$)))) + +(element funcsynopsisinfo + ;; Fake out the font-size so that when verbatim-display calculates the + ;; verbatim-size-factor it doesn't get squared. This will fail if the + ;; "correct" size isn't bfsize, but what can I do? + (make sequence + font-size: %bf-size% + ($verbatim-display$ %indent-funcsynopsisinfo-lines% + %number-funcsynopsisinfo-lines%))) + +(element funcprototype + (let ((paramdefs (select-elements (children (current-node)) + (normalize "paramdef")))) + (make sequence + (make paragraph + font-family-name: %mono-font-family% + (process-children)) + (if (equal? %funcsynopsis-style% 'kr) + (with-mode kr-funcsynopsis-mode + (process-node-list paramdefs)) + (empty-sosofo))))) + +(element funcdef (process-children)) +(element (funcdef function) + (if %funcsynopsis-decoration% + (funcsynopsis-function) + (process-children))) + +(element void + (if (equal? %funcsynopsis-style% 'ansi) + (literal "(void);") + (literal "();"))) + +(element varargs (literal "(...);")) + +(element paramdef + (let ((param (select-elements (children (current-node)) (normalize "parameter")))) + (make sequence + (if (equal? (child-number (current-node)) 1) + (literal "(") + (empty-sosofo)) + (if (equal? %funcsynopsis-style% 'ansi) + (process-children) + (process-node-list param)) + (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) + (literal ", ") + (literal ");"))))) + +(element (paramdef parameter) + (make sequence + (if %funcsynopsis-decoration% + (paramdef-parameter) + (process-children)) + (if (equal? (gi (ifollow (current-node))) (normalize "parameter")) + (literal ", ") + (empty-sosofo)))) + +(element funcparams + (make sequence + (literal "(") + (process-children) + (literal ")"))) + +(mode kr-funcsynopsis-mode + (element paramdef + (make sequence + (make paragraph + font-family-name: %mono-font-family% + start-indent: (+ (inherited-start-indent) %kr-funcsynopsis-indent%) + (make sequence + (process-children) + (literal ";")))))) diff --git a/print/dbtable.dsl b/print/dbtable.dsl new file mode 100644 index 0000000..364ced8 --- /dev/null +++ b/print/dbtable.dsl @@ -0,0 +1,587 @@ +;; $Id: dbtable.dsl,v 1.3 2003/02/17 08:56:46 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; +;; Table support completely reimplemented by norm 15/16 Nov 1997 +;; +;; ====================================================================== +;; +;; This code is intended to implement the SGML Open Exchange Table Model +;; (http://www.sgmlopen.org/sgml/docs/techpubs.htm) as far as is possible +;; in RTF. There are a few areas where this code probably fails to +;; perfectly implement the model: +;; +;; - Mixed column width units (4*+2pi) are not supported. +;; - The behavior that results from mixing relative units with +;; absolute units has not been carefully considered. +;; - TFOOT appears at the bottom of the table, but is not repeated +;; across the bottom of pages (RTF limitation). +;; - ENTRYTBL is not supported. +;; - Rotated tables (e.g. landscape tables in a portrait document) +;; cannot be supported in a simple-page-sequence +;; +;; ====================================================================== +;; +;; My goal in reimplementing the table model was to provide correct +;; formatting in tables that use MOREROWS. The difficulty is that +;; correct formatting depends on calculating the column into which +;; an ENTRY will fall. +;; +;; This is a non-trivial problem because MOREROWS can hang down from +;; preceding rows and ENTRYs may specify starting columns (skipping +;; preceding ones). +;; +;; A simple, elegant recursive algorithm exists. Unfortunately it +;; requires calculating the column number of every preceding cell +;; in the entire table. Without memoization, performance is unacceptable +;; even in relatively small tables (5x5, for example). +;; +;; In order to avoid recursion, the algorithm used below is one that +;; works forward from the beginning of the table and "passes along" +;; the relevant information (column number of the preceding cell and +;; overhang from the MOREROWS in preceding rows). +;; +;; Unfortunately, this means that element construction rules +;; can't always be used to fire the appropriate rule. Instead, +;; each TGROUP has to process each THEAD/BODY/FOOT explicitly. +;; And each of those must process each ROW explicitly, then each +;; ENTRY/ENTRYTBL explicitly. +;; +;; ---------------------------------------------------------------------- +;; +;; I attempted to simplify this code by relying on inheritence from +;; table-column flow objects, but that wasn't entirely successful. +;; Horizontally spanning cells didn't seem to inherit from table-column +;; flow objects that didn't specify equal spanning. There seemed to +;; be other problems as well, but they could have been caused by coding +;; errors on my part. +;; +;; Anyway, by the time I understood how I could use table-column +;; flow objects for inheritence, I'd already implemented all the +;; machinery below to "work it out by hand". +;; +;; ====================================================================== +;; NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +;; ---------------------------------------------------------------------- +;; A fairly large chunk of this code is in dbcommon.dsl! +;; ====================================================================== +;; + +;; Default value for FRAME= on tables +(define ($cals-frame-default$) (normalize "all")) + +;; Default for COLSEP/ROWSEP if unspecified. +(define ($cals-rowsep-default$ #!optional (node (current-node))) + ;; Return "0" for #f, "1" for #t + ;; Default is to have rules if FRAME=ALL, otherwise not. Except + ;; that a separator between HEAD and BODY is controlled by + ;; %table-head-body-border%. + ;; + (let* ((table (ancestor-member node ($table-element-list$))) + (frame (if (attribute-string (normalize "frame") table) + (attribute-string (normalize "frame") table) + ($cals-frame-default$))) + (row (ancestor-member node (list (normalize "row"))))) + (if (equal? frame (normalize "all")) + #t + (if (and (equal? (gi (parent row)) (normalize "thead")) + (last-sibling? row)) + %table-head-body-border% + #f)))) + +(define ($cals-colsep-default$ #!optional (node (current-node))) + ;; Default is to have rules if FRAME=ALL, otherwise not. + ;; + (let* ((table (ancestor-member node ($table-element-list$))) + (frame (if (attribute-string (normalize "frame") table) + (attribute-string (normalize "frame") table) + ($cals-frame-default$)))) + (equal? frame (normalize "all")))) + +;; Default for VALIGN if unspecified +(define ($cals-valign-default$) (normalize "top")) + +;; Margins around cell contents +(define %cals-cell-before-row-margin% 3pt) +(define %cals-cell-after-row-margin% 3pt) + +(define %cals-cell-before-column-margin% 3pt) + +(define %cals-cell-after-column-margin% 3pt) + +;; Inheritable start and end indent for cell contents +(define %cals-cell-content-start-indent% 2pt) +(define %cals-cell-content-end-indent% 2pt) + +;; How to indent pgwide tables? (Non-pgwide tables get inherited-start-indent +(define %cals-pgwide-start-indent% %body-start-indent%) + +;; What alignment should tables have on the page +(define %cals-display-align% 'start) + +;; ---------------------------------------------------------------------- +;; Table rule widths + +(define %table-before-row-border% #t) +(define %table-after-row-border% #t) +(define %table-before-column-border% #t) +(define %table-after-column-border% #t) +(define %table-head-body-border% #t) +(define %table-cell-after-column-border% #t) +(define %table-cell-after-row-border% #t) + +;;(define tbl-color-space +;; (color-space "ISO/IEC 10179:1996//Color-Space Family::Device RGB")) +;; +;;(define tbl-red (color tbl-color-space 1 0 0)) +;;(define tbl-green (color tbl-color-space 0 1 0)) +;;(define tbl-blue (color tbl-color-space 0 0 1)) + +(define calc-table-before-row-border + (if (boolean? %table-before-row-border%) + %table-before-row-border% + ;; Avoid problems with the DSSSL compiler when + ;; %table-before-row-border% is boolean. + (let ((border-width %table-before-row-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-after-row-border + (if (boolean? %table-after-row-border%) + %table-after-row-border% + (let ((border-width %table-after-row-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-before-column-border + (if (boolean? %table-before-column-border%) + %table-before-column-border% + (let ((border-width %table-before-column-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-after-column-border + (if (boolean? %table-after-column-border%) + %table-after-column-border% + (let ((border-width %table-after-column-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-head-body-border + (if (boolean? %table-head-body-border%) + %table-head-body-border% + (let ((border-width %table-head-body-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-cell-after-column-border + (if (boolean? %table-cell-after-column-border%) + %table-cell-after-column-border% + (let ((border-width %table-cell-after-column-border%)) + (make table-border + line-thickness: border-width)))) + +(define calc-table-cell-after-row-border + (if (boolean? %table-cell-after-row-border%) + %table-cell-after-row-border% + (let ((border-width %table-cell-after-row-border%)) + (make table-border + line-thickness: border-width)))) + +;; ---------------------------------------------------------------------- +;; Convert colwidth units into table-unit measurements + +(define (colwidth-unit lenstr) + (if (string? lenstr) + (let ((number (length-string-number-part lenstr)) + (units (length-string-unit-part lenstr))) + (if (string=? units "*") + (if (string=? number "") + (table-unit 1) + (table-unit (string->number number))) + (if (string=? units "") + ;; no units, default to points + (* (string->number number) 1pt) + (let* ((unum (string->number number)) + (uname (case-fold-down units))) + (case uname + (("mm") (* unum 1mm)) + (("cm") (* unum 1cm)) + (("in") (* unum 1in)) + (("pi") (* unum 1pi)) + (("pt") (* unum 1pt)) + (("px") (* unum 1px)) + ;; unrecognized units; use points + (else (* unum 1pt))))))) + ;; lenstr is not a string...probably #f + (table-unit 1))) + + +(define (cell-align cell colnum) + (let* ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl")))) + (tgroup (find-tgroup entry)) + (spanname (attribute-string (normalize "spanname") entry)) + (calsalign (if (attribute-string (normalize "align") entry) + (attribute-string (normalize "align") entry) + (if (and spanname + (spanspec-align (find-spanspec spanname))) + (spanspec-align (find-spanspec spanname)) + (if (colspec-align (find-colspec-by-number colnum)) + (colspec-align (find-colspec-by-number colnum)) + (if (tgroup-align tgroup) + (tgroup-align tgroup) + (normalize "left"))))))) + (cond + ((equal? calsalign (normalize "left")) 'start) + ((equal? calsalign (normalize "center")) 'center) + ((equal? calsalign (normalize "right")) 'end) + (else 'start)))) + +(define (cell-valign cell colnum) + (let* ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl")))) + (row (ancestor (normalize "row") entry)) + (tbody (ancestor-member cell (list (normalize "tbody") + (normalize "thead") + (normalize "tfoot")))) + (tgroup (ancestor (normalize "tgroup") entry)) + (calsvalign (if (attribute-string (normalize "valign") entry) + (attribute-string (normalize "valign") entry) + (if (attribute-string (normalize "valign") row) + (attribute-string (normalize "valign") row) + (if (attribute-string (normalize "valign") tbody) + (attribute-string (normalize "valign") tbody) + ($cals-valign-default$)))))) + (cond + ((equal? calsvalign (normalize "top")) 'start) + ((equal? calsvalign (normalize "middle")) 'center) + ((equal? calsvalign (normalize "bottom")) 'end) + (else 'start)))) + +;; ====================================================================== +;; Element rules + +(element tgroup + (let ((frame-attribute (if (inherited-attribute-string (normalize "frame")) + (inherited-attribute-string (normalize "frame")) + ($cals-frame-default$)))) + (make table + ;; These values are used for the outer edges (well, the top, bottom + ;; and left edges for sure; I think the right edge actually comes + ;; from the cells in the last column + before-row-border: (if (cond + ((equal? frame-attribute (normalize "all")) #t) + ((equal? frame-attribute (normalize "sides")) #f) + ((equal? frame-attribute (normalize "top")) #t) + ((equal? frame-attribute (normalize "bottom")) #f) + ((equal? frame-attribute (normalize "topbot")) #t) + ((equal? frame-attribute (normalize "none")) #f) + (else #f)) + calc-table-before-row-border + #f) + after-row-border: (if (cond + ((equal? frame-attribute (normalize "all")) #t) + ((equal? frame-attribute (normalize "sides")) #f) + ((equal? frame-attribute (normalize "top")) #f) + ((equal? frame-attribute (normalize "bottom")) #t) + ((equal? frame-attribute (normalize "topbot")) #t) + ((equal? frame-attribute (normalize "none")) #f) + (else #f)) + calc-table-after-row-border + #f) + before-column-border: (if (cond + ((equal? frame-attribute (normalize "all")) #t) + ((equal? frame-attribute (normalize "sides")) #t) + ((equal? frame-attribute (normalize "top")) #f) + ((equal? frame-attribute (normalize "bottom")) #f) + ((equal? frame-attribute (normalize "topbot")) #f) + ((equal? frame-attribute (normalize "none")) #f) + (else #f)) + calc-table-before-column-border + #f) + after-column-border: (if (cond + ((equal? frame-attribute (normalize "all")) #t) + ((equal? frame-attribute (normalize "sides")) #t) + ((equal? frame-attribute (normalize "top")) #f) + ((equal? frame-attribute (normalize "bottom")) #f) + ((equal? frame-attribute (normalize "topbot")) #f) + ((equal? frame-attribute (normalize "none")) #f) + (else #f)) + calc-table-after-column-border + #f) + display-alignment: %cals-display-align% + (make table-part + content-map: '((thead header) + (tbody #f) + (tfoot footer)) + ($process-colspecs$ (current-node)) + (process-children) + (make-table-endnotes))))) + +(element colspec + ;; now handled by $process-colspecs$ at the top of each tgroup... + (empty-sosofo)) + +(element spanspec + (empty-sosofo)) + +(element thead + ($process-table-body$ (current-node))) + +(element tfoot + ($process-table-body$ (current-node))) + +(element tbody + ($process-table-body$ (current-node))) + +(element row + (empty-sosofo)) ;; this should never happen, they're processed explicitly + +(element entry + (empty-sosofo)) ;; this should never happen, they're processed explicitly + +;; ====================================================================== +;; Functions that handle processing of table bodies, rows, and cells + +(define ($process-colspecs$ tgroup) + (let* ((cols (string->number (attribute-string (normalize "cols"))))) + (let loop ((colnum 1)) + (if (> colnum cols) + (empty-sosofo) + (make sequence + (let ((colspec (find-colspec-by-number colnum))) + (if (node-list-empty? colspec) + (make table-column + column-number: colnum + width: (colwidth-unit "1*")) + ($process-colspec$ colspec colnum))) + (loop (+ colnum 1))))))) + +(define ($process-colspec$ colspec colnum) + (let* ((colwidth (if (attribute-string (normalize "colwidth") colspec) + (attribute-string (normalize "colwidth") colspec) + "1*"))) + (make table-column + column-number: colnum + width: (colwidth-unit colwidth)))) + +(define ($process-table-body$ body) + (let* ((tgroup (ancestor (normalize "tgroup") body)) + (cols (string->number (attribute-string (normalize "cols") tgroup))) + (blabel (cond + ((equal? (gi body) (normalize "thead")) 'thead) + ((equal? (gi body) (normalize "tbody")) 'tbody) + ((equal? (gi body) (normalize "tfoot")) 'tfoot)))) + (make sequence + label: blabel + (let loop ((rows (select-elements (children body) (normalize "row"))) + (overhang (constant-list 0 cols))) + (if (node-list-empty? rows) + (empty-sosofo) + (make sequence + ($process-row$ (node-list-first rows) overhang) + (loop (node-list-rest rows) + (update-overhang (node-list-first rows) overhang)))))))) + +(define ($process-row$ row overhang) + (let* ((tgroup (ancestor (normalize "tgroup") row)) + (maxcol (string->number (attribute-string + (normalize "cols") tgroup))) + (lastentry (node-list-last (node-list-filter-out-pis + (children row)))) + (table (parent tgroup))) + ;; there's no point calculating the row or colsep here, each cell + ;; specifies it which overrides anything we might say here... + (make table-row + (let loop ((cells (node-list-filter-out-pis (children row))) + (prevcell (empty-node-list))) + (if (node-list-empty? cells) + (empty-sosofo) + (make sequence + ($process-cell$ (node-list-first cells) prevcell row overhang) + (loop (node-list-rest cells) (node-list-first cells))))) + + ;; add any necessary empty cells to the end of the row + (let loop ((colnum (+ (cell-column-number lastentry overhang) + (hspan lastentry)))) + (if (> colnum maxcol) + (empty-sosofo) + (make sequence + ($process-empty-cell$ colnum row) + (loop (+ colnum 1)))))))) + +(define ($process-cell$ entry preventry row overhang) + (let* ((colnum (cell-column-number entry overhang)) + (lastcellcolumn (if (node-list-empty? preventry) + 0 + (- (+ (cell-column-number preventry overhang) + (hspan preventry)) + 1))) + (lastcolnum (if (> lastcellcolumn 0) + (overhang-skip overhang lastcellcolumn) + 0)) + (font-name (if (have-ancestor? (normalize "thead") entry) + %title-font-family% + %body-font-family%)) + (weight (if (have-ancestor? (normalize "thead") entry) + 'bold + 'medium)) + (align (cell-align entry colnum))) + + (make sequence + ;; This is a little bit complicated. We want to output empty cells + ;; to skip over missing data. We start count at the column number + ;; arrived at by adding 1 to the column number of the previous entry + ;; and skipping over any MOREROWS overhanging entrys. Then for each + ;; iteration, we add 1 and skip over any overhanging entrys. + (let loop ((count (overhang-skip overhang (+ lastcolnum 1)))) + (if (>= count colnum) + (empty-sosofo) + (make sequence + ($process-empty-cell$ count row) + (loop (overhang-skip overhang (+ count 1)))))) + + ;; Now we've output empty cells for any missing entries, so we + ;; are ready to output the cell for this entry... + (make table-cell + column-number: colnum + n-columns-spanned: (hspan entry) + n-rows-spanned: (vspan entry) + + cell-row-alignment: (cell-valign entry colnum) + + cell-after-column-border: (if (cell-colsep entry colnum) + calc-table-cell-after-column-border + #f) + + cell-after-row-border: (if (cell-rowsep entry colnum) + (if (last-sibling? (parent entry)) + calc-table-head-body-border + calc-table-cell-after-row-border) + #f) + + cell-before-row-margin: %cals-cell-before-row-margin% + cell-after-row-margin: %cals-cell-after-row-margin% + cell-before-column-margin: %cals-cell-before-column-margin% + cell-after-column-margin: %cals-cell-after-column-margin% + + ;; If there is some additional indentation (because we're in a list, + ;; for example) make sure that gets passed along, but don't add + ;; the normal body-start-indent. + start-indent: (+ (- (inherited-start-indent) %body-start-indent%) + %cals-cell-content-start-indent%) + end-indent: %cals-cell-content-end-indent% + (if (equal? (gi entry) (normalize "entrytbl")) + (make paragraph + (literal "ENTRYTBL not supported.")) + (make paragraph + font-family-name: font-name + font-weight: weight + quadding: align + (process-node-list (children entry)))))))) + +(define (empty-cell-colsep colnum row) + (let* ((tgroup (ancestor (normalize "tgroup") row)) + (table (parent tgroup)) + (calscolsep + (if (tgroup-colsep tgroup) + (tgroup-colsep tgroup) + (if (attribute-string (normalize "colsep") table) + (attribute-string (normalize "colsep") table) + (if ($cals-colsep-default$ row) + "1" + "0"))))) + (> (string->number calscolsep) 0))) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +(define (cell-colsep cell colnum) + (let* ((entry (ancestor-member cell (list (normalize "entry") (normalize "entrytbl")))) + (spanname (attribute-string (normalize "spanname") entry)) + (tgroup (find-tgroup entry)) + (table (parent tgroup)) + (calscolsep + (if (attribute-string (normalize "colsep") entry) + (attribute-string (normalize "colsep") entry) + (if (and spanname + (spanspec-colsep (find-spanspec spanname))) + (spanspec-colsep (find-spanspec spanname)) + (if (colspec-colsep (find-colspec-by-number colnum)) + (colspec-colsep (find-colspec-by-number colnum)) + (if (tgroup-colsep tgroup) + (tgroup-colsep tgroup) + (if (attribute-string (normalize "colsep") table) + (attribute-string (normalize "colsep") table) + (if ($cals-colsep-default$ cell) + "1" + "0")))))))) + (> (string->number calscolsep) 0))) + +(define (cell-rowsep cell colnum) + (let* ((entry (ancestor-member cell (list (normalize "entry") + (normalize "entrytbl")))) + (spanname (attribute-string (normalize "spanname") entry)) + (row (ancestor (normalize "row") entry)) + (tgroup (find-tgroup entry)) + (table (parent tgroup)) + (calsrowsep + (if (attribute-string (normalize "rowsep") entry) + (attribute-string (normalize "rowsep") entry) + (if (and spanname (spanspec-rowsep (find-spanspec spanname))) + (spanspec-rowsep (find-spanspec spanname)) + (if (colspec-rowsep (find-colspec-by-number colnum)) + (colspec-rowsep (find-colspec-by-number colnum)) + (if (attribute-string (normalize "rowsep") row) + (attribute-string (normalize "rowsep") row) + (if (tgroup-rowsep tgroup) + (tgroup-rowsep tgroup) + (if (attribute-string (normalize "rowsep") table) + (attribute-string (normalize "rowsep") table) + (if ($cals-rowsep-default$ cell) + "1" + "0"))))))))) + (> (string->number calsrowsep) 0))) + +(define (empty-cell-rowsep colnum row) + (let* ((tgroup (ancestor (normalize "tgroup") row)) + (table (parent tgroup)) + (calsrowsep + (if (attribute-string (normalize "rowsep") row) + (attribute-string (normalize "rowsep") row) + (if (tgroup-rowsep tgroup) + (tgroup-rowsep tgroup) + (if (attribute-string (normalize "rowsep") table) + (attribute-string (normalize "rowsep") table) + (if ($cals-rowsep-default$ row) + "1" + "0")))))) + (> (string->number calsrowsep) 0))) + +;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +(define ($process-empty-cell$ colnum row) + (make table-cell + column-number: colnum + n-columns-spanned: 1 + n-rows-spanned: 1 + cell-after-column-border: (if (empty-cell-colsep colnum row) + calc-table-cell-after-column-border + #f) + + cell-after-row-border: (if (empty-cell-rowsep colnum row) + (if (last-sibling? row) + calc-table-head-body-border + calc-table-cell-after-row-border) + #f) + + cell-before-row-margin: %cals-cell-before-row-margin% + cell-after-row-margin: %cals-cell-after-row-margin% + cell-before-column-margin: %cals-cell-before-column-margin% + cell-after-column-margin: %cals-cell-after-column-margin% + start-indent: %cals-cell-content-start-indent% + end-indent: %cals-cell-content-end-indent% + (empty-sosofo))) + +;; EOF diff --git a/print/dbtitle.dsl b/print/dbtitle.dsl new file mode 100644 index 0000000..8c4635b --- /dev/null +++ b/print/dbtitle.dsl @@ -0,0 +1,52 @@ +;; $Id: dbtitle.dsl,v 1.4 2003/02/17 19:42:45 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define title-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + quadding: 'start)) + +;; So we can pass different sosofo's to this routine and get identical +;; treatment (see REFNAME in dbrfntry.dsl) +;; +(define ($lowtitlewithsosofo$ tlevel hlevel sosofo) + (let ((hs (HSIZE (- 3 tlevel)))) + (make paragraph + font-family-name: %title-font-family% + font-weight: 'bold + font-size: hs + line-spacing: (* hs %line-spacing-factor%) + space-before: (* hs %head-before-factor%) + space-after: (* hs %head-after-factor%) + start-indent: %body-start-indent% + quadding: 'start + keep-with-next?: #t + heading-level: (if %generate-heading-level% hlevel 0) + sosofo))) + +(define ($lowtitle$ tlevel hlevel) + ($lowtitlewithsosofo$ tlevel hlevel (process-children))) + +(define ($runinhead$) + (let* ((title (data (current-node))) + (titlelen (string-length title)) + (lastchar (string-ref title (- titlelen 1))) + (punct (if (member lastchar %content-title-end-punct%) + "" + %default-title-end-punct%))) + (make sequence + font-weight: 'bold + (process-children-trim) + (literal punct " ")))) + +(element title ($lowtitle$ 2 4)) ;; the default TITLE format +(element titleabbrev (empty-sosofo)) +(element subtitle (empty-sosofo)) + +(mode title-mode + (element title + (process-children))) diff --git a/print/dbttlpg.dsl b/print/dbttlpg.dsl new file mode 100644 index 0000000..733f0f5 --- /dev/null +++ b/print/dbttlpg.dsl @@ -0,0 +1,6772 @@ +;; $Id: dbttlpg.dsl,v 1.13 2004/10/10 21:15:06 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://nwalsh.com/docbook/dsssl/ +;; + +(define (have-sibling? sibling-gi #!optional (node (current-node))) + (let loop ((nl (children (parent node)))) + (if (node-list-empty? nl) + #f + (if (equal? (gi (node-list-first nl)) sibling-gi) + #t + (loop (node-list-rest nl)))))) + +(define (titlepage-content? elements gis) + (let giloop ((gilist gis)) + (if (null? gilist) + #f + (if (not (node-list-empty? (node-list-filter-by-gi + elements + (list (car gilist))))) + #t + (giloop (cdr gilist)))))) + +(define (titlepage-gi-list-by-elements elements nodelist) + ;; Elements is a list of GIs. Nodelist is a list of nodes. + ;; This function returns all of the nodes in nodelist that + ;; are in elements in the order they occur in elements. + (let loop ((gilist elements) (rlist (empty-node-list))) + (if (null? gilist) + rlist + (loop (cdr gilist) + (node-list rlist (node-list-filter-by-gi + nodelist (list (car gilist)))))))) + +(define (titlepage-gi-list-by-nodelist elements nodelist) + ;; Elements is a list of GIs. Nodelist is a list of nodes. + ;; This function returns all of the nodes in nodelist that + ;; are in elements in the order they occur in nodelist. + (let loop ((nl nodelist) (rlist (empty-node-list))) + (if (node-list-empty? nl) + rlist + (if (member (gi (node-list-first nl)) elements) + (loop (node-list-rest nl) + (node-list rlist (node-list-first nl))) + (loop (node-list-rest nl) rlist))))) + +(define (titlepage-nodelist elements nodelist) + ;; We expand BOOKBIBLIO, BIBLIOMISC, and BIBLIOSET in the element + ;; list because that level of wrapper usually isn't significant. + (let ((exp-nodelist (expand-children nodelist (list (normalize "bookbiblio") + (normalize "bibliomisc") + (normalize "biblioset"))))) + (if %titlepage-in-info-order% + (titlepage-gi-list-by-nodelist elements exp-nodelist) + (titlepage-gi-list-by-elements elements exp-nodelist)))) + +(mode titlepage-address-mode + (default (process-children))) + +;; == Title pages for SETs ============================================== + +(define (set-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "graphic") + (normalize "mediaobject") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor"))) + +(define (set-titlepage-verso-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor") + (normalize "edition") + (normalize "pubdate") + (normalize "copyright") + (normalize "legalnotice") + (normalize "revhistory"))) + +(define (set-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (set-titlepage-recto-elements) + (set-titlepage-verso-elements)))) + +(define (set-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (set-titlepage-recto-elements) + (set-titlepage-verso-elements)) + elements))) +;; (make simple-page-sequence +;; page-n-columns: %titlepage-n-columns% +;; input-whitespace-treatment: 'collapse +;; use: default-text-style + (make sequence + + ;; This hack is required for the RTF backend. If an external-graphic + ;; is the first thing on the page, RTF doesn't seem to do the right + ;; thing (the graphic winds up on the baseline of the first line + ;; of the page, left justified). This "one point rule" fixes + ;; that problem. + (make paragraph + line-spacing: 1pt + (literal "")) + + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (set-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (set-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (set-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (set-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (set-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (set-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (set-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (set-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (set-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (set-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (set-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (set-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (set-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (set-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (set-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (set-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (set-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (set-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (set-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (set-titlepage-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (set-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (set-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (set-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (set-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (set-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (set-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (set-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (set-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (set-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (set-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (set-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (set-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (set-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (set-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (set-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (set-titlepage-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (set-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (set-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (set-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (set-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (set-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (set-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (set-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (set-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (set-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (set-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (set-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (set-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (set-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (set-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (set-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (set-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (set-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (set-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (set-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (set-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (set-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (set-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (set-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (set-titlepage-volumenum (node-list-first nl) side)) + (else + (set-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl)))))))) + +(define (set-titlepage-before node side) + (if (equal? side 'recto) + (cond + ((equal? (gi node) (normalize "corpauthor")) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;"))) + ((equal? (gi node) (normalize "authorgroup")) + (if (have-sibling? (normalize "corpauthor") node) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + ((equal? (gi node) (normalize "author")) + (if (or (have-sibling? (normalize "corpauthor") node) + (have-sibling? (normalize "authorgroup") node)) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + (else (empty-sosofo))) + (empty-sosofo))) + +(define (set-titlepage-default node side) + (let ((foo (debug (string-append "No set-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (set-titlepage-element node side) + (if (equal? side 'recto) + (with-mode set-titlepage-recto-mode + (process-node-list node)) + (with-mode set-titlepage-verso-mode + (process-node-list node)))) + +(define (set-titlepage-abbrev node side) + (set-titlepage-element node side)) +(define (set-titlepage-abstract node side) + (set-titlepage-element node side)) +(define (set-titlepage-address node side) + (set-titlepage-element node side)) +(define (set-titlepage-affiliation node side) + (set-titlepage-element node side)) +(define (set-titlepage-artpagenums node side) + (set-titlepage-element node side)) +(define (set-titlepage-author node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorblurb node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorgroup node side) + (set-titlepage-element node side)) +(define (set-titlepage-authorinitials node side) + (set-titlepage-element node side)) +(define (set-titlepage-bibliomisc node side) + (set-titlepage-element node side)) +(define (set-titlepage-biblioset node side) + (set-titlepage node side)) +(define (set-titlepage-bookbiblio node side) + (set-titlepage node side)) +(define (set-titlepage-citetitle node side) + (set-titlepage-element node side)) +(define (set-titlepage-collab node side) + (set-titlepage-element node side)) +(define (set-titlepage-confgroup node side) + (set-titlepage-element node side)) +(define (set-titlepage-contractnum node side) + (set-titlepage-element node side)) +(define (set-titlepage-contractsponsor node side) + (set-titlepage-element node side)) +(define (set-titlepage-contrib node side) + (set-titlepage-element node side)) +(define (set-titlepage-copyright node side) + (set-titlepage-element node side)) + +(define (set-titlepage-corpauthor node side) + (if (equal? side 'recto) + (set-titlepage-element node side) + (if (first-sibling? node) + (make paragraph + (with-mode set-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (set-titlepage-corpname node side) + (set-titlepage-element node side)) +(define (set-titlepage-date node side) + (set-titlepage-element node side)) +(define (set-titlepage-edition node side) + (set-titlepage-element node side)) +(define (set-titlepage-editor node side) + (set-titlepage-element node side)) +(define (set-titlepage-firstname node side) + (set-titlepage-element node side)) +(define (set-titlepage-graphic node side) + (set-titlepage-element node side)) +(define (set-titlepage-honorific node side) + (set-titlepage-element node side)) +(define (set-titlepage-indexterm node side) + (set-titlepage-element node side)) +(define (set-titlepage-invpartnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-isbn node side) + (set-titlepage-element node side)) +(define (set-titlepage-issn node side) + (set-titlepage-element node side)) +(define (set-titlepage-issuenum node side) + (set-titlepage-element node side)) +(define (set-titlepage-itermset node side) + (set-titlepage-element node side)) +(define (set-titlepage-keywordset node side) + (set-titlepage-element node side)) +(define (set-titlepage-legalnotice node side) + (set-titlepage-element node side)) +(define (set-titlepage-lineage node side) + (set-titlepage-element node side)) +(define (set-titlepage-mediaobject node side) + (set-titlepage-element node side)) +(define (set-titlepage-modespec node side) + (set-titlepage-element node side)) +(define (set-titlepage-orgname node side) + (set-titlepage-element node side)) +(define (set-titlepage-othercredit node side) + (set-titlepage-element node side)) +(define (set-titlepage-othername node side) + (set-titlepage-element node side)) +(define (set-titlepage-pagenums node side) + (set-titlepage-element node side)) +(define (set-titlepage-printhistory node side) + (set-titlepage-element node side)) +(define (set-titlepage-productname node side) + (set-titlepage-element node side)) +(define (set-titlepage-productnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-pubdate node side) + (set-titlepage-element node side)) +(define (set-titlepage-publisher node side) + (set-titlepage-element node side)) +(define (set-titlepage-publishername node side) + (set-titlepage-element node side)) +(define (set-titlepage-pubsnumber node side) + (set-titlepage-element node side)) +(define (set-titlepage-releaseinfo node side) + (set-titlepage-element node side)) +(define (set-titlepage-revhistory node side) + (set-titlepage-element node side)) +(define (set-titlepage-seriesinfo node side) + (set-titlepage-element node side)) +(define (set-titlepage-seriesvolnums node side) + (set-titlepage-element node side)) +(define (set-titlepage-subjectset node side) + (set-titlepage-element node side)) +(define (set-titlepage-subtitle node side) + (set-titlepage-element node side)) +(define (set-titlepage-surname node side) + (set-titlepage-element node side)) +(define (set-titlepage-title node side) + (set-titlepage-element node side)) +(define (set-titlepage-titleabbrev node side) + (set-titlepage-element node side)) +(define (set-titlepage-volumenum node side) + (set-titlepage-element node side)) + +(define set-titlepage-recto-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 1))) + +(define set-titlepage-verso-style + (style + font-family-name: %body-font-family%)) + +(mode set-titlepage-recto-mode + (element abbrev + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element abstract + (make display-group + use: set-titlepage-recto-style + quadding: 'start + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element (abstract para) + (make paragraph + use: set-titlepage-recto-style + quadding: 'start + (process-children))) + + (element address + (make display-group + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make display-group + use: set-titlepage-recto-style + (process-children))) + + (element artpagenums + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element authorblurb + (make display-group + use: set-titlepage-recto-style + quadding: 'start + (process-children))) + + (element (authorblurb para) + (make paragraph + use: set-titlepage-recto-style + quadding: 'start + (process-children))) + + (element authorgroup + (make display-group + (process-children))) + + (element authorinitials + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element confgroup + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractnum + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractsponsor + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contrib + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element copyright + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + space-before: (* (HSIZE 2) %head-before-factor%) + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + (make sequence + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (process-children)) + ;; This paragraph is a hack to get the spacing right. + ;; Authors always have an affiliation paragraph below them, even if + ;; it's empty, so corpauthors need one too. + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal "\no-break-space;")))) + + (element corpname + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element date + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element edition + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor% 6) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal (gentext-edited-by))) + (empty-sosofo)) + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal editor-name))))) + + (element firstname + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'center) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element isbn + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issn + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issuenum + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element jobtitle + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: set-titlepage-recto-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: set-titlepage-recto-style + quadding: 'start + line-spacing: (* 0.8 (inherited-line-spacing)) + font-size: (* 0.8 (inherited-font-size)) + (process-children))) + + (element lineage + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element orgname + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element othername + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pagenums + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element printhistory + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productname + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productnumber + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubdate + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publisher + (make display-group + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publishername + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubsnumber + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element releaseinfo + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: set-titlepage-recto-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: set-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: set-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: set-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: set-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: set-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element shortaffil + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + quadding: %division-subtitle-quadding% + keep-with-next?: #t + (process-children-trim))) + + (element surname + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element title + (make paragraph + use: set-titlepage-recto-style + font-size: (HSIZE 5) + line-spacing: (* (HSIZE 5) %line-spacing-factor%) + space-before: (* (HSIZE 5) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% 1 0) + (with-mode title-mode + (process-children-trim)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: set-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) +) + +(mode set-titlepage-verso-mode + (element abbrev + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element abstract ($semiformal-object$)) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: set-titlepage-verso-style + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element artpagenums + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element authorblurb + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element authorgroup + (make paragraph + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (process-children-trim)))) + + (element authorinitials + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element confgroup + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element contractnum + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element contractsponsor + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element contrib + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element copyright + (make paragraph + use: set-titlepage-verso-style + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + ;; note: set-titlepage-corpauthor takes care of wrapping multiple + ;; corpauthors + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element date + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element edition + (make paragraph + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-edited-by)) + (literal "\no-break-space;") + (literal (author-string)))) + (make sequence + (literal (author-string)))))) + + (element firstname + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'start) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element isbn + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element issn + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element issuenum + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element jobtitle + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: set-titlepage-verso-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: set-titlepage-verso-style + font-size: (* (inherited-font-size) 0.8) + (process-children-trim))) + + (element lineage + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element orgname + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element othercredit + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element othername + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element pagenums + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element printhistory + (make display-group + use: set-titlepage-verso-style + (process-children))) + + (element productname + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element productnumber + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element pubdate + (make paragraph + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element publishername + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element pubsnumber + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element releaseinfo + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: set-titlepage-verso-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: set-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: set-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: set-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: set-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + ;(process-node-list revremark))) + (empty-sosofo))) + ((not (node-list-empty? revdescription)) + (make sequence + use: set-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element shortaffil + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (if (first-sibling?) ": " "; ")) + (process-children))) + + (element surname + (make paragraph + use: set-titlepage-verso-style + (process-children))) + + (element title + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (with-mode title-mode + (process-children)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: set-titlepage-verso-style + (process-children))) + +) + +;; == Title pages for BOOKs ============================================= + +(define (book-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "graphic") + (normalize "mediaobject") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor"))) + +(define (book-titlepage-verso-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor") + (normalize "edition") + (normalize "pubdate") + (normalize "copyright") + (normalize "abstract") + (normalize "legalnotice") + (normalize "revhistory"))) + +(define (book-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (book-titlepage-recto-elements) + (book-titlepage-verso-elements)))) + +(define (book-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (book-titlepage-recto-elements) + (book-titlepage-verso-elements)) + elements))) +;; (make simple-page-sequence +;; page-n-columns: %titlepage-n-columns% +;; input-whitespace-treatment: 'collapse +;; use: default-text-style + (make sequence + + ;; This hack is required for the RTF backend. If an external-graphic + ;; is the first thing on the page, RTF doesn't seem to do the right + ;; thing (the graphic winds up on the baseline of the first line + ;; of the page, left justified). This "one point rule" fixes + ;; that problem. + (make paragraph + line-spacing: 1pt + (literal "")) + + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (book-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (book-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (book-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (book-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (book-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (book-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (book-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (book-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (book-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (book-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (book-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (book-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (book-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (book-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (book-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (book-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (book-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (book-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (book-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (book-titlepage-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (book-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (book-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (book-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (book-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (book-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (book-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (book-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (book-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (book-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (book-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (book-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (book-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (book-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (book-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (book-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (book-titlepage-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (book-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (book-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (book-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (book-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (book-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (book-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (book-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (book-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (book-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (book-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (book-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (book-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (book-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (book-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (book-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (book-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (book-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (book-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (book-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (book-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (book-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (book-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (book-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (book-titlepage-volumenum (node-list-first nl) side)) + (else + (book-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl)))))))) + +(define (book-titlepage-before node side) + (if (equal? side 'recto) + (cond + ((equal? (gi node) (normalize "corpauthor")) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;"))) + ((equal? (gi node) (normalize "authorgroup")) + (if (have-sibling? (normalize "corpauthor") node) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + ((equal? (gi node) (normalize "author")) + (if (or (have-sibling? (normalize "corpauthor") node) + (have-sibling? (normalize "authorgroup") node)) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + (else (empty-sosofo))) + (empty-sosofo))) + +(define (book-titlepage-default node side) + (let ((foo (debug (string-append "No book-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (book-titlepage-element node side) + (if (equal? side 'recto) + (with-mode book-titlepage-recto-mode + (process-node-list node)) + (with-mode book-titlepage-verso-mode + (process-node-list node)))) + +(define (book-titlepage-abbrev node side) + (book-titlepage-element node side)) +(define (book-titlepage-abstract node side) + (book-titlepage-element node side)) +(define (book-titlepage-address node side) + (book-titlepage-element node side)) +(define (book-titlepage-affiliation node side) + (book-titlepage-element node side)) +(define (book-titlepage-artpagenums node side) + (book-titlepage-element node side)) +(define (book-titlepage-author node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorblurb node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorgroup node side) + (book-titlepage-element node side)) +(define (book-titlepage-authorinitials node side) + (book-titlepage-element node side)) +(define (book-titlepage-bibliomisc node side) + (book-titlepage-element node side)) +(define (book-titlepage-biblioset node side) + (book-titlepage node side)) +(define (book-titlepage-bookbiblio node side) + (book-titlepage node side)) +(define (book-titlepage-citetitle node side) + (book-titlepage-element node side)) +(define (book-titlepage-collab node side) + (book-titlepage-element node side)) +(define (book-titlepage-confgroup node side) + (book-titlepage-element node side)) +(define (book-titlepage-contractnum node side) + (book-titlepage-element node side)) +(define (book-titlepage-contractsponsor node side) + (book-titlepage-element node side)) +(define (book-titlepage-contrib node side) + (book-titlepage-element node side)) +(define (book-titlepage-copyright node side) + (book-titlepage-element node side)) + +(define (book-titlepage-corpauthor node side) + (if (equal? side 'recto) + (book-titlepage-element node side) + (if (first-sibling? node) + (make paragraph + (with-mode book-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (book-titlepage-corpname node side) + (book-titlepage-element node side)) +(define (book-titlepage-date node side) + (book-titlepage-element node side)) +(define (book-titlepage-edition node side) + (book-titlepage-element node side)) +(define (book-titlepage-editor node side) + (book-titlepage-element node side)) +(define (book-titlepage-firstname node side) + (book-titlepage-element node side)) +(define (book-titlepage-graphic node side) + (book-titlepage-element node side)) +(define (book-titlepage-honorific node side) + (book-titlepage-element node side)) +(define (book-titlepage-indexterm node side) + (book-titlepage-element node side)) +(define (book-titlepage-invpartnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-isbn node side) + (book-titlepage-element node side)) +(define (book-titlepage-issn node side) + (book-titlepage-element node side)) +(define (book-titlepage-issuenum node side) + (book-titlepage-element node side)) +(define (book-titlepage-itermset node side) + (book-titlepage-element node side)) +(define (book-titlepage-keywordset node side) + (book-titlepage-element node side)) +(define (book-titlepage-legalnotice node side) + (book-titlepage-element node side)) +(define (book-titlepage-lineage node side) + (book-titlepage-element node side)) +(define (book-titlepage-mediaobject node side) + (book-titlepage-element node side)) +(define (book-titlepage-modespec node side) + (book-titlepage-element node side)) +(define (book-titlepage-orgname node side) + (book-titlepage-element node side)) +(define (book-titlepage-othercredit node side) + (book-titlepage-element node side)) +(define (book-titlepage-othername node side) + (book-titlepage-element node side)) +(define (book-titlepage-pagenums node side) + (book-titlepage-element node side)) +(define (book-titlepage-printhistory node side) + (book-titlepage-element node side)) +(define (book-titlepage-productname node side) + (book-titlepage-element node side)) +(define (book-titlepage-productnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-pubdate node side) + (book-titlepage-element node side)) +(define (book-titlepage-publisher node side) + (book-titlepage-element node side)) +(define (book-titlepage-publishername node side) + (book-titlepage-element node side)) +(define (book-titlepage-pubsnumber node side) + (book-titlepage-element node side)) +(define (book-titlepage-releaseinfo node side) + (book-titlepage-element node side)) +(define (book-titlepage-revhistory node side) + (book-titlepage-element node side)) +(define (book-titlepage-seriesinfo node side) + (book-titlepage-element node side)) +(define (book-titlepage-seriesvolnums node side) + (book-titlepage-element node side)) +(define (book-titlepage-subjectset node side) + (book-titlepage-element node side)) +(define (book-titlepage-subtitle node side) + (book-titlepage-element node side)) +(define (book-titlepage-surname node side) + (book-titlepage-element node side)) +(define (book-titlepage-title node side) + (book-titlepage-element node side)) +(define (book-titlepage-titleabbrev node side) + (book-titlepage-element node side)) +(define (book-titlepage-volumenum node side) + (book-titlepage-element node side)) + +(define book-titlepage-recto-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 1))) + +(define book-titlepage-verso-style + (style + font-family-name: %body-font-family%)) + +(mode book-titlepage-recto-mode + (element abbrev + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element abstract + (make display-group + use: book-titlepage-recto-style + quadding: 'start + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element (abstract para) + (make paragraph + use: book-titlepage-recto-style + quadding: 'start + (process-children))) + + (element address + (make display-group + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make display-group + use: book-titlepage-recto-style + (process-children))) + + (element artpagenums + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element authorblurb + (make display-group + use: book-titlepage-recto-style + quadding: 'start + (process-children))) + + (element (authorblurb para) + (make paragraph + use: book-titlepage-recto-style + quadding: 'start + (process-children))) + + (element authorgroup + (make display-group + (process-children))) + + (element authorinitials + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element confgroup + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractnum + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractsponsor + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contrib + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element copyright + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + space-before: (* (HSIZE 2) %head-before-factor%) + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + (make sequence + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (process-children)) + ;; This paragraph is a hack to get the spacing right. + ;; Authors always have an affiliation paragraph below them, even if + ;; it's empty, so corpauthors need one too. + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal "\no-break-space;")))) + + (element corpname + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element date + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element edition + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor% 6) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal (gentext-edited-by))) + (empty-sosofo)) + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal editor-name))))) + + (element firstname + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'center) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element isbn + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issn + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issuenum + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element jobtitle + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: book-titlepage-recto-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: book-titlepage-recto-style + quadding: 'start + line-spacing: (* 0.8 (inherited-line-spacing)) + font-size: (* 0.8 (inherited-font-size)) + (process-children))) + + (element lineage + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element orgname + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element othername + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pagenums + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element printhistory + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productname + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productnumber + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubdate + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publisher + (make display-group + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publishername + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubsnumber + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element releaseinfo + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: book-titlepage-recto-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: book-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: book-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: book-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: book-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: book-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revremark))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element shortaffil + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + quadding: %division-subtitle-quadding% + keep-with-next?: #t + (process-children-trim))) + + (element surname + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element title + (make paragraph + use: book-titlepage-recto-style + font-size: (HSIZE 5) + line-spacing: (* (HSIZE 5) %line-spacing-factor%) + space-before: (* (HSIZE 5) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% 1 0) + (with-mode title-mode + (process-children-trim)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: book-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) +) + +(mode book-titlepage-verso-mode + (element abbrev + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element abstract ($semiformal-object$)) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: book-titlepage-verso-style + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element artpagenums + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element authorblurb + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element authorgroup + (let* ((editors (select-elements (children (current-node)) (normalize "editor")))) + (make paragraph + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (if (node-list-empty? editors) + (literal (gentext-by)) + (literal (gentext-edited-by))) + (literal "\no-break-space;") + (process-children-trim))))) + + (element authorinitials + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element confgroup + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element contractnum + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element contractsponsor + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element contrib + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element copyright + (make paragraph + use: book-titlepage-verso-style + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + ;; note: book-titlepage-corpauthor takes care of wrapping multiple + ;; corpauthors + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element date + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element edition + (make paragraph + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #f (not in-group)) ; nevermind, always put out the Edited by + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-edited-by)) + (literal "\no-break-space;") + (literal (author-string)))) + (make sequence + (literal (author-list-string)))))) + + (element firstname + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'start) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element isbn + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element issn + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element issuenum + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element jobtitle + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: book-titlepage-verso-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: book-titlepage-verso-style + font-size: (* (inherited-font-size) 0.8) + (process-children-trim))) + + (element lineage + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element orgname + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element othercredit + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element othername + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element pagenums + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element printhistory + (make display-group + use: book-titlepage-verso-style + (process-children))) + + (element productname + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element productnumber + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element pubdate + (make paragraph + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element publishername + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element pubsnumber + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element releaseinfo + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: book-titlepage-verso-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: book-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: book-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: book-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: book-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: book-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element shortaffil + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (if (first-sibling?) ": " "; ")) + (process-children))) + + (element surname + (make paragraph + use: book-titlepage-verso-style + (process-children))) + + (element title + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (with-mode title-mode + (process-children)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: book-titlepage-verso-style + (process-children))) +) + +;; == Title pages for PARTs ============================================= + +(define (part-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle"))) + +(define (part-titlepage-verso-elements) + '()) + +(define (part-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (part-titlepage-recto-elements) + (part-titlepage-verso-elements)))) + +(define (part-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (part-titlepage-recto-elements) + (part-titlepage-verso-elements)) + elements)) + ;; partintro is a special case... + (partintro (node-list-first + (node-list-filter-by-gi elements (list (normalize "partintro")))))) + (if (part-titlepage-content? elements side) +;; (make simple-page-sequence +;; page-n-columns: %titlepage-n-columns% +;; input-whitespace-treatment: 'collapse +;; use: default-text-style + (make sequence + + ;; This hack is required for the RTF backend. If an external-graphic + ;; is the first thing on the page, RTF doesn't seem to do the right + ;; thing (the graphic winds up on the baseline of the first line + ;; of the page, left justified). This "one point rule" fixes + ;; that problem. + (make paragraph + line-spacing: 1pt + (literal "")) + + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (part-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (part-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (part-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (part-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (part-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (part-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (part-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (part-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (part-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (part-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (part-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (part-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (part-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (part-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (part-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (part-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (part-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (part-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (part-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (part-titlepage-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (part-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (part-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (part-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (part-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (part-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (part-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (part-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (part-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (part-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (part-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (part-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (part-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (part-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (part-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (part-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (part-titlepage-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (part-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (part-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (part-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (part-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (part-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (part-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (part-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (part-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (part-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (part-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (part-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (part-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (part-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (part-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (part-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (part-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (part-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (part-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (part-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (part-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (part-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (part-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (part-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (part-titlepage-volumenum (node-list-first nl) side)) + (else + (part-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + + (if (and %generate-part-toc% + %generate-part-toc-on-titlepage% + (equal? side 'recto)) + (make display-group + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + ;; PartIntro is a special case + (if (and (equal? side 'recto) + (not (node-list-empty? partintro)) + %generate-partintro-on-titlepage%) + ($process-partintro$ partintro #f) + (empty-sosofo))) + (empty-sosofo)))) + +(define (part-titlepage-before node side) + (if (equal? side 'recto) + (cond + ((equal? (gi node) (normalize "corpauthor")) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;"))) + ((equal? (gi node) (normalize "authorgroup")) + (if (have-sibling? (normalize "corpauthor") node) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + ((equal? (gi node) (normalize "author")) + (if (or (have-sibling? (normalize "corpauthor") node) + (have-sibling? (normalize "authorgroup") node)) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + (else (empty-sosofo))) + (empty-sosofo))) + +(define (part-titlepage-default node side) + (let ((foo (debug (string-append "No part-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (part-titlepage-element node side) + (if (equal? side 'recto) + (with-mode part-titlepage-recto-mode + (process-node-list node)) + (with-mode part-titlepage-verso-mode + (process-node-list node)))) + +(define (part-titlepage-abbrev node side) + (part-titlepage-element node side)) +(define (part-titlepage-abstract node side) + (part-titlepage-element node side)) +(define (part-titlepage-address node side) + (part-titlepage-element node side)) +(define (part-titlepage-affiliation node side) + (part-titlepage-element node side)) +(define (part-titlepage-artpagenums node side) + (part-titlepage-element node side)) +(define (part-titlepage-author node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorblurb node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorgroup node side) + (part-titlepage-element node side)) +(define (part-titlepage-authorinitials node side) + (part-titlepage-element node side)) +(define (part-titlepage-bibliomisc node side) + (part-titlepage-element node side)) +(define (part-titlepage-biblioset node side) + (part-titlepage node side)) +(define (part-titlepage-bookbiblio node side) + (part-titlepage node side)) +(define (part-titlepage-citetitle node side) + (part-titlepage-element node side)) +(define (part-titlepage-collab node side) + (part-titlepage-element node side)) +(define (part-titlepage-confgroup node side) + (part-titlepage-element node side)) +(define (part-titlepage-contractnum node side) + (part-titlepage-element node side)) +(define (part-titlepage-contractsponsor node side) + (part-titlepage-element node side)) +(define (part-titlepage-contrib node side) + (part-titlepage-element node side)) +(define (part-titlepage-copyright node side) + (part-titlepage-element node side)) + +(define (part-titlepage-corpauthor node side) + (if (equal? side 'recto) + (book-titlepage-element node side) + (if (first-sibling? node) + (make paragraph + (with-mode book-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (part-titlepage-corpname node side) + (part-titlepage-element node side)) +(define (part-titlepage-date node side) + (part-titlepage-element node side)) +(define (part-titlepage-edition node side) + (part-titlepage-element node side)) +(define (part-titlepage-editor node side) + (part-titlepage-element node side)) +(define (part-titlepage-firstname node side) + (part-titlepage-element node side)) +(define (part-titlepage-graphic node side) + (part-titlepage-element node side)) +(define (part-titlepage-honorific node side) + (part-titlepage-element node side)) +(define (part-titlepage-indexterm node side) + (part-titlepage-element node side)) +(define (part-titlepage-invpartnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-isbn node side) + (part-titlepage-element node side)) +(define (part-titlepage-issn node side) + (part-titlepage-element node side)) +(define (part-titlepage-issuenum node side) + (part-titlepage-element node side)) +(define (part-titlepage-itermset node side) + (part-titlepage-element node side)) +(define (part-titlepage-keywordset node side) + (part-titlepage-element node side)) +(define (part-titlepage-legalnotice node side) + (part-titlepage-element node side)) +(define (part-titlepage-lineage node side) + (part-titlepage-element node side)) +(define (part-titlepage-mediaobject node side) + (part-titlepage-element node side)) +(define (part-titlepage-modespec node side) + (part-titlepage-element node side)) +(define (part-titlepage-orgname node side) + (part-titlepage-element node side)) +(define (part-titlepage-othercredit node side) + (part-titlepage-element node side)) +(define (part-titlepage-othername node side) + (part-titlepage-element node side)) +(define (part-titlepage-pagenums node side) + (part-titlepage-element node side)) +(define (part-titlepage-printhistory node side) + (part-titlepage-element node side)) +(define (part-titlepage-productname node side) + (part-titlepage-element node side)) +(define (part-titlepage-productnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-pubdate node side) + (part-titlepage-element node side)) +(define (part-titlepage-publisher node side) + (part-titlepage-element node side)) +(define (part-titlepage-publishername node side) + (part-titlepage-element node side)) +(define (part-titlepage-pubsnumber node side) + (part-titlepage-element node side)) +(define (part-titlepage-releaseinfo node side) + (part-titlepage-element node side)) +(define (part-titlepage-revhistory node side) + (part-titlepage-element node side)) +(define (part-titlepage-seriesinfo node side) + (part-titlepage-element node side)) +(define (part-titlepage-seriesvolnums node side) + (part-titlepage-element node side)) +(define (part-titlepage-subjectset node side) + (part-titlepage-element node side)) +(define (part-titlepage-subtitle node side) + (part-titlepage-element node side)) +(define (part-titlepage-surname node side) + (part-titlepage-element node side)) +(define (part-titlepage-title node side) + (part-titlepage-element node side)) +(define (part-titlepage-titleabbrev node side) + (part-titlepage-element node side)) +(define (part-titlepage-volumenum node side) + (part-titlepage-element node side)) + +(define part-titlepage-recto-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 1))) + +(define part-titlepage-verso-style + (style + font-family-name: %body-font-family%)) + +(mode part-titlepage-recto-mode + (element abbrev + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element abstract + (make display-group + use: part-titlepage-recto-style + quadding: 'start + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element (abstract para) + (make paragraph + use: part-titlepage-recto-style + quadding: 'start + (process-children))) + + (element address + (make display-group + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make display-group + use: part-titlepage-recto-style + (process-children))) + + (element artpagenums + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element authorblurb + (make display-group + use: part-titlepage-recto-style + quadding: 'start + (process-children))) + + (element (authorblurb para) + (make paragraph + use: part-titlepage-recto-style + quadding: 'start + (process-children))) + + (element authorgroup + (make display-group + (process-children))) + + (element authorinitials + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element confgroup + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractnum + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractsponsor + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contrib + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element copyright + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + space-before: (* (HSIZE 2) %head-before-factor%) + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + (make sequence + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (process-children)) + ;; This paragraph is a hack to get the spacing right. + ;; Authors always have an affiliation paragraph below them, even if + ;; it's empty, so corpauthors need one too. + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal "\no-break-space;")))) + + (element corpname + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element date + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element edition + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor% 6) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal (gentext-edited-by))) + (empty-sosofo)) + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal editor-name))))) + + (element firstname + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'center) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element isbn + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issn + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issuenum + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element jobtitle + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: part-titlepage-recto-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: part-titlepage-recto-style + quadding: 'start + line-spacing: (* 0.8 (inherited-line-spacing)) + font-size: (* 0.8 (inherited-font-size)) + (process-children))) + + (element lineage + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element orgname + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element othername + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pagenums + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element printhistory + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productname + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productnumber + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubdate + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publisher + (make display-group + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publishername + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubsnumber + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element releaseinfo + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: part-titlepage-recto-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: part-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: part-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: part-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: part-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: part-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element shortaffil + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + quadding: %division-subtitle-quadding% + keep-with-next?: #t + (process-children-trim))) + + (element surname + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element title + (let ((division (ancestor-member (current-node) (division-element-list)))) + (make paragraph + use: part-titlepage-recto-style + font-size: (HSIZE 5) + line-spacing: (* (HSIZE 5) %line-spacing-factor%) + space-before: (* (HSIZE 5) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% 1 0) + (if (string=? (element-label division) "") + (empty-sosofo) + (literal (element-label division) + (gentext-label-title-sep (gi division)))) + (with-mode title-mode + (process-children))))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: part-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) +) + +(mode part-titlepage-verso-mode + (element abbrev + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element abstract ($semiformal-object$)) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: part-titlepage-verso-style + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element artpagenums + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element authorblurb + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element authorgroup + (make paragraph + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (process-children-trim)))) + + (element authorinitials + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element confgroup + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element contractnum + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element contractsponsor + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element contrib + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element copyright + (make paragraph + use: part-titlepage-verso-style + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + ;; note: part-titlepage-corpauthor takes care of wrapping multiple + ;; corpauthors + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element date + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element edition + (make paragraph + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-edited-by)) + (literal "\no-break-space;") + (literal (author-string)))) + (make sequence + (literal (author-string)))))) + + (element firstname + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'start) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element isbn + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element issn + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element issuenum + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element jobtitle + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: part-titlepage-verso-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: part-titlepage-verso-style + font-size: (* (inherited-font-size) 0.8) + (process-children-trim))) + + (element lineage + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element orgname + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element othercredit + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element othername + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element pagenums + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element printhistory + (make display-group + use: part-titlepage-verso-style + (process-children))) + + (element productname + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element productnumber + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element pubdate + (make paragraph + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element publishername + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element pubsnumber + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element releaseinfo + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: part-titlepage-verso-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: part-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: part-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: part-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: part-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: part-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revremark))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element shortaffil + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (if (first-sibling?) ": " "; ")) + (process-children))) + + (element surname + (make paragraph + use: part-titlepage-verso-style + (process-children))) + + (element title + (let ((division (ancestor-member (current-node) (division-element-list)))) + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (if (string=? (element-label division) "") + (empty-sosofo) + (literal (element-label division) + (gentext-label-title-sep (gi division)))) + (with-mode title-mode + (process-children))))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: part-titlepage-verso-style + (process-children))) +) + +;; == Title pages for ARTICLEs ========================================== +;; +;; Note: Article title pages are a little different in that they do not +;; create their own simple-page-sequence. +;; + +(define (article-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "releaseinfo") + (normalize "copyright") + (normalize "pubdate") + (normalize "revhistory") + (normalize "abstract"))) + +(define (article-titlepage-verso-elements) + '()) + +(define (article-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (article-titlepage-recto-elements) + (article-titlepage-verso-elements)))) + +(define (article-titlepage elements #!optional (side 'recto)) + (let* ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (article-titlepage-recto-elements) + (article-titlepage-verso-elements)) + elements))) + (if (article-titlepage-content? elements side) + (make sequence + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (article-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (article-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (article-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (article-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (article-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (article-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (article-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (article-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (article-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (article-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (article-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (article-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (article-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (article-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (article-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (article-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (article-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (article-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (article-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (article-titlepage-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (article-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (article-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (article-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (article-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (article-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (article-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (article-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (article-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (article-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (article-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (article-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (article-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (article-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (article-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (article-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (article-titlepage-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (article-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (article-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (article-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (article-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (article-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (article-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (article-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (article-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (article-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (article-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (article-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (article-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (article-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (article-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (article-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (article-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (article-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (article-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (article-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (article-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (article-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (article-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (article-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (article-titlepage-volumenum (node-list-first nl) side)) + (else + (article-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + + (if (and %generate-article-toc% + %generate-article-toc-on-titlepage% + (equal? side 'recto)) + (make display-group + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo))) + (empty-sosofo)))) + +(define (article-titlepage-before node side) + (empty-sosofo)) + +(define (article-titlepage-default node side) + (let ((foo (debug (string-append "No article-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (article-titlepage-element node side) + (if (equal? side 'recto) + (with-mode article-titlepage-recto-mode + (process-node-list node)) + (with-mode article-titlepage-verso-mode + (process-node-list node)))) + +(define (article-titlepage-abbrev node side) + (article-titlepage-element node side)) +(define (article-titlepage-abstract node side) + (article-titlepage-element node side)) +(define (article-titlepage-address node side) + (article-titlepage-element node side)) +(define (article-titlepage-affiliation node side) + (article-titlepage-element node side)) +(define (article-titlepage-artpagenums node side) + (article-titlepage-element node side)) +(define (article-titlepage-author node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorblurb node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorgroup node side) + (article-titlepage-element node side)) +(define (article-titlepage-authorinitials node side) + (article-titlepage-element node side)) +(define (article-titlepage-bibliomisc node side) + (article-titlepage-element node side)) +(define (article-titlepage-biblioset node side) + (article-titlepage node side)) +(define (article-titlepage-bookbiblio node side) + (article-titlepage node side)) +(define (article-titlepage-citetitle node side) + (article-titlepage-element node side)) +(define (article-titlepage-collab node side) + (article-titlepage-element node side)) +(define (article-titlepage-confgroup node side) + (article-titlepage-element node side)) +(define (article-titlepage-contractnum node side) + (article-titlepage-element node side)) +(define (article-titlepage-contractsponsor node side) + (article-titlepage-element node side)) +(define (article-titlepage-contrib node side) + (article-titlepage-element node side)) +(define (article-titlepage-copyright node side) + (article-titlepage-element node side)) + +(define (article-titlepage-corpauthor node side) + (if (equal? side 'recto) + (book-titlepage-element node side) + (if (first-sibling? node) + (make paragraph + (with-mode book-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (article-titlepage-corpname node side) + (article-titlepage-element node side)) +(define (article-titlepage-date node side) + (article-titlepage-element node side)) +(define (article-titlepage-edition node side) + (article-titlepage-element node side)) +(define (article-titlepage-editor node side) + (article-titlepage-element node side)) +(define (article-titlepage-firstname node side) + (article-titlepage-element node side)) +(define (article-titlepage-graphic node side) + (article-titlepage-element node side)) +(define (article-titlepage-honorific node side) + (article-titlepage-element node side)) +(define (article-titlepage-indexterm node side) + (article-titlepage-element node side)) +(define (article-titlepage-invpartnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-isbn node side) + (article-titlepage-element node side)) +(define (article-titlepage-issn node side) + (article-titlepage-element node side)) +(define (article-titlepage-issuenum node side) + (article-titlepage-element node side)) +(define (article-titlepage-itermset node side) + (article-titlepage-element node side)) +(define (article-titlepage-keywordset node side) + (article-titlepage-element node side)) +(define (article-titlepage-legalnotice node side) + (article-titlepage-element node side)) +(define (article-titlepage-lineage node side) + (article-titlepage-element node side)) +(define (article-titlepage-mediaobject node side) + (article-titlepage-element node side)) +(define (article-titlepage-modespec node side) + (article-titlepage-element node side)) +(define (article-titlepage-orgname node side) + (article-titlepage-element node side)) +(define (article-titlepage-othercredit node side) + (article-titlepage-element node side)) +(define (article-titlepage-othername node side) + (article-titlepage-element node side)) +(define (article-titlepage-pagenums node side) + (article-titlepage-element node side)) +(define (article-titlepage-printhistory node side) + (article-titlepage-element node side)) +(define (article-titlepage-productname node side) + (article-titlepage-element node side)) +(define (article-titlepage-productnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-pubdate node side) + (article-titlepage-element node side)) +(define (article-titlepage-publisher node side) + (article-titlepage-element node side)) +(define (article-titlepage-publishername node side) + (article-titlepage-element node side)) +(define (article-titlepage-pubsnumber node side) + (article-titlepage-element node side)) +(define (article-titlepage-releaseinfo node side) + (article-titlepage-element node side)) +(define (article-titlepage-revhistory node side) + (article-titlepage-element node side)) +(define (article-titlepage-seriesinfo node side) + (article-titlepage-element node side)) +(define (article-titlepage-seriesvolnums node side) + (article-titlepage-element node side)) +(define (article-titlepage-subjectset node side) + (article-titlepage-element node side)) +(define (article-titlepage-subtitle node side) + (article-titlepage-element node side)) +(define (article-titlepage-surname node side) + (article-titlepage-element node side)) +(define (article-titlepage-title node side) + (article-titlepage-element node side)) +(define (article-titlepage-titleabbrev node side) + (article-titlepage-element node side)) +(define (article-titlepage-volumenum node side) + (article-titlepage-element node side)) + +(define article-titlepage-recto-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 1))) + +(define article-titlepage-verso-style + (style + font-family-name: %body-font-family%)) + +(mode article-titlepage-recto-mode + (element abbrev + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element abstract + (make display-group + use: article-titlepage-verso-style ;; EVEN THOUGH IT'S RECTO! + quadding: 'start + start-indent: (+ (inherited-start-indent) (/ %body-width% 24)) + end-indent: (+ (inherited-end-indent) (/ %body-width% 24)) + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make display-group + use: article-titlepage-recto-style + (process-children))) + + (element artpagenums + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %article-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element authorblurb + (make display-group + use: article-titlepage-recto-style + quadding: 'start + (process-children))) + + (element (authorblurb para) + (make paragraph + use: article-titlepage-recto-style + quadding: 'start + (process-children))) + + (element authorgroup + (make display-group + (process-children))) + + (element authorinitials + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element confgroup + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element contractnum + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element contractsponsor + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element contrib + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element copyright + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + space-before: (* (HSIZE 2) %head-before-factor%) + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + (make sequence + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %article-title-quadding% + keep-with-next?: #t + (process-children)) + ;; This paragraph is a hack to get the spacing right. + ;; Authors always have an affiliation paragraph below them, even if + ;; it's empty, so corpauthors need one too. + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %article-title-quadding% + keep-with-next?: #t + (literal "\no-break-space;")))) + + (element corpname + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element date + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element edition + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor% 6) + quadding: %article-title-quadding% + keep-with-next?: #t + (literal (gentext-edited-by))) + (empty-sosofo)) + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %article-title-quadding% + keep-with-next?: #t + (literal editor-name))))) + + (element firstname + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'center) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element isbn + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element issn + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element issuenum + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element jobtitle + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element keyword + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: article-titlepage-recto-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: article-titlepage-recto-style + quadding: 'start + line-spacing: (* 0.8 (inherited-line-spacing)) + font-size: (* 0.8 (inherited-font-size)) + (process-children))) + + (element lineage + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element orgname + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %article-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element othername + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element pagenums + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element printhistory + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element productname + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element productnumber + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element pubdate + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element publisher + (make display-group + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element publishername + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element pubsnumber + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element releaseinfo + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: article-titlepage-recto-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: article-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: article-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: article-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: article-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: article-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element shortaffil + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + quadding: %article-subtitle-quadding% + keep-with-next?: #t + (process-children-trim))) + + (element surname + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) + + (element title + (make paragraph + use: article-titlepage-recto-style + font-size: (HSIZE 5) + line-spacing: (* (HSIZE 5) %line-spacing-factor%) + space-before: (* (HSIZE 5) %head-before-factor%) + quadding: %article-title-quadding% + keep-with-next?: #t + (with-mode title-mode + (process-children-trim)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: article-titlepage-recto-style + quadding: %article-title-quadding% + (process-children))) +) + +(mode article-titlepage-verso-mode + (element abbrev + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element abstract ($semiformal-object$)) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: article-titlepage-verso-style + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element artpagenums + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element authorblurb + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element authorgroup + (make paragraph + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (process-children-trim)))) + + (element authorinitials + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element confgroup + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element contractnum + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element contractsponsor + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element contrib + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element copyright + (make paragraph + use: article-titlepage-verso-style + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + ;; note: article-titlepage-corpauthor takes care of wrapping multiple + ;; corpauthors + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element date + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element edition + (make paragraph + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-edited-by)) + (literal "\no-break-space;") + (literal (author-string)))) + (make sequence + (literal (author-string)))))) + + (element firstname + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'start) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element isbn + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element issn + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element issuenum + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element jobtitle + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: article-titlepage-verso-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: article-titlepage-verso-style + font-size: (* (inherited-font-size) 0.8) + (process-children-trim))) + + (element lineage + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element orgname + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element othercredit + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element othername + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element pagenums + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element printhistory + (make display-group + use: article-titlepage-verso-style + (process-children))) + + (element productname + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element productnumber + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element pubdate + (make paragraph + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element publishername + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element pubsnumber + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element releaseinfo + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: article-titlepage-verso-style + font-family-name: %title-font-family% + font-weight: 'bold + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (node-list-empty? revnumber) + (empty-sosofo) + (make paragraph + use: article-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (node-list-empty? revdate) + (empty-sosofo) + (make paragraph + use: article-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (node-list-empty? revauthor) + (empty-sosofo) + (make paragraph + use: article-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor))))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: article-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: article-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element shortaffil + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (if (first-sibling?) ": " "; ")) + (process-children))) + + (element surname + (make paragraph + use: article-titlepage-verso-style + (process-children))) + + (element title + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (with-mode title-mode + (process-children)))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: article-titlepage-verso-style + (process-children))) + +) + +;; == Title pages for REFERENCEs ======================================== + +(define (reference-titlepage-recto-elements) + (list (normalize "title") + (normalize "subtitle") + (normalize "corpauthor") + (normalize "authorgroup") + (normalize "author") + (normalize "editor"))) + +(define (reference-titlepage-verso-elements) + '()) + +(define (reference-titlepage-content? elements side) + (titlepage-content? elements (if (equal? side 'recto) + (reference-titlepage-recto-elements) + (reference-titlepage-verso-elements)))) + +(define (reference-titlepage elements #!optional (side 'recto)) + (let ((nodelist (titlepage-nodelist + (if (equal? side 'recto) + (reference-titlepage-recto-elements) + (reference-titlepage-verso-elements)) + elements)) + ;; partintro is a special case... + (partintro (node-list-first + (node-list-filter-by-gi elements (list (normalize "partintro")))))) + (if (reference-titlepage-content? elements side) + (make simple-page-sequence + page-n-columns: %titlepage-n-columns% + input-whitespace-treatment: 'collapse + use: default-text-style + + ;; This hack is required for the RTF backend. If an external-graphic + ;; is the first thing on the page, RTF doesn't seem to do the right + ;; thing (the graphic winds up on the baseline of the first line + ;; of the page, left justified). This "one point rule" fixes + ;; that problem. + (make paragraph + line-spacing: 1pt + (literal "")) + + (let loop ((nl nodelist) (lastnode (empty-node-list))) + (if (node-list-empty? nl) + (empty-sosofo) + (make sequence + (if (or (node-list-empty? lastnode) + (not (equal? (gi (node-list-first nl)) + (gi lastnode)))) + (reference-titlepage-before (node-list-first nl) side) + (empty-sosofo)) + (cond + ((equal? (gi (node-list-first nl)) (normalize "abbrev")) + (reference-titlepage-abbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "abstract")) + (reference-titlepage-abstract (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "address")) + (reference-titlepage-address (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "affiliation")) + (reference-titlepage-affiliation (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "artpagenums")) + (reference-titlepage-artpagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "author")) + (reference-titlepage-author (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorblurb")) + (reference-titlepage-authorblurb (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorgroup")) + (reference-titlepage-authorgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "authorinitials")) + (reference-titlepage-authorinitials (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bibliomisc")) + (reference-titlepage-bibliomisc (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "biblioset")) + (reference-titlepage-biblioset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "bookbiblio")) + (reference-titlepage-bookbiblio (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "citetitle")) + (reference-titlepage-citetitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "collab")) + (reference-titlepage-collab (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "confgroup")) + (reference-titlepage-confgroup (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractnum")) + (reference-titlepage-contractnum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contractsponsor")) + (reference-titlepage-contractsponsor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "contrib")) + (reference-titlepage-contrib (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "copyright")) + (reference-titlepage-copyright (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpauthor")) + (reference-titlepage-corpauthor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "corpname")) + (reference-titlepage-corpname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "date")) + (reference-titlepage-date (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "edition")) + (reference-titlepage-edition (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "editor")) + (reference-titlepage-editor (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "firstname")) + (reference-titlepage-firstname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "graphic")) + (reference-titlepage-graphic (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "honorific")) + (reference-titlepage-honorific (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "indexterm")) + (reference-titlepage-indexterm (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "invpartnumber")) + (reference-titlepage-invpartnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "isbn")) + (reference-titlepage-isbn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issn")) + (reference-titlepage-issn (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "issuenum")) + (reference-titlepage-issuenum (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "itermset")) + (reference-titlepage-itermset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "keywordset")) + (reference-titlepage-keywordset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "legalnotice")) + (reference-titlepage-legalnotice (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "lineage")) + (reference-titlepage-lineage (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "mediaobject")) + (reference-titlepage-mediaobject (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "modespec")) + (reference-titlepage-modespec (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "orgname")) + (reference-titlepage-orgname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othercredit")) + (reference-titlepage-othercredit (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "othername")) + (reference-titlepage-othername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pagenums")) + (reference-titlepage-pagenums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "printhistory")) + (reference-titlepage-printhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productname")) + (reference-titlepage-productname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "productnumber")) + (reference-titlepage-productnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubdate")) + (reference-titlepage-pubdate (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publisher")) + (reference-titlepage-publisher (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "publishername")) + (reference-titlepage-publishername (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "pubsnumber")) + (reference-titlepage-pubsnumber (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "releaseinfo")) + (reference-titlepage-releaseinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "revhistory")) + (reference-titlepage-revhistory (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesinfo")) + (reference-titlepage-seriesinfo (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "seriesvolnums")) + (reference-titlepage-seriesvolnums (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subjectset")) + (reference-titlepage-subjectset (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "subtitle")) + (reference-titlepage-subtitle (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "surname")) + (reference-titlepage-surname (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "title")) + (reference-titlepage-title (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "titleabbrev")) + (reference-titlepage-titleabbrev (node-list-first nl) side)) + ((equal? (gi (node-list-first nl)) (normalize "volumenum")) + (reference-titlepage-volumenum (node-list-first nl) side)) + (else + (reference-titlepage-default (node-list-first nl) side))) + (loop (node-list-rest nl) (node-list-first nl))))) + + (if (and %generate-reference-toc% + %generate-reference-toc-on-titlepage% + (equal? side 'recto)) + (make display-group + (build-toc (current-node) + (toc-depth (current-node)))) + (empty-sosofo)) + + ;; PartIntro is a special case + (if (and (equal? side 'recto) + (not (node-list-empty? partintro)) + %generate-partintro-on-titlepage%) + ($process-partintro$ partintro #f) + (empty-sosofo))) + + (empty-sosofo)))) + +(define (reference-titlepage-before node side) + (if (equal? side 'recto) + (cond + ((equal? (gi node) (normalize "corpauthor")) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;"))) + ((equal? (gi node) (normalize "authorgroup")) + (if (have-sibling? (normalize "corpauthor") node) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + ((equal? (gi node) (normalize "author")) + (if (or (have-sibling? (normalize "corpauthor") node) + (have-sibling? (normalize "authorgroup") node)) + (empty-sosofo) + (make paragraph + space-after: (* (HSIZE 5) %head-after-factor% 8) + (literal "\no-break-space;")))) + (else (empty-sosofo))) + (empty-sosofo))) + +(define (reference-titlepage-default node side) + (let ((foo (debug (string-append "No reference-titlepage-* for " (gi node) "!")))) + (empty-sosofo))) + +(define (reference-titlepage-element node side) + (if (equal? side 'recto) + (with-mode reference-titlepage-recto-mode + (process-node-list node)) + (with-mode reference-titlepage-verso-mode + (process-node-list node)))) + +(define (reference-titlepage-abbrev node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-abstract node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-address node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-affiliation node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-artpagenums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-author node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorblurb node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorgroup node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-authorinitials node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-bibliomisc node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-biblioset node side) + (reference-titlepage node side)) +(define (reference-titlepage-bookbiblio node side) + (reference-titlepage node side)) +(define (reference-titlepage-citetitle node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-collab node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-confgroup node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contractnum node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contractsponsor node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-contrib node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-copyright node side) + (reference-titlepage-element node side)) + +(define (reference-titlepage-corpauthor node side) + (if (equal? side 'recto) + (book-titlepage-element node side) + (if (first-sibling? node) + (make paragraph + (with-mode book-titlepage-verso-mode + (process-node-list + (select-elements (children (parent node)) + (normalize "corpauthor"))))) + (empty-sosofo)))) + +(define (reference-titlepage-corpname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-date node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-edition node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-editor node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-firstname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-graphic node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-honorific node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-indexterm node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-invpartnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-isbn node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-issn node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-issuenum node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-itermset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-keywordset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-legalnotice node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-lineage node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-mediaobject node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-modespec node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-orgname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-othercredit node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-othername node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pagenums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-printhistory node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-productname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-productnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pubdate node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-publisher node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-publishername node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-pubsnumber node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-releaseinfo node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-revhistory node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-seriesinfo node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-seriesvolnums node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-subjectset node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-subtitle node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-surname node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-title node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-titleabbrev node side) + (reference-titlepage-element node side)) +(define (reference-titlepage-volumenum node side) + (reference-titlepage-element node side)) + +(define reference-titlepage-recto-style + (style + font-family-name: %title-font-family% + font-weight: 'bold + font-size: (HSIZE 1))) + +(define reference-titlepage-verso-style + (style + font-family-name: %body-font-family%)) + +(mode reference-titlepage-recto-mode + (element abbrev + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element abstract + (make display-group + use: reference-titlepage-recto-style + quadding: 'start + ($semiformal-object$))) + + (element (abstract title) (empty-sosofo)) + + (element (abstract para) + (make paragraph + use: reference-titlepage-recto-style + quadding: 'start + (process-children))) + + (element address + (make display-group + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make display-group + use: reference-titlepage-recto-style + (process-children))) + + (element artpagenums + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element author + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element authorblurb + (make display-group + use: reference-titlepage-recto-style + quadding: 'start + (process-children))) + + (element (authorblurb para) + (make paragraph + use: reference-titlepage-recto-style + quadding: 'start + (process-children))) + + (element authorgroup + (make display-group + (process-children))) + + (element authorinitials + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element confgroup + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractnum + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contractsponsor + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element contrib + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element copyright + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + space-before: (* (HSIZE 2) %head-before-factor%) + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + (make sequence + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (process-children)) + ;; This paragraph is a hack to get the spacing right. + ;; Authors always have an affiliation paragraph below them, even if + ;; it's empty, so corpauthors need one too. + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal "\no-break-space;")))) + + (element corpname + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element date + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element edition + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + (let ((editor-name (author-string))) + (make sequence + (if (first-sibling?) + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 1) + line-spacing: (* (HSIZE 1) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor% 6) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal (gentext-edited-by))) + (empty-sosofo)) + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-after: (* (HSIZE 2) %head-after-factor% 4) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal editor-name))))) + + (element firstname + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'center) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element isbn + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issn + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element issuenum + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element jobtitle + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: reference-titlepage-recto-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: reference-titlepage-recto-style + quadding: 'start + line-spacing: (* 0.8 (inherited-line-spacing)) + font-size: (* 0.8 (inherited-font-size)) + (process-children))) + + (element lineage + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element orgname + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element othercredit + (let ((author-name (author-string)) + (author-affil (select-elements (children (current-node)) + (normalize "affiliation")))) + (make sequence + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 3) + line-spacing: (* (HSIZE 3) %line-spacing-factor%) + space-before: (* (HSIZE 2) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + (literal author-name)) + (process-node-list author-affil)))) + + (element othername + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pagenums + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element printhistory + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productname + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element productnumber + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubdate + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publisher + (make display-group + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element publishername + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element pubsnumber + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element releaseinfo + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: reference-titlepage-recto-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: reference-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: reference-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: reference-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: reference-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: reference-titlepage-recto-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element shortaffil + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 4) + line-spacing: (* (HSIZE 4) %line-spacing-factor%) + space-before: (* (HSIZE 4) %head-before-factor%) + quadding: %division-subtitle-quadding% + keep-with-next?: #t + (process-children-trim))) + + (element surname + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) + + (element title + (let ((ref (ancestor-member (current-node) + (list (normalize "reference"))))) + (make paragraph + use: reference-titlepage-recto-style + font-size: (HSIZE 5) + line-spacing: (* (HSIZE 5) %line-spacing-factor%) + space-before: (* (HSIZE 5) %head-before-factor%) + quadding: %division-title-quadding% + keep-with-next?: #t + heading-level: (if %generate-heading-level% 1 0) + (literal (element-label ref) + (gentext-label-title-sep (gi ref))) + (with-mode title-mode + (process-children))))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: reference-titlepage-recto-style + quadding: %division-title-quadding% + (process-children))) +) + +(mode reference-titlepage-verso-mode + (element abbrev + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element abstract ($semiformal-object$)) + + (element (abstract title) (empty-sosofo)) + + (element address + (make display-group + use: reference-titlepage-verso-style + (with-mode titlepage-address-mode + ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) + + (element affiliation + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element artpagenums + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element author + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element authorblurb + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element authorgroup + (make paragraph + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (process-children-trim)))) + + (element authorinitials + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element bibliomisc (process-children)) + + (element bibliomset (process-children)) + + (element collab + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element confgroup + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element contractnum + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element contractsponsor + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element contrib + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element copyright + (make paragraph + use: reference-titlepage-verso-style + (literal (gentext-element-name (current-node))) + (literal "\no-break-space;") + (literal (dingbat "copyright")) + (literal "\no-break-space;") + (process-children))) + + (element (copyright year) + (make sequence + (process-children) + (if (not (last-sibling? (current-node))) + (literal ", ") + (literal " ")))) + + (element (copyright holder) ($charseq$)) + + (element corpauthor + ;; note: reference-titlepage-corpauthor takes care of wrapping multiple + ;; corpauthors + (make sequence + (if (first-sibling?) + (if (equal? (gi (parent (current-node))) (normalize "authorgroup")) + (empty-sosofo) + (literal (gentext-by) " ")) + (literal ", ")) + (process-children))) + + (element corpname + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element date + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element edition + (make paragraph + (process-children) + (literal "\no-break-space;") + (literal (gentext-element-name-space (gi (current-node)))))) + + (element editor + ;; Print the editor name. + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (or #t (not in-group)) ; nevermind, always put out the Edited by + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-edited-by)) + (literal "\no-break-space;") + (literal (author-string)))) + (make sequence + (literal (author-string)))))) + + (element firstname + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element graphic + (let* ((nd (current-node)) + (fileref (attribute-string "fileref" nd)) + (entityref (attribute-string "entityref" nd)) + (format (attribute-string "format" nd)) + (align (attribute-string "align" nd))) + (if (or fileref entityref) + (make external-graphic + notation-system-id: (if format format "") + entity-system-id: (if fileref + (graphic-file fileref) + (if entityref + (entity-generated-system-id entityref) + "")) + display?: #t + display-alignment: 'start) + (empty-sosofo)))) + + (element honorific + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element isbn + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element issn + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element itermset (empty-sosofo)) + + (element invpartnumber + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element issuenum + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element jobtitle + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element keywordset + (make paragraph + quadding: 'start + (make sequence + font-weight: 'bold + (literal "Keywords: ")) + (process-children))) + + (element (keyword) + (make sequence + (process-children) + (if (not (last-sibling?)) + (literal ", ") + (literal "")))) + + (element legalnotice + (make display-group + use: reference-titlepage-verso-style + ($semiformal-object$))) + + (element (legalnotice title) (empty-sosofo)) + + (element (legalnotice para) + (make paragraph + use: reference-titlepage-verso-style + font-size: (* (inherited-font-size) 0.8) + (process-children-trim))) + + (element lineage + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element modespec (empty-sosofo)) + + (element orgdiv + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element orgname + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element othercredit + ;; Print the author name. Handle the case where there's no AUTHORGROUP + (let ((in-group (have-ancestor? (normalize "authorgroup") (current-node)))) + (if (not in-group) + (make paragraph + ;; Hack to get the spacing right below the author name line... + space-after: (* %bf-size% %line-spacing-factor%) + (make sequence + (literal (gentext-by)) + (literal "\no-break-space;") + (literal (author-list-string)))) + (make sequence + (literal (author-list-string)))))) + + (element othername + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element pagenums + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element printhistory + (make display-group + use: reference-titlepage-verso-style + (process-children))) + + (element productname + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element productnumber + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element pubdate + (make paragraph + (literal (gentext-element-name-space (gi (current-node)))) + (process-children))) + + (element publisher + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element publishername + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element pubsnumber + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element releaseinfo + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element revhistory + (make sequence + (make paragraph + use: reference-titlepage-verso-style + space-before: (* (HSIZE 3) %head-before-factor%) + space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) + (literal (gentext-element-name (current-node)))) + (make table + before-row-border: #f + (process-children)))) + + (element (revhistory revision) + (let ((revnumber (select-elements (descendants (current-node)) + (normalize "revnumber"))) + (revdate (select-elements (descendants (current-node)) + (normalize "date"))) + (revauthor (select-elements (descendants (current-node)) + (normalize "authorinitials"))) + (revremark (select-elements (descendants (current-node)) + (normalize "revremark"))) + (revdescription (select-elements (descendants (current-node)) + (normalize "revdescription")))) + (make sequence + (make table-row + (make table-cell + column-number: 1 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + (if (not (node-list-empty? revnumber)) + (make paragraph + use: reference-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-element-name-space (current-node))) + (process-node-list revnumber)) + (empty-sosofo))) + (make table-cell + column-number: 2 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revdate)) + (make paragraph + use: reference-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdate)) + (empty-sosofo))) + (make table-cell + column-number: 3 + n-columns-spanned: 1 + n-rows-spanned: 1 + start-indent: 0pt + cell-before-column-margin: (if (equal? (print-backend) 'tex) + 6pt + 0pt) + (if (not (node-list-empty? revauthor)) + (make paragraph + use: reference-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (literal (gentext-revised-by)) + (process-node-list revauthor)) + (empty-sosofo)))) + (make table-row + cell-after-row-border: #f + (make table-cell + column-number: 1 + n-columns-spanned: 3 + n-rows-spanned: 1 + start-indent: 0pt + (cond ((not (node-list-empty? revremark)) + (make paragraph + use: reference-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + space-after: (if (last-sibling?) + 0pt + (/ %block-sep% 2)) + (process-node-list revremark))) + ((not (node-list-empty? revdescription)) + (make sequence + use: reference-titlepage-verso-style + font-size: %bf-size% + font-weight: 'medium + (process-node-list revdescription))) + (else (empty-sosofo)))))))) + + (element (revision revnumber) (process-children-trim)) + (element (revision date) (process-children-trim)) + (element (revision authorinitials) (process-children-trim)) + (element (revision revremark) (process-children-trim)) + (element (revision revdescription) (process-children)) + + (element seriesvolnums + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element shortaffil + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element subjectset (empty-sosofo)) + + (element subtitle + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (if (first-sibling?) ": " "; ")) + (process-children))) + + (element surname + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + + (element title + (let ((ref (ancestor-member (current-node) + (list (normalize "reference"))))) + (make sequence + font-family-name: %title-font-family% + font-weight: 'bold + (literal (element-label ref) + (gentext-label-title-sep (gi ref))) + (with-mode title-mode + (process-children))))) + + (element formalpara ($para-container$)) + (element (formalpara title) ($runinhead$)) + (element (formalpara para) (make sequence (process-children))) + + (element titleabbrev (empty-sosofo)) + + (element volumenum + (make paragraph + use: reference-titlepage-verso-style + (process-children))) + +) diff --git a/print/dbverb.dsl b/print/dbverb.dsl new file mode 100644 index 0000000..cb22cb1 --- /dev/null +++ b/print/dbverb.dsl @@ -0,0 +1,222 @@ +;; $Id: dbverb.dsl,v 1.6 2004/10/09 19:46:33 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define verbatim-style + (style + font-family-name: %mono-font-family% + font-size: (* (inherited-font-size) + (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0)) + font-weight: 'medium + font-posture: 'upright + line-spacing: (* (* (inherited-font-size) + (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0)) + %line-spacing-factor%) + first-line-start-indent: 0pt + lines: 'asis + input-whitespace-treatment: 'preserve)) + +(define inline-verbatim-style + (style + font-family-name: %mono-font-family% + font-size: (* (inherited-font-size) + (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0)) + font-weight: 'medium + font-posture: 'upright + lines: 'asis + input-whitespace-treatment: 'preserve)) + +(define linespecific-style + (style + first-line-start-indent: 0pt + lines: 'asis + input-whitespace-treatment: 'preserve)) + +(define ($format-indent$ indent) + (literal indent)) + +(define ($format-linenumber$ linenumber) + ;; A line-field would make more sense here, and allow proportional + ;; fonts, but you can't put line-fields in the middle of a paragraph + ;; in the current RTF backend of Jade + (let ((%factor% (if %verbatim-size-factor% + %verbatim-size-factor% + 1.0))) + (if (equal? (remainder linenumber %linenumber-mod%) 0) + (make sequence + use: verbatim-style + (literal (pad-string (format-number linenumber "1") + %linenumber-length% %linenumber-padchar%)) + ($linenumber-space$)) + (make sequence + use: verbatim-style + (literal (pad-string "" %linenumber-length% " ")) + ($linenumber-space$))))) + +(define ($line-start$ indent line-numbers? #!optional (line-number 1)) + (make sequence + (if indent + ($format-indent$ indent) + (empty-sosofo)) + (if line-numbers? + ($format-linenumber$ line-number) + (empty-sosofo)))) + +(define ($linespecific-display$ indent line-numbers?) + (let ((vspace (if (INBLOCK?) + 0pt + (if (INLIST?) + %para-sep% + %block-sep%)))) + (make paragraph + use: linespecific-style + space-before: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-first-sibling?)) + 0pt + vspace) + space-after: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-last-sibling?)) + 0pt + vspace) + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + (if (or indent line-numbers?) + ($linespecific-line-by-line$ indent line-numbers?) + (process-children))))) + +(define ($linespecific-line-by-line$ indent line-numbers?) + (let ((expanded-content + ;; this is the content with + ;; inlinemediaobject/imageobject[@format='linespecific'] + ;; expanded + (let loop ((kl (children (current-node))) (rl (empty-node-list))) + (if (node-list-empty? kl) + rl + (if (equal? (gi (node-list-first kl)) + (normalize "inlinemediaobject")) + (let* ((imgobj (node-list-filter-by-gi + (children (node-list-first kl)) + (list (normalize "imageobject")))) + (datobj (node-list-filter-by-gi + (children imgobj) + (list (normalize "imagedata"))))) + (if (and (not (node-list-empty? imgobj)) + (not (node-list-empty? datobj)) + (equal? (attribute-string (normalize "format") datobj) + (normalize "linespecific"))) + (loop (node-list-rest kl) + (node-list rl (string->nodes (include-characters + (if (attribute-string (normalize "fileref") datobj) + (attribute-string (normalize "fileref") datobj) + (entity-generated-system-id (attribute-string (normalize "entityref") datobj))))))) + (loop (node-list-rest kl) + (node-list rl (node-list-first kl))))) + (loop (node-list-rest kl) (node-list rl (node-list-first kl)))))))) + (make sequence + ($line-start$ indent line-numbers? 1) + (let loop ((kl expanded-content) + (linecount 1) + (res (empty-sosofo))) + (if (node-list-empty? kl) + res + (loop + (node-list-rest kl) + (if (char=? (node-property 'char (node-list-first kl) + default: #\U-0000) #\U-000D) + (+ linecount 1) + linecount) + (let ((c (node-list-first kl))) + (if (char=? (node-property 'char c default: #\U-0000) + #\U-000D) + (sosofo-append res + (process-node-list c) + ($line-start$ indent line-numbers? + (+ linecount 1))) + (sosofo-append res (process-node-list c)))))))))) + +(define ($verbatim-display$ indent line-numbers?) + (let* ((width-in-chars (if (attribute-string (normalize "width")) + (string->number (attribute-string (normalize "width"))) + %verbatim-default-width%)) + (fsize (lambda () (if (or (attribute-string (normalize "width")) + (not %verbatim-size-factor%)) + (/ (/ (- %text-width% (inherited-start-indent)) + width-in-chars) + 0.7) + (* (inherited-font-size) + %verbatim-size-factor%)))) + (vspace-before (if (INBLOCK?) + 0pt + (if (INLIST?) + %para-sep% + %block-sep%))) + (vspace-after (if (INBLOCK?) + 0pt + (if (INLIST?) + 0pt + %block-sep%)))) + (make paragraph + use: verbatim-style + space-before: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-first-sibling?)) + 0pt + vspace-before) + space-after: (if (and (string=? (gi (parent)) (normalize "entry")) + (absolute-last-sibling?)) + 0pt + vspace-after) + font-size: (fsize) + line-spacing: (* (fsize) %line-spacing-factor%) + start-indent: (if (INBLOCK?) + (inherited-start-indent) + (+ %block-start-indent% (inherited-start-indent))) + (if (or indent line-numbers?) + ($linespecific-line-by-line$ indent line-numbers?) + (process-children))))) + +(element literallayout + (if (equal? (attribute-string "class") (normalize "monospaced")) + ($verbatim-display$ + %indent-literallayout-lines% + (or %number-literallayout-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered")))) + ($linespecific-display$ + %indent-literallayout-lines% + (or %number-literallayout-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered")))))) + +(element address + ($linespecific-display$ + %indent-address-lines% + (or %number-address-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element programlisting + ($verbatim-display$ + %indent-programlisting-lines% + (or %number-programlisting-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element screen + ($verbatim-display$ + %indent-screen-lines% + (or %number-screen-lines% + (equal? (attribute-string (normalize "linenumbering")) + (normalize "numbered"))))) + +(element screenshot (process-children)) +(element screeninfo (empty-sosofo)) + diff --git a/print/docbook.dsl b/print/docbook.dsl new file mode 100644 index 0000000..512eba1 --- /dev/null +++ b/print/docbook.dsl @@ -0,0 +1,197 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ + +<!ENTITY % dbl10n.ent SYSTEM "../common/dbl10n.ent"> +%dbl10n.ent; + +<!ENTITY dbl10n.dsl SYSTEM "../common/dbl10n.dsl"> + + +<!ENTITY dblib.dsl + PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library V2//EN" CDATA DSSSL> + +<!ENTITY dbparam.dsl SYSTEM "dbparam.dsl" CDATA DSSSL> + + +<!ENTITY VERSION SYSTEM "../VERSION"> + +<!ENTITY dbcommon.dsl SYSTEM "../common/dbcommon.dsl"> +<!ENTITY dbctable.dsl SYSTEM "../common/dbtable.dsl"> + +<!ENTITY dbadmon.dsl SYSTEM "dbadmon.dsl"> +<!ENTITY dbautoc.dsl SYSTEM "dbautoc.dsl"> +<!ENTITY dbbibl.dsl SYSTEM "dbbibl.dsl"> +<!ENTITY dbblock.dsl SYSTEM "dbblock.dsl"> +<!ENTITY dbcallou.dsl SYSTEM "dbcallou.dsl"> +<!ENTITY dbcompon.dsl SYSTEM "dbcompon.dsl"> +<!ENTITY dbdivis.dsl SYSTEM "dbdivis.dsl"> +<!ENTITY dbgloss.dsl SYSTEM "dbgloss.dsl"> +<!ENTITY dbgraph.dsl SYSTEM "dbgraph.dsl"> +<!ENTITY dbindex.dsl SYSTEM "dbindex.dsl"> +<!ENTITY dbinfo.dsl SYSTEM "dbinfo.dsl"> +<!ENTITY dbinline.dsl SYSTEM "dbinline.dsl"> +<!ENTITY dblink.dsl SYSTEM "dblink.dsl"> +<!ENTITY dblists.dsl SYSTEM "dblists.dsl"> +<!ENTITY dblot.dsl SYSTEM "dblot.dsl"> +<!ENTITY dbmath.dsl SYSTEM "dbmath.dsl"> +<!ENTITY dbmsgset.dsl SYSTEM "dbmsgset.dsl"> +<!ENTITY dbprint.dsl SYSTEM "dbprint.dsl"> +<!ENTITY dbprocdr.dsl SYSTEM "dbprocdr.dsl"> +<!ENTITY dbqanda.dsl SYSTEM "dbqanda.dsl"> +<!ENTITY dbrfntry.dsl SYSTEM "dbrfntry.dsl"> +<!ENTITY dbsect.dsl SYSTEM "dbsect.dsl"> +<!ENTITY dbsynop.dsl SYSTEM "dbsynop.dsl"> +<!ENTITY dbefsyn.dsl SYSTEM "dbefsyn.dsl"> +<!ENTITY dbtable.dsl SYSTEM "dbtable.dsl"> +<!ENTITY dbtitle.dsl SYSTEM "dbtitle.dsl"> +<!ENTITY dbttlpg.dsl SYSTEM "dbttlpg.dsl"> +<!ENTITY dbverb.dsl SYSTEM "dbverb.dsl"> +<!ENTITY version.dsl SYSTEM "version.dsl"> +]> + +<style-sheet> +<style-specification id="docbook" + use="af bg bs ca cs da de el en es et eu fi fr hu id it ja ko nl nn no pl pt ptbr ro ru sk sl sr sv tr uk xh zhcn zhtw dbparam dblib"> + +<style-specification-body> + +;; $Id: docbook.dsl,v 1.10 2004/10/09 21:36:35 petere78 Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; + +(define if-front-page + (external-procedure "UNREGISTERED::James Clark//Procedure::if-front-page")) + +(define if-first-page + (external-procedure "UNREGISTERED::James Clark//Procedure::if-first-page")) + +(declare-characteristic heading-level + "UNREGISTERED::James Clark//Characteristic::heading-level" 0) + +(declare-characteristic page-number-format + "UNREGISTERED::James Clark//Characteristic::page-number-format" "1") + +(declare-characteristic page-number-restart? + "UNREGISTERED::James Clark//Characteristic::page-number-restart?" #f) + +(declare-characteristic page-two-side? + "UNREGISTERED::OpenJade//Characteristic::page-two-side?" %two-side%) + +(declare-characteristic two-side-start-on-right? + "UNREGISTERED::OpenJade//Characteristic::two-side-start-on-right?" %two-side%) + +(declare-characteristic page-n-columns + "UNREGISTERED::James Clark//Characteristic::page-n-columns" 1) + +(declare-characteristic page-column-sep + "UNREGISTERED::James Clark//Characteristic::page-column-sep" %page-column-sep%) + +(declare-characteristic page-balance-columns? + "UNREGISTERED::James Clark//Characteristic::page-balance-columns?" %page-balance-columns?%) + +;; This allows bottom-of-page footnotes +(declare-flow-object-class page-footnote + "UNREGISTERED::Sebastian Rahtz//Flow Object Class::page-footnote") + +;; This allows formal objects to float +(declare-flow-object-class page-float + "UNREGISTERED::Sebastian Rahtz//Flow Object Class::page-float") + +(define read-entity + (external-procedure "UNREGISTERED::James Clark//Procedure::read-entity")) + +(define all-element-number + (external-procedure "UNREGISTERED::James Clark//Procedure::all-element-number")) + +(define debug + (external-procedure "UNREGISTERED::James Clark//Procedure::debug")) + +;; Make text that comes from unimplemented tags easy to spot +(default + (let* ((colr-space (color-space + "ISO/IEC 10179:1996//Color-Space Family::Device RGB")) + (red (color colr-space 1 0 0))) + (make sequence + color: red + (process-children)))) + +&dbcommon.dsl; <!-- Common ("stock") stylesheet functions --> +&dbctable.dsl; <!-- Common table stylesheet functions --> + +&dbl10n.dsl; <!-- Localization --> + +&dbadmon.dsl; <!-- Admonitions --> +&dbautoc.dsl; <!-- Automatic TOC generation --> +&dbbibl.dsl; <!-- Bibliographies --> +&dbblock.dsl; <!-- Miscellaneous block elements --> +&dbcallou.dsl; <!-- Callouts --> +&dbcompon.dsl; <!-- Components; chapter-level elements --> +&dbdivis.dsl; <!-- Divisions; Sets, Books, Articles, Parts --> +&dbgloss.dsl; <!-- Glossaries --> +&dbgraph.dsl; <!-- Graphics --> +&dbindex.dsl; <!-- Indexes --> +&dbinfo.dsl; <!-- Infopools (SetInfo, BookInfo, Sect1Info, etc.) --> +&dbinline.dsl; <!-- Inline elements --> +&dblink.dsl; <!-- Links --> +&dblists.dsl; <!-- Lists --> +&dblot.dsl; <!-- Lists of Tables (ToC, LoT, etc.) --> +&dbmath.dsl; <!-- Math (Equations) --> +&dbmsgset.dsl; <!-- MsgSet --> +&dbprint.dsl; <!-- Print macros --> +&dbprocdr.dsl; <!-- Procedures --> +&dbqanda.dsl; <!-- QandASet --> +&dbrfntry.dsl; <!-- References and RefEntrys --> +&dbsect.dsl; <!-- Sections --> +&dbsynop.dsl; <!-- Synopsis --> +&dbefsyn.dsl; <!-- Class Synopsis --> +&dbtable.dsl; <!-- Tables --> +&dbtitle.dsl; <!-- Titles --> +&dbttlpg.dsl; <!-- Title Page --> +&dbverb.dsl; <!-- Verbatim (ProgramListing, LiteralLayout, etc.) --> +&version.dsl; + +</style-specification-body> +</style-specification> + +<external-specification id="dbparam" document="dbparam.dsl"> +<external-specification id="dblib" document="dblib.dsl"> + +<external-specification id="af" document="dbl1af"> +<external-specification id="bg" document="dbl1bg"> +<external-specification id="bs" document="dbl1bs"> +<external-specification id="ca" document="dbl1ca"> +<external-specification id="cs" document="dbl1cs"> +<external-specification id="da" document="dbl1da"> +<external-specification id="de" document="dbl1de"> +<external-specification id="el" document="dbl1el"> +<external-specification id="en" document="dbl1en"> +<external-specification id="es" document="dbl1es"> +<external-specification id="et" document="dbl1et"> +<external-specification id="eu" document="dbl1eu"> +<external-specification id="fi" document="dbl1fi"> +<external-specification id="fr" document="dbl1fr"> +<external-specification id="hu" document="dbl1hu"> +<external-specification id="id" document="dbl1id"> +<external-specification id="it" document="dbl1it"> +<external-specification id="ja" document="dbl1ja"> +<external-specification id="ko" document="dbl1ko"> +<external-specification id="nl" document="dbl1nl"> +<external-specification id="nn" document="dbl1nn"> +<external-specification id="no" document="dbl1no"> +<external-specification id="pl" document="dbl1pl"> +<external-specification id="pt" document="dbl1pt"> +<external-specification id="ptbr" document="dbl1ptbr"> +<external-specification id="ro" document="dbl1ro"> +<external-specification id="ru" document="dbl1ru"> +<external-specification id="sk" document="dbl1sk"> +<external-specification id="sl" document="dbl1sl"> +<external-specification id="sr" document="dbl1sr"> +<external-specification id="sv" document="dbl1sv"> +<external-specification id="tr" document="dbl1tr"> +<external-specification id="uk" document="dbl1uk"> +<external-specification id="xh" document="dbl1xh"> +<external-specification id="zhcn" document="dbl1zhcn"> +<external-specification id="zhtw" document="dbl1zhtw"> + +</style-sheet> diff --git a/print/notoc.dsl b/print/notoc.dsl new file mode 100644 index 0000000..ffa8c56 --- /dev/null +++ b/print/notoc.dsl @@ -0,0 +1,29 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl SYSTEM "docbook.dsl" CDATA DSSSL> +]> + +<style-sheet> +<style-specification id="docbook-notoc" use="docbook"> +<style-specification-body> + +;; $Id: notoc.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; +;; Example of a customization layer on top of the modular docbook style +;; sheet. Definitions inserted in this file take precedence over +;; definitions in the 'use'd stylesheet(s). + +(define %generate-set-toc% #f) +(define %generate-book-toc% #f) +(define %generate-part-toc% #f) +(define %generate-reference-toc% #f) +(define %generate-article-toc% #f) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/print/plain.dsl b/print/plain.dsl new file mode 100644 index 0000000..d049df4 --- /dev/null +++ b/print/plain.dsl @@ -0,0 +1,37 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL> +]> + +<style-sheet> +<style-specification use="docbook"> +<style-specification-body> + +;; $Id: plain.dsl,v 1.2 2003/01/15 08:24:23 adicarlo Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ +;; +;; Example of a customization layer on top of the modular docbook style +;; sheet. Definitions inserted in this file take precedence over +;; definitions in the 'use'd stylesheet(s). + +(define %generate-set-titlepage% #f) +(define %generate-book-titlepage% #f) +(define %generate-part-titlepage% #f) +(define %generate-reference-titlepage% #f) +(define %generate-article-titlepage% #f) + +(define %generate-set-toc% #f) +(define %generate-book-toc% #f) +(define %generate-part-toc% #f) +(define %generate-reference-toc% #f) +(define %generate-article-toc% #f) + +(define %generate-book-lot-list% '()) + +</style-specification-body> +</style-specification> + +<external-specification id="docbook" document="docbook.dsl"> + +</style-sheet> diff --git a/print/version.dsl b/print/version.dsl new file mode 100644 index 0000000..cee6faf --- /dev/null +++ b/print/version.dsl @@ -0,0 +1,14 @@ +;; $Id: version.dsl,v 1.2 2004/07/11 06:21:00 nyraghu Exp $ +;; +;; This file is part of the Modular DocBook Stylesheet distribution. +;; See ../README or http://www.nwalsh.com/docbook/dsssl/ +;; + +;; If **ANY** change is made to this file, you _MUST_ alter the +;; following definition: + +(define (stylesheet-version) + (string-append + "Modular DocBook Print Stylesheet Version " + ;; Trim off bounding white space. + (strip "&VERSION;"))) |