| --- |
| layout: default |
| title: Liblouisutdml User's and Programmer's Manual |
| --- |
| <!-- This manual is for liblouisutdml (version 2.5.0, |
| 14 September 2012), an xml to Braille Translation Library. |
| |
| This file may contain code borrowed from the Linux screenreader |
| BRLTTY, Copyright (C) 1999-2009 by the |
| BRLTTY Team. |
| |
| Copyright (C) 2004-2009 ViewPlus Technologies, Inc. |
| www.viewplus.com and Copyright (C) 2006,2009 |
| Abilitiessoft, Inc. www.abilitiessoft.com. |
| |
| This file is free software; you can redistribute it and/or modify it |
| under the terms of the GNU Lesser (or library) General Public License |
| (LGPL) as published by the Free Software Foundation; either version 3, |
| or (at your option) any later version. |
| |
| This file is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser (or Library) General Public License LGPL for more details. |
| |
| You should have received a copy of the GNU Lesser (or Library) General |
| Public License (LGPL) along with this program; see the file COPYING. |
| If not, write to the Free Software Foundation, 51 Franklin Street, |
| Fifth Floor, Boston, MA 02110-1301, USA. --> |
| <!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> |
| |
| <a name="SEC_Contents"></a> |
| <h2 class="contents-heading">Table of Contents</h2> |
| |
| <div class="contents"> |
| |
| <ul class="no-bullet"> |
| <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> |
| <li><a name="toc-Transcribing-Documents-1" href="#Transcribing-Documents">2 Transcribing Documents</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-Transcribing-XML-files-with-file2brl-1" href="#Transcribing-XML-files-with-file2brl">2.1 Transcribing XML files with file2brl</a></li> |
| <li><a name="toc-Transcribing-Text-Documents-1" href="#Transcribing-Text-Documents">2.2 Transcribing Text Documents</a></li> |
| <li><a name="toc-Transcribing-Poorly-Formatted-Documents-1" href="#Transcribing-Poorly-Formatted-Documents">2.3 Transcribing Poorly Formatted Documents</a></li> |
| <li><a name="toc-Transcribing-html-Documents-1" href="#Transcribing-html-Documents">2.4 Transcribing html Documents</a></li> |
| <li><a name="toc-Transcribing-Microsoft-Word-files-with-msword2brl-1" href="#Transcribing-Microsoft-Word-files-with-msword2brl">2.5 Transcribing Microsoft Word files with msword2brl</a></li> |
| <li><a name="toc-Transcribing-RTF-files-with-rtf2brl-1" href="#Transcribing-RTF-files-with-rtf2brl">2.6 Transcribing RTF files with rtf2brl</a></li> |
| <li><a name="toc-Transcribing-PDF-files-with-pdf2brl-1" href="#Transcribing-PDF-files-with-pdf2brl">2.7 Transcribing PDF files with pdf2brl</a></li> |
| </ul></li> |
| <li><a name="toc-Customization_003a-Configuring-liblouisutdml" href="#Customization-Configuring-liblouisutdml">3 Customization: Configuring liblouisutdml</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-outputFormat-1" href="#outputFormat">3.1 outputFormat</a></li> |
| <li><a name="toc-translation-1" href="#translation">3.2 translation</a></li> |
| <li><a name="toc-xml-1" href="#xml">3.3 xml</a></li> |
| <li><a name="toc-style-1" href="#style">3.4 style</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-style-document" href="#style-document">3.4.1 style document</a></li> |
| <li><a name="toc-style-contentsheader" href="#style-contentsheader">3.4.2 style contentsheader</a></li> |
| <li><a name="toc-style-contents1" href="#style-contents1">3.4.3 style contents1</a></li> |
| <li><a name="toc-style-contents2" href="#style-contents2">3.4.4 style contents2</a></li> |
| <li><a name="toc-style-contents3" href="#style-contents3">3.4.5 style contents3</a></li> |
| <li><a name="toc-style-contents4" href="#style-contents4">3.4.6 style contents4</a></li> |
| <li><a name="toc-style-heading1" href="#style-heading1">3.4.7 style heading1</a></li> |
| <li><a name="toc-style-heading2" href="#style-heading2">3.4.8 style heading2</a></li> |
| <li><a name="toc-style-heading3" href="#style-heading3">3.4.9 style heading3</a></li> |
| <li><a name="toc-style-heading4" href="#style-heading4">3.4.10 style heading4</a></li> |
| <li><a name="toc-style-para" href="#style-para">3.4.11 style para</a></li> |
| </ul></li> |
| </ul></li> |
| <li><a name="toc-Connecting-with-the-xml-Document-_002d-Semantic_002dAction-Files" href="#Connecting-with-the-xml-Document">4 Connecting with the xml Document - Semantic-Action Files</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-Overview-1" href="#Semantic-Actions-Overview">4.1 Overview</a></li> |
| <li><a name="toc-Semantic-Actions-in-detail-1" href="#Semantic-Actions-in-detail">4.2 Semantic Actions in detail</a></li> |
| <li><a name="toc-Pseudo_002dactions-1" href="#Pseudo_002dactions">4.3 Pseudo-actions</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-include" href="#include">4.3.1 include</a></li> |
| <li><a name="toc-newentries" href="#newentries">4.3.2 newentries</a></li> |
| <li><a name="toc-namespaces" href="#namespaces">4.3.3 namespaces</a></li> |
| </ul></li> |
| <li><a name="toc-Using-XPath-Expressions-1" href="#Using-XPath-Expressions">4.4 Using XPath Expressions</a></li> |
| </ul></li> |
| <li><a name="toc-Special-Features-1" href="#Special-Features">5 Special Features</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-Table-of-contents-1" href="#Table-of-contents">5.1 Table of contents</a></li> |
| <li><a name="toc-Back_002dtranslation-1" href="#Back_002dtranslation">5.2 Back-translation</a></li> |
| <li><a name="toc-Reformatting-1" href="#Reformatting">5.3 Reformatting</a></li> |
| <li><a name="toc-Interlining-1" href="#Interlining">5.4 Interlining</a></li> |
| <li><a name="toc-Browser_002dFriendly-Output-1" href="#Browser_002dFriendly-Output">5.5 Browser-Friendly Output</a></li> |
| <li><a name="toc-CDATA-Sections-1" href="#CDATA-Sections">5.6 <code>CDATA</code> Sections</a></li> |
| </ul></li> |
| <li><a name="toc-Special-Formats-1" href="#Special-Formats">6 Special Formats</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-Tables-1" href="#Tables">6.1 Tables</a></li> |
| <li><a name="toc-Reserving-Space-for-Graphics-1" href="#Reserving-Space-for-Graphics">6.2 Reserving Space for Graphics</a></li> |
| <li><a name="toc-Displayed-Text-1" href="#Displayed-Text">6.3 Displayed Text</a></li> |
| <li><a name="toc-Displayed-Mathematics-1" href="#Displayed-Mathematics">6.4 Displayed Mathematics</a></li> |
| <li><a name="toc-Spatial-Layouts-in-Mathematics-1" href="#Spatial-Layouts-in-Mathematics">6.5 Spatial Layouts in Mathematics</a></li> |
| <li><a name="toc-Arithmetic-Examples-1" href="#Arithmetic-Examples">6.6 Arithmetic Examples</a></li> |
| <li><a name="toc-Poetry-1" href="#Poetry">6.7 Poetry</a></li> |
| <li><a name="toc-Dividing-a-Book-Into-Volumes-1" href="#Dividing-a-Book-Into-Volumes">6.8 Dividing a Book Into Volumes</a></li> |
| </ul></li> |
| <li><a name="toc-Implementing-Braille-Mathematics-Codes-1" href="#Implementing-Braille-Mathematics-Codes">7 Implementing Braille Mathematics Codes</a></li> |
| <li><a name="toc-Programming-with-liblouisutdml-1" href="#Programming-with-liblouisutdml">8 Programming with liblouisutdml</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-License-1" href="#License">8.1 License</a></li> |
| <li><a name="toc-Overview-2" href="#Overview">8.2 Overview</a></li> |
| <li><a name="toc-Files-and-Paths-1" href="#Files-and-Paths">8.3 Files and Paths</a></li> |
| <li><a name="toc-lbu_005fversion-1" href="#lbu_005fversion">8.4 lbu_version</a></li> |
| <li><a name="toc-lbu_005finitialize-1" href="#lbu_005finitialize">8.5 lbu_initialize</a></li> |
| <li><a name="toc-lbu_005ftranslateString-1" href="#lbu_005ftranslateString">8.6 lbu_translateString</a></li> |
| <li><a name="toc-lbu_005ftranslateFile-1" href="#lbu_005ftranslateFile">8.7 lbu_translateFile</a></li> |
| <li><a name="toc-lbu_005ftranslateTextFile-1" href="#lbu_005ftranslateTextFile">8.8 lbu_translateTextFile</a></li> |
| <li><a name="toc-lbu_005fbackTranslateFile-1" href="#lbu_005fbackTranslateFile">8.9 lbu_backTranslateFile</a></li> |
| <li><a name="toc-lbu_005ffree-1" href="#lbu_005ffree">8.10 lbu_free</a></li> |
| </ul></li> |
| <li><a name="toc-Example-files-1" href="#Example-files">Appendix A Example files</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-liblouisutdml_002eini-1" href="#liblouisutdml_002eini">A.1 <samp>liblouisutdml.ini</samp></a></li> |
| <li><a name="toc-default_002ecfg-1" href="#default_002ecfg">A.2 <samp>default.cfg</samp></a></li> |
| <li><a name="toc-html_002esem-1" href="#html_002esem">A.3 <samp>html.sem</samp></a></li> |
| <li><a name="toc-nemeth_002esem-1" href="#nemeth_002esem">A.4 <samp>nemeth.sem</samp></a></li> |
| <li><a name="toc-Files-for-BAUK-Maths-_0028ukmaths_0029-1" href="#Files-for-BAUK-Maths-_0028ukmaths_0029">A.5 Files for BAUK Maths (ukmaths)</a> |
| <ul class="no-bullet"> |
| <li><a name="toc-ukmaths_002ecfg-1" href="#ukmaths_002ecfg">A.5.1 <samp>ukmaths.cfg</samp></a></li> |
| <li><a name="toc-ukmaths_002esem-1" href="#ukmaths_002esem">A.5.2 <samp>ukmaths.sem</samp></a></li> |
| <li><a name="toc-ukmaths_002ectb-1" href="#ukmaths_002ectb">A.5.3 <samp>ukmaths.ctb</samp></a></li> |
| <li><a name="toc-ukmaths_005fedit_002ectb-1" href="#ukmaths_005fedit_002ectb">A.5.4 <samp>ukmaths_edit.ctb</samp></a></li> |
| </ul></li> |
| </ul></li> |
| <li><a name="toc-Configuration-Settings-Index-1" href="#Configuration-Settings-Index">Configuration Settings Index</a></li> |
| <li><a name="toc-Semantic-Action-Index-1" href="#Semantic-Action-Index">Semantic Action Index</a></li> |
| <li><a name="toc-Function-Index-1" href="#Function-Index">Function Index</a></li> |
| <li><a name="toc-Program-Index-1" href="#Program-Index">Program Index</a></li> |
| </ul> |
| </div> |
| |
| |
| <hr/> |
| <a name="Top"></a> |
| <a name="Liblouisutdml-User_0027s-and-Programmer_0027s-Manual"></a> |
| |
| <p>This manual is for liblouisutdml (version 2.5.0, |
| 14 September 2012), an xml to Braille Translation Library. |
| </p> |
| <p>This file may contain code borrowed from the Linux screenreader |
| <acronym>BRLTTY</acronym>, Copyright © 1999-2009 by the |
| <acronym>BRLTTY</acronym> Team. |
| </p> |
| <p>Copyright © 2004-2009 ViewPlus Technologies, Inc. |
| <a href="www.viewplus.com">www.viewplus.com</a> and Copyright © 2006,2009 |
| Abilitiessoft, Inc. <a href="www.abilitiessoft.com">www.abilitiessoft.com</a>. |
| </p> |
| <blockquote> |
| <p>This file is free software; you can redistribute it and/or modify it |
| under the terms of the GNU Lesser (or library) General Public License |
| (LGPL) as published by the Free Software Foundation; either version 3, |
| or (at your option) any later version. |
| </p> |
| <p>This file is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser (or Library) General Public License LGPL for more details. |
| </p> |
| <p>You should have received a copy of the GNU Lesser (or Library) General |
| Public License (LGPL) along with this program; see the file COPYING. |
| If not, write to the Free Software Foundation, 51 Franklin Street, |
| Fifth Floor, Boston, MA 02110-1301, USA. |
| </p></blockquote> |
| |
| |
| |
| <hr> |
| <a name="Introduction"></a> |
| <a name="Introduction-1"></a> |
| <h2 class="chapter">1 Introduction</h2> |
| |
| <p>liblouisutdml is a software component which can be incorporated into |
| software packages to provide the capability of translating any file in |
| the computer lingua franca xml format or plain text into properly |
| transcribed |
| braille. This includes translation into grade two, if desired, |
| mathematical codes, etc. It also includes formatting according to a |
| style sheet which can be modified by the user. The first |
| program into which liblouisutdml has been incorporated is |
| <code>file2brl</code>. This program will translate an xml or text file |
| into an embosser-ready braille file. It is not necessary to know xml, |
| because MSWord and other word processors can export files in this |
| format. If the word processor has been used correctly |
| <code>file2brl</code> will produce an excellent braille file. |
| </p> |
| |
| <p>There is a Mac GUI application incorporating liblouisutdml called |
| <code>louis</code>. For a link to it go to |
| <a href="www.abilitiessoft.com/downloads">www.abilitiessoft.com/downloads</a>. You can also obtain a Windows |
| binary on this page. At present it is command-line. We hope to have a |
| GUI soon. |
| </p> |
| <p>Users who want to generate Braille using <code>file2brl</code> will be |
| interested in <a href="#Transcribing-XML-files-with-file2brl">Transcribing XML files with file2brl</a>. Those who |
| wish to change the output generated by liblouisutdml should read |
| <a href="#Customization-Configuring-liblouisutdml">Customization Configuring liblouisutdml</a>. If you encounter a type |
| of xml file with which liblouisutdml is not familiar you can learn how |
| to tell it how to process that file by reading <a href="#Connecting-with-the-xml-Document">Connecting with the xml Document</a>. If you wish to implement a new braille mathematics |
| code read <a href="#Implementing-Braille-Mathematics-Codes">Implementing Braille Mathematics Codes</a>. Finally, |
| computer programmers who wish to use liblouisutdml in their software can |
| find the information they need in <a href="#Programming-with-liblouisutdml">Programming with liblouisutdml</a>. |
| </p> |
| <p>You will also find it advantageous to be acquainted with the companion |
| library liblouis, which is a braille translator and back-translator |
| (see <a href="liblouis.html#Top">Overview</a> in <cite>Liblouis User’s and Programmer’s |
| Manual</cite>). |
| </p> |
| <hr> |
| <a name="Transcribing-Documents"></a> |
| <a name="Transcribing-Documents-1"></a> |
| <h2 class="chapter">2 Transcribing Documents</h2> |
| |
| |
| <hr> |
| <a name="Transcribing-XML-files-with-file2brl"></a> |
| <a name="Transcribing-XML-files-with-file2brl-1"></a> |
| <h3 class="section">2.1 Transcribing XML files with file2brl</h3> |
| <a name="index-file2brl"></a> |
| |
| <p>At the moment, actual transcription with liblouisutdml is done with the |
| command-line (or console) program <code>file2brl</code>. The line to type |
| is: |
| </p> |
| <div class="example"> |
| <pre class="example">file2brl [OPTIONS] [-f config-file] [infile] [outfile] |
| </pre></div> |
| |
| <p>The brackets indicate that something is optional. You will see that |
| nothing is required except the program name itself, <code>file2brl</code>. |
| The various optional parts control how the program will behave, as |
| follows: |
| </p> |
| <dl compact="compact"> |
| <dt><samp>-h</samp></dt> |
| <dt><samp>--help</samp></dt> |
| <dd><p>This option causes <code>file2brl</code> to print a help message |
| describing usage and exit. |
| </p> |
| </dd> |
| <dt><samp>-v</samp></dt> |
| <dt><samp>--version</samp></dt> |
| <dd><p>This option causes <code>file2brl</code> to display the version |
| information and exit. |
| </p> |
| </dd> |
| <dt><samp>-l</samp></dt> |
| <dt><samp>--log-file</samp></dt> |
| <dd><p>This option will cause <code>file2brl</code> and liblouisutdml to print |
| error messages to <samp>file2brl.log</samp> instead of stderr. The file will |
| be in the current directory. This option is particularly useful if |
| <code>file2brl</code> is called by a GUI script or Web application. |
| </p> |
| </dd> |
| <dt><samp>-f configfile</samp></dt> |
| <dt><samp>--config-file configfile</samp></dt> |
| <dd><p>This specifies the configuration file which tells <code>file2brl</code> |
| how to do the transcription. (It may be a list of file names separated |
| by commas.) This file specifies such things as the number of cells per |
| line, the number of lines per page, The translation tables to be used, |
| how paragraphs and headings are to be formatted, etc. If this part of |
| the command line is omitted, <code>file2brl</code> assumes that the |
| configuration file is named <samp>default.cfg</samp>. If the configuration |
| file name contains a pathname <code>file2brl</code> will consider this as |
| a path on which to look for files that it needs (see <a href="#Files-and-Paths">Files and Paths</a>). If no pathname is given the standard paths are searched and |
| finally the current directory. To make <code>file2brl</code> search the |
| current directory first, precede the file name with <code>./</code>. |
| </p> |
| </dd> |
| <dt><samp>-Csetting=value</samp></dt> |
| <dt><samp>--config-setting setting=value</samp></dt> |
| <dd><p>This option enables you to specify configuration settings on the |
| command line instead of changing the configuration file. You can use |
| as many <samp>-C</samp> options as you wish. Any settings can be specified |
| except those having to do with styles. See <a href="#Configuration-Settings-Index">Configuration Settings Index</a>, for a list of available settings. These must be specified in |
| configuration files. The settings may be in any order. They override |
| any settings in <samp>liblouisutdml.ini</samp> or in the configuration file used |
| by <code>file2brl</code>. |
| </p> |
| </dd> |
| <dt><samp>-b</samp></dt> |
| <dt><samp>--backward</samp></dt> |
| <dd><p>back-translate. The input file must be a braille file, such as |
| <samp>.brf</samp>. The output file is a back-translation of this file. It |
| may be in either plain-text or xhtml (html), according to the setting |
| of <code>backFormat</code> in the <code>outputFormat</code> section of the |
| configuration file. Html files will contain page numbers and emphasis. |
| To get good html, the liblouis table must have the entry ‘<samp>space |
| \e 1b</samp>’ so that it will pass through escape characters. The |
| <samp>html.sem</samp> file must also contain the line ‘<samp>pagenum |
| pagenum</samp>’. Text output files simply have a blank line between |
| paragraphs. Encoding of text files is controlled by the |
| <code>outputEncoding</code> setting. Html files are always in UTF-8. |
| </p> |
| </dd> |
| <dt><samp>-r</samp></dt> |
| <dt><samp>--reformat</samp></dt> |
| <dd><p>Reformat. The input file must be a braille file, such as <samp>.brf</samp>. |
| The output is a braille file formatted according to the configuration |
| file. It is advisable to set backFormat to html, since this will |
| preserve print page numbers and emphasis. This option can be useful |
| for changing the line length and page length of a braille file, for |
| example, from 40 to 32 cells. It is also an excellent way to check the |
| accuracy of liblouis tables. The original page numbers at the tops and |
| bottoms of pages are discarded, and new ones are generated. |
| </p> |
| </dd> |
| <dt><samp>-p</samp></dt> |
| <dt><samp>--poorly-formatted</samp></dt> |
| <dd><p>Poorly formatted input translation. Infile is any text file such as may |
| have been obtained by extracting the text in a pdf file. The input |
| file may also be an xml or html file which is so poorly formatted that |
| better braille can be obtained by ignoring the formatting. |
| <code>file2brl</code> tries to guess paragraph breaks. The output is |
| generally reasonably formatted, that is, with reasonable paragraph |
| breaks. |
| </p> |
| </dd> |
| <dt><samp>-t</samp></dt> |
| <dt><samp>--html</samp></dt> |
| <dd><p>The document is an h(t)ml file, not xhtml. This option is useful with |
| files downloaded from the Web in source form. Without it, the program |
| will first try to parse the file as an xml document, producing lots of |
| error messages. It will then try the html parser. With this option, it |
| goes directly to the html parser. See also the <code>formatFor</code> |
| configuration (see <a href="#formatFor-setting">formatFor setting</a>) file setting, which enables |
| you to format the braille output for viewing in a browser. |
| </p> |
| </dd> |
| <dt><samp>-T</samp></dt> |
| <dt><samp>--text</samp></dt> |
| <dd><p>Consider the document to be a text file, even if it is xml or html. |
| </p> |
| </dd> |
| <dt><samp>infile</samp></dt> |
| <dd><p>This is the name of the input file containing the material to be |
| transcribed. The file may be either an xml file or a text file. The |
| <samp>-b</samp>, <samp>-r</samp> and <samp>-p</samp> options discussed above |
| provide for other types of files and processing. Typical xml files are |
| those provided by <a href="www.bookshare.org">www.bookshare.org</a> or those derived from a |
| word processor by saving in xml format. If a text file is used |
| paragraphs and headings should be separated by blank lines. In such a |
| file there is no way to distinguish between paragraphs and headings, |
| so they will all be formatted as paragraphs, as specified by the |
| configuration file. However, if you want a blank line in the braille |
| transcription use two consecutive blank lines in the text file. |
| </p> |
| </dd> |
| <dt><samp>outfile</samp></dt> |
| <dd><p>This is the name of the output file. It will be transcribed as |
| specified by the configuration file and the <samp>-C</samp> configuration |
| settings. |
| The following paragraphs provide more information on both the input |
| and output files. |
| </p> |
| </dd> |
| </dl> |
| |
| <p><code>file2brl</code> is set up so that it can be used in a "pipe". To do |
| this, omit both infile and outfile. Input is then taken from the |
| standard input unit. |
| </p> |
| <p>The first file name encountered (a word not preceded by a minus sign) |
| is taken to be the input file and the second to be the output file. If |
| you wish input to be taken from stdin and still want to specify an |
| output file, use one minus sign (‘<samp>-</samp>’) for the input file. |
| </p> |
| <p>If only the program name is typed <code>file2brl</code> assumes that the |
| configuration file is <samp>default.cfg</samp>, input is from the standard |
| input unit, and output is to the standard output unit. |
| </p> |
| <hr> |
| <a name="Transcribing-Text-Documents"></a> |
| <a name="Transcribing-Text-Documents-1"></a> |
| <h3 class="section">2.2 Transcribing Text Documents</h3> |
| |
| <p>See the previous section on using <code>file2brl</code>. This program |
| recognizes text files automatically and transcribes them according to |
| the information in the configuration files. Paragraphs must be |
| separated with a blank line. If you want a blank line in the output use |
| two blank lines. |
| </p> |
| <hr> |
| <a name="Transcribing-Poorly-Formatted-Documents"></a> |
| <a name="Transcribing-Poorly-Formatted-Documents-1"></a> |
| <h3 class="section">2.3 Transcribing Poorly Formatted Documents</h3> |
| |
| <div class="example"> |
| <pre class="example">file2brl -p infile outfile |
| </pre></div> |
| |
| <p>Some text documents, such as those derived from pdf files, and even |
| some xml and html documents, are so poorly formatted that you can get |
| better braille by ignoring whatever markup they contain. The |
| <samp>-p</samp> option of <code>file2brl</code> does this. It ignores xml or |
| html markup and uses heuristics to find the beginning of paragraphs. |
| Its choices are usually good. Note that it does not work with rtf |
| files. However, if <code>rtf2xml</code> (see <a href="#Transcribing-RTF-files-with-rtf2brl">Transcribing RTF files with rtf2brl</a>) will convert the file, it will work with the resulting |
| xml file. |
| </p> |
| |
| <hr> |
| <a name="Transcribing-html-Documents"></a> |
| <a name="Transcribing-html-Documents-1"></a> |
| <h3 class="section">2.4 Transcribing html Documents</h3> |
| |
| <div class="example"> |
| <pre class="example">file2brl -t infile outfile |
| </pre></div> |
| |
| <p>The <samp>-t</samp> option prevents <code>xml2blr</code> from trying to |
| transcribe |
| infile as an xml document. This will produce a lot of error messages. |
| <code>file2brl</code> will then try the html parser. Note that xhtml |
| documents are actually xml. |
| </p> |
| <hr> |
| <a name="Transcribing-Microsoft-Word-files-with-msword2brl"></a> |
| <a name="Transcribing-Microsoft-Word-files-with-msword2brl-1"></a> |
| <h3 class="section">2.5 Transcribing Microsoft Word files with msword2brl</h3> |
| <a name="index-msword2brl"></a> |
| |
| <div class="example"> |
| <pre class="example">msword2brl infile outfile |
| </pre></div> |
| |
| <p>Infile must be a Microsoft Word file. The script first calls the |
| <code>antiword</code> program, so you must have this installed on your |
| machine. <code>antiword</code> is called with <samp>-x db</samp>, which |
| causes the output to be in docbook format. This is piped to |
| <code>file2brl</code>. The output file from <code>file2brl</code> contains |
| much of the formatting, including emphasis, of the word file. |
| </p> |
| <hr> |
| <a name="Transcribing-RTF-files-with-rtf2brl"></a> |
| <a name="Transcribing-RTF-files-with-rtf2brl-1"></a> |
| <h3 class="section">2.6 Transcribing RTF files with rtf2brl</h3> |
| <a name="index-rtf2brl"></a> |
| |
| <div class="example"> |
| <pre class="example">rtf2brl infile outfile |
| </pre></div> |
| |
| <p>Infile must be a rich-text (rtf) file, such as Bookshare provides for |
| proofreading. The script first calls <code>rtf2xml</code>, so you must have |
| this program installed on your machine. You can find it on the downloads |
| page of <a href="www.abilitiessoft.com">www.abilitiessoft.com</a>. It was copied from its SourceForge |
| project. Since it is a Python program, it can be rather slow. Its output |
| is piped to <code>file2brl</code>. The output of <code>rtf2xml</code> is xml |
| with the root element <code>doc</code>. The file <samp>doc.sem</samp> is fairly |
| complete, so the output of <code>file2brl</code> contains much of the |
| formatting, including emphasis, of the original rtf file. |
| </p> |
| <hr> |
| <a name="Transcribing-PDF-files-with-pdf2brl"></a> |
| <a name="Transcribing-PDF-files-with-pdf2brl-1"></a> |
| <h3 class="section">2.7 Transcribing PDF files with pdf2brl</h3> |
| <a name="index-pdf2brl"></a> |
| |
| <div class="example"> |
| <pre class="example">pdf2brl infile outfile |
| </pre></div> |
| |
| <p>Infile must be a PDF (Portable Document Format) file. The script first |
| calls the <code>pdftotext</code> program, so you must have this installed |
| on your machine. It is part of xpdf and most likely already installed |
| if you’re on a modern Linux distribution. Otherwise, you can get it |
| from either <a href="http://poppler.freedesktop.org">http://poppler.freedesktop.org</a> or |
| <a href="http://www.foolabs.com/xpdf/download.html">http://www.foolabs.com/xpdf/download.html</a>. <code>pdftotext</code> |
| is called with the <samp>-raw</samp> and <samp>-</samp> options, which cause |
| it to place its output on stdout. This is piped to <code>file2brl</code>, |
| which is called with the <samp>-p</samp> option, since output from |
| <code>pdftotext</code> is likely to be poorly formatted. The output file |
| from <code>file2brl</code> is mostly in sensible paragraphs. |
| </p> |
| <hr> |
| <a name="Customization-Configuring-liblouisutdml"></a> |
| <a name="Customization_003a-Configuring-liblouisutdml"></a> |
| <h2 class="chapter">3 Customization: Configuring liblouisutdml</h2> |
| |
| <p>The operation of liblouisutdml is controlled by two types of files: |
| semantic-action files and configuration files. The former are |
| discussed in the section Connecting with the xml Document - |
| Semantic-action Files (see <a href="#Connecting-with-the-xml-Document">Connecting |
| with the xml Document - Semantic-Action Files</a>). The latter are |
| discussed in this section. A third type of file, braille translation |
| tables, is discussed in the liblouis documentation (see <a href="liblouis.html#Top">Overview</a> in <cite>Liblouis User’s and Programmer’s Manual</cite>). |
| Another section of the present document which may be of interest is |
| Implementing Braille Mathematical Codes (see <a href="#Implementing-Braille-Mathematics-Codes">Implementing Braille Mathematics Codes</a>). |
| </p> |
| <p>Besides files, liblouisutdml can also be controlled by configuration |
| strings, which are character strings in memory containing configuration |
| settings separated by end-of-line characters. Such strings can be |
| generated by the <samp>-C</samp> option on the <code>file2brl</code> command |
| line, by the <code>configstring</code> and <code>configtweak</code> semantic |
| actions, or by passing a string to the <code>lbu_initialize</code> function. |
| </p> |
| <p>The information below applies to <code>file2brl</code> as much as to |
| liblouisutdml. |
| </p> |
| <p>Before discussing configuration files in detail it is worth noting |
| that the application program has access to the information in the |
| configuration files by calling the liblouisutdml function |
| <code>lbu_initialize</code>. This function returns a pointer to a data |
| structure containing the configuration information. The calling program |
| must include the header file <code>louisutdml.h</code>. You do not need to call |
| <code>lbu_initialize</code> unless you need the facilities which it provides. |
| </p> |
| <p>A configuration file specification may contain more than one file name, |
| separated by commas. liblouisutdml will process these files in sequence, |
| merging the information they contain. The first file name may also |
| contain a path. liblouisutdml will search for the files it needs first |
| on this path. To make it search first the current directory precede the |
| first file name with <code>./</code>. After the path, if any, has been |
| evaluated, but before reading any of the files, liblouisutdml reads in a |
| file called <samp>liblouisutdml.ini</samp>. This file can contain any |
| configuration settings, but it usually contains only the minimum ones |
| for liblouisutdml to operate properly. You may alter the values in the |
| distribution <samp>liblouisutdml.ini</samp>, but you should not delete any |
| settings. Do not specify <samp>liblouisutdml.ini</samp> as your configuration |
| file. This will lead to error messages and program termination. If a |
| configuration file read in later contains a particular setting name, the |
| value specified simply replaces the one specified in |
| <samp>liblouisutdml.ini</samp> or any previously read configuration file. |
| </p> |
| <p>Originally, configuration files contained four main sections, |
| <code>outputFormat</code>, <code>translation</code>, <code>xml</code> and <code>style</code>. |
| The section names, except for <code>style</code> are now optional. In |
| addition, a configuration file can contain an include entry. This causes |
| the file named on that line to be read in at the point where the line |
| occurs. The sections need not follow each other in any particular order, |
| nor is the order of settings within each section important. The section |
| names, except for <code>style</code> are optional. In this document and in the |
| <samp>liblouisutdml.ini</samp> file, where section and setting names consist |
| of more than one word, the first letter of each word following the |
| initial one is capitalized. This is merely for readability. The case of |
| the letters in these names is ignored by the program. Section and |
| setting names may not contain spaces. |
| </p> |
| <p>In addition to <samp>liblouisutdml.ini</samp> the distribution also |
| sontains a number of configuration files. The most important of |
| these is <samp>preferences.cfg</samp>, which contains all possible |
| settings and a "default" value for each. You should use this file |
| as a refererence. It is the file read by the <code>file2brl</code> |
| command-line interface program if no configuration file is giben. |
| </p> |
| <p>Here, then, is an explanation of each section and setting in the |
| <samp>preferences.cfg</samp> file. When you look at this file you will see |
| that the section names start at the left margin, while the settings are |
| indented one tab stop. This is done for readability. it has no effect on |
| the meaning of the lines. You will also see lines beginning with a |
| number sign (‘<samp>#</samp>’), which are comments. Blank lines can also be used |
| anywhere in a configuration file. In general, a section name is a single |
| word or combination of unspaced words. However, each style has a section |
| of its own, so the word ‘<samp>style</samp>’ is followed by a space then by the |
| name of the style. Setting lines begin with the name of the setting, |
| followed by at least one space or tab, followed by the value of the |
| setting. A few settings have two values. |
| </p> |
| |
| <hr> |
| <a name="outputFormat"></a> |
| <a name="outputFormat-1"></a> |
| <h3 class="section">3.1 outputFormat</h3> |
| |
| <p>This section specifies the format of the output file (or string). |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-cellsPerLine"></a> |
| </dd> |
| <dt><code>cellsPerLine 40</code></dt> |
| <dd><p>The number of cells in a braille line. |
| </p> |
| <a name="index-linesPerPage"></a> |
| </dd> |
| <dt><code>linesPerPage 25</code></dt> |
| <dd><p>The number of lines on a braille page |
| </p> |
| <a name="index-interpoint"></a> |
| </dd> |
| <dt><code>interpoint no</code></dt> |
| <dd><p>Whether or not the output will be used to produce interpoint braille. |
| This affects the placement of page numbers and may affect other things |
| in the future. The only two values recognized are ‘<samp>yes</samp>’ and |
| ‘<samp>no</samp>’. |
| </p> |
| <a name="index-lineEnd"></a> |
| </dd> |
| <dt><code>lineEnd \r\n</code></dt> |
| <dd><p>This specifies the control characters to be placed at the end of each |
| output line. These characters vary from one intended use of the output |
| to another. Most embossers require the carriage-return and line-feed |
| combination specified above. However, a braille display may work best |
| with just one or the other. Any valid control characters can be |
| specified. |
| </p> |
| <a name="index-pageEnd"></a> |
| </dd> |
| <dt><code>pageEnd \f</code></dt> |
| <dd><p>The control Character to be given at the end of a page. Here it is a |
| forms-feed character, but it can be something else if deeded. |
| </p> |
| <a name="index-fileEnd"></a> |
| </dd> |
| <dt><code>fileEnd ^z</code></dt> |
| <dd><p>The control character to be placed at the end of the file, here a |
| control-z. |
| </p> |
| <a name="index-printPages"></a> |
| </dd> |
| <dt><code>printPages yes</code></dt> |
| <dd><p>Whether or not to show print page numbers if they are given in the xml |
| input. The two valid values are ‘<samp>yes</samp>’ and ‘<samp>no</samp>’. |
| </p> |
| <a name="index-braillePages"></a> |
| </dd> |
| <dt><code>braillePages yes</code></dt> |
| <dd><p>Whether or not to format the output into pages. Here the value is |
| ‘<samp>yes</samp>’, for use with an embosser. However the user of a braille |
| display may wish to specify ‘<samp>no</samp>’, so as not to be bothered with |
| page numbers and forms feed characters. If no is specified the lines |
| will still be of the length given in <code>cellsPerLine</code>, but the |
| value of <code>linesPerPage</code> will be ignored. |
| </p> |
| <a name="index-paragraphs"></a> |
| </dd> |
| <dt><code>paragraphs yes</code></dt> |
| <dd><p>Whether or not to format the output into paragraphs, using appropriate |
| styles. If ‘<samp>no</samp>’ is specified, what would be a paragraph is output |
| simply as one long line. Applications that wish to do their own |
| formatting may specify ‘<samp>no</samp>’. |
| </p> |
| <a name="index-beginningPageNumber"></a> |
| </dd> |
| <dt><code>beginningPageNumber 1</code></dt> |
| <dd><p>This is the number to be placed on the first Braille page if |
| <code>braillePages</code> is yes. This is useful when producing multiple |
| Braille volumes. |
| </p> |
| <a name="index-printPageNumberAt"></a> |
| </dd> |
| <dt><code>printPageNumberAt top</code></dt> |
| <dd><p>If print page numbers are given in the xml input file they will be |
| placed at the top of each braille page in the right-hand corner. If |
| <code>pageSeparator</code> is set to ‘<samp>yes</samp>’, a page separator line |
| will also be produced on the Braille page where the print page break |
| actually occurs. You may also specify ‘<samp>bottom</samp>’ for this setting. |
| </p> |
| <a name="index-braillePageNumberAt"></a> |
| </dd> |
| <dt><code>braillePageNumberAt bottom</code></dt> |
| <dd><p>The braille page number will be placed in the bottom right-hand corner |
| of each page. If <code>interpoint yes</code> has been specified only odd pages |
| will receive page numbers. You may also specify ‘<samp>top</samp>’ for this |
| setting. If print page numbers and Braille page numbers are |
| both placed at the top or bottom, they are rendered next to each other |
| with a space in between. |
| </p> |
| <a name="continuePages-setting"></a><a name="index-continuePages"></a> |
| </dd> |
| <dt><code>continuePages yes</code></dt> |
| <dd><p>Print page numbers can be prefixed with a letter (a, b, c, etc.) on |
| continued pages. The two valid values are ‘<samp>yes</samp>’ and ‘<samp>no</samp>’. |
| </p> |
| <a name="pageSeparator-setting"></a><a name="index-pageSeparator"></a> |
| </dd> |
| <dt><code>pageSeparator yes</code></dt> |
| <dd><p>A page separator line (or page break indicator), a line of unspaced |
| Braille dots 36, will be placed wherever a print page break occurs. No |
| page separator lines are placed on the first or last line of a Braille |
| page, and no page separator lines are shown when the new print page |
| coincides with a new Braille page. |
| </p> |
| <a name="index-pageSeparatorNumber"></a> |
| </dd> |
| <dt><code>pageSeparatorNumber yes</code></dt> |
| <dd><p>Show a page number at the far right margin of a page separator line. No |
| space is left between the separator line and the first symbol of the |
| page number. |
| </p> |
| <a name="index-ignoreEmptyPages"></a> |
| </dd> |
| <dt><code>ignoreEmptyPages yes</code></dt> |
| <dd><p>An empty page occurs when a <code>pagenum</code> tag is immediately followed |
| by another <code>pagenum</code> tag. By default, empty pages are completely |
| ignored. If you specify ‘<samp>no</samp>’ for this setting, a sequence of |
| <code>pagenum</code> tags will lead to a <em>combined</em> print page number: |
| the number of the first empty page is combined with that of the page on |
| which text reappears, e.g. 5-7. If lettered continuation pages are |
| required (see <code>continuePages</code>), they carry only the number of the |
| page on which text reappears. |
| </p> |
| <a name="printPageNumberRange-setting"></a><a name="index-printPageNumberRange"></a> |
| </dd> |
| <dt><code>printPageNumberRange no</code></dt> |
| <dd><p>By default, only the page number of the <em>first</em> print page on a |
| Braille page is shown at the top or bottom. However, if |
| <code>printPageNumberRange</code> is set to ‘<samp>yes</samp>’, the <em>range</em> of |
| print pages contained in the current Braille page is displayed. If the |
| first page in this range is a continued print page, it is prefixed |
| with a letter as usual (see <code>continuePages</code>). |
| </p> |
| <a name="index-mergeUnnumberedPages"></a> |
| </dd> |
| <dt><code>mergeUnnumberedPages yes</code></dt> |
| <dd><p>Page breaks without a page number can simply be ignored. This means that |
| unnumbered print pages will be treated as if they were a part of the |
| preceding page. You can also specify ‘<samp>no</samp>’ for this setting. |
| </p> |
| <a name="index-pageNumberTopSeparateLine"></a> |
| </dd> |
| <dt><code>pageNumberTopSeparateLine yes</code></dt> |
| <dd><p>Whether or not to provide a separate line for page numbers when they are |
| placed at the top of a Braille page. The two valid values are ‘<samp>yes</samp>’ and |
| ‘<samp>no</samp>’. A print page number range (see <code>printPageNumberRange</code>) |
| at the top of a page is always displayed on a separate line. |
| </p> |
| <a name="index-pageNumberBottomSeparateLine"></a> |
| </dd> |
| <dt><code>pageNumberBottomSeparateLine yes</code></dt> |
| <dd><p>Whether or not to provide a separate line for page numbers when they are |
| placed at the bottom of a Braille page. |
| </p> |
| <a name="index-hyphenate"></a> |
| </dd> |
| <dt><code>hyphenate no</code></dt> |
| <dd><p>If ‘<samp>yes</samp>’ is specified words will be hyphenated at the ends of |
| lines if a hyphenation table is available. In contracted English |
| Braille hyphenation is not generally used, but it can save |
| considerable space. The hyphenation table is specified as part of the |
| table list in the <code>literaryTextTable</code> setting of the translation |
| section. |
| </p> |
| <a name="index-outputEncoding"></a> |
| </dd> |
| <dt><code>outputEncoding ascii8</code></dt> |
| <dd><p>This specifies that the output is to be in the form of 8-bit ASCII |
| characters. This is generally used if the output is intended directly |
| for a braille embosser or display. The other values of encoding are |
| ‘<samp>UTF8</samp>’, ‘<samp>UTF16</samp>’ and ‘<samp>UTF32</samp>’. These are useful if the |
| application will process the output further, such as for generating |
| displays of braille dots on a screen. |
| </p> |
| <a name="index-inputTextEncoding"></a> |
| </dd> |
| <dt><code>inputTextEncoding ascii8</code></dt> |
| <dd><p>This setting is used to specify the encoding of an input text file. |
| The valid values are ‘<samp>UTF8</samp>’ and ‘<samp>ascii8</samp>’. |
| </p> |
| <a name="formatFor-setting"></a><a name="index-formatFor"></a> |
| </dd> |
| <dt><code>formatFor textDevice</code></dt> |
| <dd><p>This setting specifies the type of device the output is intended for. |
| ‘<samp>textDevice</samp>’ is any device that accepts plain text, including |
| embossers. You can also specify ‘<samp>browser</samp>’. In this case the |
| output will be formatted for viewing in a browser. If the input file |
| contains links, they will be preserved and can be used in the normal |
| way. The text will be translated into braille with the correct line |
| length. Math and computer material will be translated appropriately. |
| These files work well in lynx and Internet Explorer, not so well |
| in |
| elinks and Firefox (Before Jaws 10). |
| </p> |
| <a name="index-backFormat"></a> |
| </dd> |
| <dt><code>backFormat plain</code></dt> |
| <dd><p>This setting specifies the format of back-translated files. |
| ‘<samp>Plain</samp>’ specifies plain-text, while ‘<samp>html</samp>’ specifies xhtml. |
| The latter is always encoded in UTF-8. Plain-text files can be encoded |
| in ascii8, UTF-8 or UTF-16. Html is strongly recommended, since it |
| will preserve print page numbering and emphasis. |
| </p> |
| <a name="index-backLineLength"></a> |
| </dd> |
| <dt><code>backLineLength 70</code></dt> |
| <dd><p>This setting specifies the length of lines in back-translated files, |
| whether in plain-text or html. This is mainly for human readability. |
| Lines may sometimes be somewhat longer. |
| </p> |
| <a name="index-interline"></a> |
| </dd> |
| <dt><code>interline no</code></dt> |
| <dd><p>This setting specifies whether interlining is desired. If it is set to |
| ‘<samp>yes</samp>’, the first line in the output will be a braille |
| translation, the next line will be its back-translation according to |
| the interlineBackTable. Back-translation is used instead of simply |
| presenting the print original because a braille line may contain |
| additional information, such as leading blanks, print or braille page |
| numbers, print page separator lines, etc. |
| </p> |
| <a name="lineFill-setting"></a><a name="index-lineFill"></a> |
| </dd> |
| <dt><code>lineFill '</code></dt> |
| <dd><p>This setting defines the fill character that will be used before the |
| page numbers in the table of contents for example. The default fill |
| character is an apostrophe (dot 3). |
| </p> |
| </dd> |
| </dl> |
| |
| <hr> |
| <a name="translation"></a> |
| <a name="translation-1"></a> |
| <h3 class="section">3.2 translation</h3> |
| |
| <p>This section specifies the liblouis translation tables to be used for |
| various purposes. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-literaryTextTable"></a> |
| </dd> |
| <dt><code>literaryTextTable en-us-g2.ctb</code></dt> |
| <dd><p>The table used for producing literary braille. This may be either |
| contracted or uncontracted. |
| </p> |
| <a name="index-uncontractedTable"></a> |
| </dd> |
| <dt><code>uncontractedTable en-us-g1.ctb</code></dt> |
| <dd><p>The table used for producing uncontracted or Grade One braille. This |
| setting appears to be superfluous and may be eliminated in the future. |
| </p> |
| <a name="index-compbrailleTable"></a> |
| </dd> |
| <dt><code>compbrailleTable en-us-compbrl.ctb</code></dt> |
| <dd><p>The table used for producing large amounts of output in computer |
| braille, such as computer programs. The computer braille table is |
| usually combined with one of the two tables above. |
| </p> |
| <a name="index-mathtextTable"></a> |
| </dd> |
| <dt><code>mathtextTable en-us-mathtext.ctb</code></dt> |
| <dd><p>This table specifies how the non-mathematical parts of math books are |
| to be translated. In many cases it will be the same as |
| literaryTextTable or uncontractedTable. For books translated with the |
| Nemeth Code it is different, because this code requires modification |
| of standard Grade Two. |
| </p> |
| <a name="index-MathexpTable"></a> |
| </dd> |
| <dt><code>MathexpTable nemeth.ctb</code></dt> |
| <dd><p>This is the table used to translate mathematical expressions. |
| </p> |
| <a name="index-editTable"></a> |
| </dd> |
| <dt><code>editTable nemeth_edit.ctb</code></dt> |
| <dd><p>When the output includes both mathematics and text there may be errors |
| where one type of translation directly follows another. The editTable |
| removes these errors. |
| </p> |
| <a name="index-interlineBackTable"></a> |
| </dd> |
| <dt><code>interlineBackTable en-us-interline.ctb</code></dt> |
| <dd><p>This setting specifies the table to be used for back-translation when |
| interlining is turned on. It must be tailored for this purpose, since |
| an ordinary forward-translation table may contain entries that do not |
| handle the additional information in braille lines correctly. |
| </p> |
| </dd> |
| </dl> |
| |
| <hr> |
| <a name="xml"></a> |
| <a name="xml-1"></a> |
| <h3 class="section">3.3 xml</h3> |
| |
| <p>This section provides various information for the processing of xml files. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-semanticFiles"></a> |
| </dd> |
| <dt><code>semanticFiles *,nemeth.sem</code></dt> |
| <dd><p>This setting gives a list of semantic-action files. These files are |
| read in the sequence given in the list. Here the first member of the |
| list is an asterisk (‘<samp>*</samp>’). This means that the corresponding file |
| is to be named by taking the root element of the document and |
| appending ‘<samp>.sem</samp>’. This asterisk member may occur anywhere in the |
| list. |
| </p> |
| <a name="index-xmlheader"></a> |
| </dd> |
| <dt><code>xmlheader <?xml version='1.0' encoding='UTF8' standalone='yes'?></code></dt> |
| <dd><p>This line gives the xml header to be added to strings produced by |
| programs like <code>Mathtype</code> that lack one. |
| </p> |
| <a name="index-entity"></a> |
| </dd> |
| <dt><code>entity nbsp ^1</code></dt> |
| <dd><p>This line defines an entity or substitution in an xml file. It is one |
| of those that has two values. The first is the thing to be replaced, |
| and the second is the replacement. As many entity lines as necessary |
| can be used. The information they contain is added to the information |
| provided by xmlHeader. In <samp>liblouisutdml.ini</samp> this line is commented |
| out, because specifying it at this point would prevent the user from |
| specifying his own xmlheader. |
| </p> |
| <a name="index-internetAccess"></a> |
| </dd> |
| <dt><code>internetAccess yes</code></dt> |
| <dd><p>The computer has an internet connection and liblouisutdml may obtain |
| information necessary for the processing of this file from the |
| Internet. If this setting is ‘<samp>no</samp>’ liblouisutdml will not try to use |
| the internet. The necessary information may, however, be provided on |
| the local machine in the form of a "dtd" file. |
| </p> |
| <a name="index-newEntries"></a> |
| </dd> |
| <dt><code>newEntries yes</code></dt> |
| <dd><p>liblouisutdml may create a new semantic-action file (beginning with |
| <samp>new_</samp>) for a document with an unknown root element or a file |
| (beginning with <samp>appended_</samp>) containing new entries for an |
| existing semantic-action file. Both kinds of files are placed on the |
| current directory. If this setting is ‘<samp>no</samp>’ liblouisutdml will not |
| create a file of new entries and if it encounters a document with an |
| unknown root element it will issue an error message. Setting |
| newEntries to ‘<samp>no</samp>’ may be useful if users should not be bothered |
| with the minutiae of semantic-action files. |
| </p> |
| </dd> |
| </dl> |
| |
| <hr> |
| <a name="style"></a> |
| <a name="style-1"></a> |
| <h3 class="section">3.4 style</h3> |
| |
| <p>The following sections all deal with styles. Each style has its own |
| section. Style section names are unlike other section names in that they |
| consist of the word style, followed by a space, followed by a style |
| name. With some exceptions, styles are not hard-coded. The user may |
| define any style desired, with any name except <code>document</code>, |
| <code>para</code>, <code>heading1</code>, <code>heading2</code>, <code>heading3</code>, |
| <code>heading4</code>, <code>contentsheader</code>, <code>contents1</code>, |
| <code>contents2</code>, <code>contents3</code> and <code>contents4</code>. The first two |
| are needed for basic formatting. The others are needed for the table of |
| contents tool. The user must define settings for these styles as for any |
| others. This is done in <samp>liblouisutdml.ini</samp>, which also contains |
| definitions and settings for many other styles. The user can add styles |
| at any time in her/his own configuration files. |
| </p> |
| <p>Styles can be nested. That is, a document may contain a section of one |
| style, and inside this may be a section of another style. For example, |
| you might have styles named frontMatter, titlePage, dedication, |
| contents, and so on. Your document might contain a section of style |
| frontMatter. Inside this section might be subsections of styles |
| titlePage, dedication, contents, and so on. Inside the titlePage section |
| there might be other sections with styles heading1, para, centered, etc. |
| </p> |
| <p>Your frontMatter style might also define the "persistent" style setting |
| <code>braillePageNumberFormat roman</code>. This setting will apply to all the |
| styles nested within frontMatter, unless they have a setting other than |
| ‘<samp>normal</samp>’, which is the default and means ordinary braille page |
| numbers. However, the titlePage style might have the setting |
| <code>braillePageNumberFormat blank</code>. This will apply to all styles |
| nested within it. When the titlePage section ends, the frontMatter |
| setting ‘<samp>roman</samp>’ will be restored. The |
| ‘<samp>braiblePageNumberFormat</samp>’ setting is an example of a "persistent" |
| style setting. Most settings apply only to the style for which they are |
| declared. |
| </p> |
| |
| <p>Below are the settings for the predefined style names. The |
| ‘<samp>document</samp>’ style contains all possible settings. The others contain |
| only settings that are different from the defaults. |
| </p> |
| <a name="style-document"></a> |
| <h4 class="subsection">3.4.1 style document</h4> |
| |
| <p>This is a predefined style name. All settings have their default values. |
| The user must specify any other values. If a "persistent" style setting |
| is specified, it will apply to the whole ducument. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-linesBefore"></a> |
| </dd> |
| <dt><code>linesBefore 0</code></dt> |
| <dd> |
| <p>This setting gives the number of blank lines which should be left |
| before the text to which this style applies. It is set to a non-zero |
| value for some header styles. |
| </p> |
| <a name="index-linesAfter"></a> |
| </dd> |
| <dt><code>linesAfter 0</code></dt> |
| <dd> |
| <p>The number of blank lines which should be left after the text to which |
| this style applies. |
| </p> |
| <a name="index-leftMargin"></a> |
| </dd> |
| <dt><code>leftMargin 0</code></dt> |
| <dd> |
| <p>The number of cells by which the left margin of all lines in the text |
| should be indented. Used for hanging indents, among other things. This |
| is a "persistent" setting, so by default all nested styles will inherit |
| the setting. |
| </p> |
| <a name="index-rightMargin"></a> |
| </dd> |
| <dt><code>rightMargin 0</code></dt> |
| <dd> |
| <p>The equivalent of ‘<samp>leftMargin</samp>’ for the right side of the page. |
| This is also a persistent setting. |
| </p> |
| <a name="index-firstLineIndent"></a> |
| </dd> |
| <dt><code>firstLineIndent 0</code></dt> |
| <dd> |
| <p>The number of cells by which the first line is to be indented relative |
| to leftMargin. firstLineIndent may be negative. If the result is less |
| than 0 it will be set to 0. This setting is persistent. |
| </p> |
| <a name="index-translate"></a> |
| </dd> |
| <dt><code>translate contracted</code></dt> |
| <dd> |
| <p>This setting is currently inactive. It may be used in the future. This |
| setting tells how text in this style should be translated. Possible |
| values are ‘<samp>contracted</samp>’, ‘<samp>uncontracted</samp>’, ‘<samp>compbrl</samp>’, |
| ‘<samp>mathtext</samp>’ and ‘<samp>mathexpr</samp>’. |
| </p> |
| <a name="index-skipNumberLines"></a> |
| </dd> |
| <dt><code>skipNumberLines no</code></dt> |
| <dd> |
| <p>If this setting is ‘<samp>yes</samp>’ the top and bottom lines on the page |
| will be skipped if they contain braille or print page numbers. This is |
| useful in some of the mathematical and graphical styles. |
| </p> |
| <a name="index-format"></a> |
| </dd> |
| <dt><code>format leftJustified</code></dt> |
| <dd> |
| <p>The format setting controls how the text in the style will be |
| formatted. Valid values are ‘<samp>leftJustified</samp>’, |
| ‘<samp>rightJustified</samp>’, ‘<samp>centered</samp>’, ‘<samp>computerCoded</samp>’, |
| ‘<samp>alignColumnsLeft</samp>’, ‘<samp>alignColumnsRight</samp>’, |
| and ‘<samp>contents</samp>’. The first three are self-explanatory. |
| ‘<samp>computerCoded</samp>’ is used for computer programs and similar material. |
| The next two are used for tabular material. ‘<samp>alignColumnsLeft</samp>’ |
| causes the left ends of columns to be aligned. ‘<samp>alignColumnsRight</samp>’ |
| causes the right ends of columns to be aligned. ‘<samp>contents</samp>’ is used |
| only in styles specifically intended for tables of contents. In the |
| case of ‘<samp>leftJustified</samp>’, ‘<samp>rightJustified</samp>’ and ‘<samp>centered</samp>’, |
| nested styles inherit this setting by default. |
| </p> |
| <a name="index-newPageBefore"></a> |
| </dd> |
| <dt><code>newPageBefore no</code></dt> |
| <dd> |
| <p>If this setting is ‘<samp>yes</samp>’, the text will begin on a new page. This |
| is useful for certain mathematical and graphical styles. Page numbers |
| are handled properly. |
| </p> |
| <a name="index-newPageAfter"></a> |
| </dd> |
| <dt><code>newPageAfter no</code></dt> |
| <dd> |
| <p>If this setting is ‘<samp>yes</samp>’ any remaining space on the page after |
| the material covered by this style is handled is left blank, except |
| for page numbers. |
| </p> |
| <a name="index-rightHandPage"></a> |
| </dd> |
| <dt><code>rightHandPage no</code></dt> |
| <dd> |
| <p>if this setting is ‘<samp>yes</samp>’ and interpoint is yes the material |
| covered by this style will start on a right-hand page. This may cause |
| a left-hand page to be left blank except for page numbers. If |
| interpoint is ‘<samp>no</samp>’ this setting is equivalent to newPageBefore. |
| </p> |
| <a name="index-braillePageNumberFormat"></a> |
| </dd> |
| <dt><code>braillePageNumberFormat normal</code></dt> |
| <dd> |
| <p>This setting specifies the format of braille page numbers. ‘<samp>normal</samp>’ |
| means ordinary Arabic numbers. ‘<samp>roman</samp>’ means Roman numbers. |
| ‘<samp>p</samp>’ means to precede Arabic numbers with the letter "p" (for |
| preliminary). Finally, ‘<samp>blank</samp>’ causes the page number to be blank |
| (no page numbers). This is a "persistent" style setting. |
| </p> |
| <a name="index-dontSplit"></a> |
| </dd> |
| <dt><code>dontSplit no</code></dt> |
| <dd> |
| <p>If this setting is ‘<samp>yes</samp>’, the element is protected from being |
| split across pages. This means that if a block of text doesn’t fit on |
| the current page, it will be placed at the beginning of the next one. |
| This setting applies to the whole element, including children, so if |
| nested styles specify other values for ‘<samp>dontSplit</samp>’, these values |
| will be ignored. |
| </p> |
| <a name="index-keepWithNext"></a> |
| </dd> |
| <dt><code>keepWithNext no</code></dt> |
| <dd> |
| <p>If this setting is ‘<samp>yes</samp>’, the element covered by this style is |
| protected from being split across pages, and in addition it is kept |
| together with the first line of text of the next sibling. |
| </p> |
| <a name="index-orphanControl"></a> |
| </dd> |
| <dt><code>orphanControl 0</code></dt> |
| <dd> |
| <p>With this setting you can control how many lines of text of an |
| element must be printed at least at the bottom of a braille page. |
| The default value is ‘<samp>0</samp>’. To have an effect, the setting must |
| have a value of ‘<samp>2</samp>’ or more. |
| </p> |
| </dd> |
| </dl> |
| |
| <a name="contentsheader-style"></a><a name="style-contentsheader"></a> |
| <h4 class="subsection">3.4.2 style contentsheader</h4> |
| |
| <p>This style is used to specify where the table of contents should be |
| placed and its title. The xml tag assigned to it in the semantic action |
| file should be placed in the document where you want the table of |
| contents, and it should contain the title of that table between its |
| starting and ending markers. |
| </p> |
| <dl compact="compact"> |
| <dd><a name="index-linesBefore-1"></a> |
| </dd> |
| <dt><code>linesBefore 1</code></dt> |
| <dd><a name="index-linesAfter-1"></a> |
| </dd> |
| <dt><code>linesAfter 1</code></dt> |
| <dd><a name="index-format-1"></a> |
| </dd> |
| <dt><code>format centered</code></dt> |
| </dl> |
| |
| <a name="style-contents1"></a> |
| <h4 class="subsection">3.4.3 style contents1</h4> |
| <p>This style and the other contents styles are used for the table of |
| contents and correspond to the ten heading levels (‘<samp>contents5</samp>’, |
| ‘<samp>contents6</samp>’, ‘<samp>contents7</samp>’, ‘<samp>contents8</samp>’, |
| ‘<samp>contents9</samp>’ and ‘<samp>contents10</samp>’ are not showed here). |
| </p> |
| <dl compact="compact"> |
| <dd><a name="index-firstLineIndent-1"></a> |
| </dd> |
| <dt><code>firstLineIndent -2</code></dt> |
| <dd><a name="index-leftMargin-1"></a> |
| </dd> |
| <dt><code>leftMargin 2</code></dt> |
| <dd><a name="index-format-2"></a> |
| </dd> |
| <dt><code>format contents</code></dt> |
| </dl> |
| <a name="style-contents2"></a> |
| <h4 class="subsection">3.4.4 style contents2</h4> |
| <dl compact="compact"> |
| <dd><a name="index-firstLineIndent-2"></a> |
| </dd> |
| <dt><code>firstLineIndent -2</code></dt> |
| <dd><a name="index-leftMargin-2"></a> |
| </dd> |
| <dt><code>leftMargin 4</code></dt> |
| <dd><a name="index-format-3"></a> |
| </dd> |
| <dt><code>format contents</code></dt> |
| </dl> |
| <a name="style-contents3"></a> |
| <h4 class="subsection">3.4.5 style contents3</h4> |
| <dl compact="compact"> |
| <dd><a name="index-firstLineIndent-3"></a> |
| </dd> |
| <dt><code>firstLineIndent -2</code></dt> |
| <dd><a name="index-leftMargin-3"></a> |
| </dd> |
| <dt><code>leftMargin 6</code></dt> |
| <dd><a name="index-format-4"></a> |
| </dd> |
| <dt><code>format contents</code></dt> |
| </dl> |
| <a name="style-contents4"></a> |
| <h4 class="subsection">3.4.6 style contents4</h4> |
| <dl compact="compact"> |
| <dd><a name="index-firstLineIndent-4"></a> |
| </dd> |
| <dt><code>firstLineIndent -2</code></dt> |
| <dd><a name="index-leftMargin-4"></a> |
| </dd> |
| <dt><code>leftMargin 8</code></dt> |
| <dd><a name="index-format-5"></a> |
| </dd> |
| <dt><code>format contents</code></dt> |
| </dl> |
| |
| <a name="style-heading1"></a> |
| <h4 class="subsection">3.4.7 style heading1</h4> |
| |
| <p>This style is used for main headings, such as chapter titles. |
| </p> |
| <dl compact="compact"> |
| <dd><a name="index-linesBefore-2"></a> |
| </dd> |
| <dt><code>linesBefore 1</code></dt> |
| <dd><a name="index-center"></a> |
| </dd> |
| <dt><code>center yes</code></dt> |
| <dd><a name="index-linesAfter-2"></a> |
| </dd> |
| <dt><code>linesAfter 1</code></dt> |
| </dl> |
| |
| <a name="style-heading2"></a> |
| <h4 class="subsection">3.4.8 style heading2</h4> |
| |
| <p>The first level of subheadings after the main heading. |
| </p> |
| <dl compact="compact"> |
| <dd><a name="index-linesBefore-3"></a> |
| </dd> |
| <dt><code>linesBefore 1</code></dt> |
| <dd><a name="index-firstLineIndent-5"></a> |
| </dd> |
| <dt><code>firstLineIndent 4</code></dt> |
| </dl> |
| |
| <a name="style-heading3"></a> |
| <h4 class="subsection">3.4.9 style heading3</h4> |
| |
| <p>The third level of headings. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-firstLineIndent-6"></a> |
| </dd> |
| <dt><code>firstLineIndent 4</code></dt> |
| </dl> |
| |
| <a name="style-heading4"></a> |
| <h4 class="subsection">3.4.10 style heading4</h4> |
| |
| <p>The fourth level of headings. There are six more levels: |
| ‘<samp>heading5</samp>’, ‘<samp>heading6</samp>’, ‘<samp>heading7</samp>’, |
| ‘<samp>heading8</samp>’, ‘<samp>heading9</samp>’ and ‘<samp>heading10</samp>’. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-firstLineIndent-7"></a> |
| </dd> |
| <dt><code>firstLineIndent 4</code></dt> |
| </dl> |
| |
| <a name="style-para"></a> |
| <h4 class="subsection">3.4.11 style para</h4> |
| |
| <p>Paragraph. This is ordinary body text. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-firstLineIndent-8"></a> |
| </dd> |
| <dt><code>firstLineIndent 2</code></dt> |
| </dl> |
| |
| <hr> |
| <a name="Connecting-with-the-xml-Document"></a> |
| <a name="Connecting-with-the-xml-Document-_002d-Semantic_002dAction-Files"></a> |
| <h2 class="chapter">4 Connecting with the xml Document - Semantic-Action Files</h2> |
| |
| |
| <hr> |
| <a name="Semantic-Actions-Overview"></a> |
| <a name="Overview-1"></a> |
| <h3 class="section">4.1 Overview</h3> |
| |
| |
| <p>When liblouisutdml (or <code>file2brl</code>) processes an xml document, it |
| needs to be told how to use the information in that document to |
| produce a properly translated and formatted braille document. These |
| instructions are provided by a semantic-action file, so called because |
| it explains the meaning, or semantics, of the various specifications |
| in the xml document. To understand how this works, it is necessary to |
| have a basic knowledge of the organization of an xml document. |
| </p> |
| <p>An xml document is organized like a book, but with much finer detail. |
| First there is the title of the whole book. Then there are various |
| sections, such as author, copyright, table of contents, dedication, |
| acknowledgments, preface, various chapters, bibliography, index, and so |
| on. Each chapter may be divided into sections, and these in turn can be |
| divided into subsections, subsubsections, etc. In a book the parts have |
| names or titles distinguished by capitalization, type fonts, spacing, |
| and so forth. In an xml document the names of the parts are enclosed in |
| angle brackets (‘<samp><></samp>’). For example, if liblouisutdml encounters |
| <code><html></code> at the beginning of a document, it knows it is dealing |
| with a document that conforms to the standards of the extensible markup |
| language (xhtml) - at least we hope it does. When you see a book, you |
| know it’s a book. The computer can know only by being told. Something |
| enclosed in angle brackets is called an "element" (more properly, a |
| "tag") in xml parlance. (There may be more between the angle brackets |
| than just the name of the element. More of this later). The first |
| "element" in a document thus tells liblouisutdml what kind of document it |
| is dealing with. This element is called the "root element" because the |
| document is visualized as branching out from it like a tree. Some |
| examples of root elements are <code><html></code>, <code><math></code>, |
| <code><book></code>, <code><dtbook></code> and <code><wordDocument></code>. Whenever |
| liblouisutdml encounters a root element that it doesn’t know about it |
| creates a new file called a semantic-action file. The name of this file |
| is formed by stripping the angle brackets from the root element, putting |
| ‘<samp>new_</samp>’ in front of it and adding a period plus the letters |
| ‘<samp>sem</samp>’. For example, ‘<samp>new_myformat.sem</samp>’. If you look in a |
| directory containing semantic-action files you will see names like |
| <samp>html.sem</samp>, <samp>dtbook.sem</samp>, <samp>math.sem</samp>, and so on. The |
| "new" semantic-action files must be edited by a person and the prefix |
| "new" removed to get an ordinary semantic-action file name. |
| </p> |
| <p>Sometimes it is advantageous to preempt the creation of a |
| semantic-action file for a new root element. For example, an article |
| written according to the docbook specification may have the root element |
| <code><article></code>. However, the specification itself has the root element |
| <code><book></code>. In this case you can specify the <samp>book.sem</samp> file in |
| the configuration file by writing, in the xml section,: |
| </p> |
| <div class="example"> |
| <pre class="example">semanticFiles book.sem |
| </pre></div> |
| |
| <p>You will note that this setting uses the plural of "file". This is |
| because you can actually specify a list of file names separated by |
| commas. You might want to do this to specify the semantic-action file |
| for the particular braille mathematical code to be used. For example: |
| </p> |
| <div class="example"> |
| <pre class="example">semanticFiles book.sem,ukmaths.sem |
| </pre></div> |
| |
| <p>You can use an asterisk <code>*</code> to specify the semantic-action file |
| corresponding to the root element of the document anywhere in the list. |
| </p> |
| <p>As you will see in the next section, different braille style |
| conventions and different braille mathematical codes may require |
| different semantic-action files |
| </p> |
| <p>liblouisutdml records the names of all elements found in the document in |
| the semantic-action file. The document has a multitude of elements, |
| which can be thought of as describing the headings of various parts of |
| the document. One element is used to denote a chapter heading. Another |
| is used to denote a paragraph, Still another to denote text in bold |
| type, and so on. In other words, the elements take the place of the |
| capitalization, changes in type font, spacing, etc. in a book. |
| However, the computer still does not know what to do when it |
| encounters an element. The semantic-action file tells it that. |
| </p> |
| <p>Consider <samp>html.sem</samp>. A copy is included as part of this |
| documentation with the name <samp>example_html.sem</samp> |
| (see <a href="#html_002esem">html.sem</a>). It may differ from the file that liblouisutdml is |
| currently using. You will see that it begins with some lines about |
| copyrights. Each line begins with a number sign (‘<samp>#</samp>’). This |
| indicates that it is a "comment", intended for the human reader and |
| the computer should ignore it. Then there is a blank line. Finally, |
| there are two other comments explaining that the file must be edited |
| to get proper output. This is because a human being must tell the |
| computer what to do with each element. The semantic files for common |
| types of documents have already been edited, so you generally don’t |
| have to worry about this. But if you encounter a new type of document |
| or wish to specify special handling for styles or mathematics you may |
| have to edit the semantic-action file or send it to the maintainer for |
| editing. In any case the rest of this section is essential for |
| understanding how liblouisutdml handles documents and for making changes |
| if the way it does so is not correct. |
| </p> |
| <p>After another blank line you will see a table consisting of two, and |
| sometimes three, columns. The first column contains a word which tells |
| the computer to do something. For example, the first entry in the |
| table is: ‘<samp>include nemeth.sem</samp>’. This tells liblouisutdml to include |
| the information in the <samp>nemeth.sem</samp> file when it is deciphering |
| an html (actually xhtml) document (it may be preferable to use the |
| semanticFiles setting in the configuration file rather than an |
| include). |
| </p> |
| <p>The second row of the table is: |
| </p> |
| <div class="example"> |
| <pre class="example">no hr |
| </pre></div> |
| |
| <p>‘<samp>hr</samp>’ is an element with the angle brackets removed. It means |
| nothing in itself. However, the first column contains the word |
| ‘<samp>no</samp>’. This tells liblouisutdml "no do", that is, do nothing. This is |
| not strictly true, since liblouisutdml will sometimes insert a blank space |
| so that words in text do not run together. |
| </p> |
| <p>After a few more lines with ‘<samp>no</samp>’ in the first column, we see one |
| that says: |
| </p> |
| <div class="example"> |
| <pre class="example">softreturn br |
| </pre></div> |
| |
| <p>This means that when the element <code><br></code> is encountered, |
| liblouisutdml is to do a soft return, that is, start a new line without |
| starting a new paragraph. |
| </p> |
| <p>The next line says: |
| </p> |
| <div class="example"> |
| <pre class="example">heading1 h1 |
| </pre></div> |
| |
| <p>This tells liblouisutdml that when it encounters the element <code><h1></code> |
| it is to format the text which follows as a first-level braille |
| heading, that is, the text will be centered and preceeded and followed |
| by blank lines. (You can change this by changing the definition of the |
| heading1 style). |
| </p> |
| <p>The next line says: |
| </p> |
| <div class="example"> |
| <pre class="example">italicx em |
| </pre></div> |
| |
| <p>This tells liblouisutdml that when it encounters the element <code><em></code> |
| it is to enclose the text which follows in braille italic indicators. |
| The ‘<samp>x</samp>’ at the end of the semantic action name is there to |
| prevent conflicts with names elsewhere in the software. Just where the |
| italic indicators will be placed is controlled by the liblouis |
| translation table in use. |
| </p> |
| <p>The next line says: |
| </p> |
| <div class="example"> |
| <pre class="example">skip style |
| </pre></div> |
| |
| <p>This tells liblouis to simply skip ahead until it encounters the |
| element <code></style></code>. Nothing in between will have any effect on |
| the braille output. Note the slash (‘<samp>/</samp>’) before the ‘<samp>style</samp>’. |
| This means the end of whatever the <code><style></code> element was |
| referring to. Actually, it was referring to specifications of how |
| things should be printed. If liblouisutdml had not been told to skip |
| these specifications, the braille output would have contained a lot of |
| gobledygook. |
| </p> |
| <p>The next line says: |
| </p> |
| <div class="example"> |
| <pre class="example">italicx strong |
| </pre></div> |
| |
| <p>This tells liblouis to also use the italic braille indicators for the |
| text between the <code><strong></code> and <code></strong></code> elements. |
| </p> |
| <p>After a few more lines with ‘<samp>no</samp>’ in the first column we come to |
| the line: |
| </p> |
| <div class="example"> |
| <pre class="example">document html |
| </pre></div> |
| |
| <p>This tells liblouisutdml that everything between <code><html></code> and |
| <code></html></code> is an entire document. <code><html></code> was the root |
| element of this document, so this is logical. |
| </p> |
| <p>After another ‘<samp>no</samp>’ line we come to: |
| </p> |
| <div class="example"> |
| <pre class="example">para p |
| </pre></div> |
| |
| <p>liblouisutdml will consider everything between <code><p></code> and |
| <code></p></code> to be a normal body text paragraph. |
| </p> |
| <p>The next line is: |
| </p> |
| <div class="example"> |
| <pre class="example">heading1 title |
| </pre></div> |
| |
| |
| <p>this causes the title of the document to also be treated as a braille |
| level 1 heading. |
| </p> |
| <p>Next we have the line: |
| </p> |
| <div class="example"> |
| <pre class="example">list li |
| </pre></div> |
| |
| <p>The xhtml <code><li></code> and <code></li></code> pair of elements is used to |
| enclose an item in a list. liblouisutdml will format this with its own |
| list style. That is, the first line will begin at the left margin and |
| subsequent lines will be indented two cells. |
| </p> |
| <p>Next we have: |
| </p> |
| <div class="example"> |
| <pre class="example">table table |
| </pre></div> |
| |
| <p>You will note that the names of actions and elements are often |
| identical. This is because they are both mnemonic. In any case, this |
| line tells liblouisutdml to format the table contained in the xhtml |
| document according to the table formatting rules it has been given for |
| braille output. |
| </p> |
| <p>Next we have the line: |
| </p> |
| <div class="example"> |
| <pre class="example">heading2 h2 |
| </pre></div> |
| |
| <p>This means that the text between <code><h2></code> and <code></h2></code> is to be |
| formatted according to the Liblouisutdml style heading2. A blank line |
| will be left before the heading and the first line will be indented |
| four spaces. |
| </p> |
| <p>After a few more lines we come to: |
| </p> |
| <div class="example"> |
| <pre class="example">no table,cellpadding |
| </pre></div> |
| |
| <p>Note the comma in the second column. This divides the column into two |
| subcolumns. The first is the table element name. The second is called |
| an "attribute" in xml. It gives further instructions about the |
| material enclosed between the starting and ending "tags" of the |
| element (<code><table></code> and <code></table></code>. Full information requires |
| three subcolumns. The third is called the value and gives the actual |
| information. The attribute is merely the name of the information. |
| </p> |
| <p>Much further down we find: |
| </p> |
| <div class="example"> |
| <pre class="example">no table,border,0 |
| </pre></div> |
| |
| <p>Here the element is table, the attribute is border and the value is 0. |
| If liblouisutdml were to interpret this, it would mean that the table |
| was to have a border of 0 width. It is not told to do so because |
| tables in braille do not have borders. |
| </p> |
| <p>Now let’s look at the file which is included at the beginning of the |
| <samp>html.sem</samp> file. This is <samp>nemeth.sem</samp>. As with |
| <samp>html.sem</samp>, a copy is included in the appendix |
| (see <a href="#nemeth_002esem">nemeth.sem</a>), but it is not necessarily the one that |
| liblouisutdml is currently using. It illustrates several more things |
| about how liblouisutdml uses semantic-action files. |
| </p> |
| <p>The first thing you will notice is that for quite a few lines the |
| first and second columns are identical. This is because the MathML |
| element and attribute names are part of a standard, and it was |
| simplest to use the element names for the semantic actions as well. Most |
| of these actions do not do anything and could be replaced with the |
| <code>generic</code> semantic action. They are retained for backward |
| compatibility. |
| </p> |
| <p>The first line of real interest is: |
| </p> |
| <div class="example"> |
| <pre class="example">math math |
| </pre></div> |
| |
| <p>Every mathematical expression begins with the element <code><math></code> |
| (which may have attributes and values), and ends with <code></math></code>. |
| This is therefore the root element of a mathematical expression. |
| However, mathematical expressions are usually part of a document, so |
| it is not given the semantic action document. The math semantic action |
| causes liblouisutdml to carry out special interpretation actions. These |
| will become clearer as we continue to look at the <samp>nemeth.sem</samp> |
| file. You will note that this line has three columns. The meaning of |
| the third column is discussed below. |
| </p> |
| <p>After another uninteresting line we come to two that illustrate |
| several more facts about semantic-action files: |
| </p> |
| <div class="example"> |
| <pre class="example">mfrac mfrac ^?,/,^# |
| mfrac mfrac,linethickness,0 ^(,^;%,^) |
| </pre></div> |
| |
| <p>Like the math entry above, the first line has three columns. While the |
| first two columns must always be present, the third column is |
| optional. Here, it is also divided into subcolumns by commas. The |
| element <code><mfrac></code> indicates a fraction. A fraction has two parts, |
| a numerator and a denominator. In xml, we call these parts children of |
| <code><mfrac></code>. They may be represented in various ways, which need |
| not concern us here. What is of real importance is that the third |
| column tells liblouisutdml to put the characters ‘<samp>~?</samp>’ before the |
| numerator, ‘<samp>/</samp>’ between the numerator and denominator, and |
| ‘<samp>~#</samp>’ after the denominator. Later on, liblouis will translate |
| these characters into the proper representation of a fraction in the |
| Nemeth Code of Braille Mathematics. (For other mathematical codes, |
| see <a href="#Implementing-Braille-Mathematics-Codes">Implementing Braille Mathematics Codes</a>). |
| </p> |
| <p>The second line is of even greater interest. The first column is again |
| ‘<samp>mfrac</samp>’, but this line is for binomial coefficient. The second |
| column contains three subcolumns, an element name, an attribute name |
| and an attribute value. The attribute linethickness specifies the |
| thickness of the line separating the numerator and denominator. Here |
| it is 0, so there is no line. This is how the binomial coefficient is |
| represented in print. The third column tells how to represent it in |
| braille. liblouisutdml will supply ‘<samp>~(</samp>’, upper number, ‘<samp>~%</samp>’, |
| lower number, ‘<samp>~)</samp>’ to liblouis, which will then produce the |
| proper braille representation for the binomial coefficient. |
| </p> |
| <p>Returning to the line for the math element, we see that the third |
| column begins with a backslash followed by an asterisk. The backslash |
| is an escape character which gives a special meaning to the character |
| which follows it. Here the asterisk means that what follows is to be |
| placed at the very end of the mathematical expression, no matter how |
| complex it is. |
| </p> |
| <p>For further discussion of how the third column is used |
| see <a href="#Implementing-Braille-Mathematics-Codes">Implementing Braille Mathematics Codes</a>. The third column is |
| not limited to mathematics. It can be used to add characters to |
| anything enclosed by an xml tag. |
| </p> |
| <hr> |
| <a name="Semantic-Actions-in-detail"></a> |
| <a name="Semantic-Actions-in-detail-1"></a> |
| <h3 class="section">4.2 Semantic Actions in detail</h3> |
| |
| <p>Here is a complete list of the semantic actions which liblouisutdml |
| recognizes. Some of them are also the names of styles. These are listed |
| in the first table. For a discussion of these, see <a href="#Customization-Configuring-liblouisutdml">Customization Configuring liblouisutdml</a>. |
| </p> |
| <p>Generally the format of a semantic action is: |
| </p> |
| <div class="example"> |
| <pre class="example">semanticAction elementSpecifier optionalArguments |
| </pre></div> |
| |
| <p><code>elementSpecifier</code> is the second-column value, which may be an |
| element name, an element-attribute pair or an element-attribute-value |
| triplet, separated by commas. This specifies where a semantic action |
| is to be applied. If it is solely an element then the action is |
| applied if this element is encountered. If it is an element-attribute |
| pair then the action is applied if the given element also has the |
| specified attribute. In the last case with a element-attribute-value |
| triplet the action is only applied if the element has the specified |
| attribute and the value of this attribute is equal to the specified |
| value. |
| </p> |
| <dl compact="compact"> |
| <dd> |
| <a name="index-contenss1"></a> |
| <a name="contenss1-semantic"></a></dd> |
| <dt><code>contenss1 elementSpecifier</code></dt> |
| <dd> |
| <p>Note that the <code>contenss1</code>, etc. semantic actions are never |
| assigned an |
| actual <code>elementSpecifier</code>. There used internally by the table of |
| contents generator. They should be assigned style settings, however. |
| </p> |
| |
| <a name="index-contenss2"></a> |
| <a name="contenss2-semantic"></a></dd> |
| <dt><code>contenss2 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-contenss3"></a> |
| <a name="contenss3-semantic"></a></dd> |
| <dt><code>contenss3 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-contenss4"></a> |
| <a name="contenss4-semantic"></a></dd> |
| <dt><code>contenss4 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-contentsheader"></a> |
| <a name="contentsheader-semantic"></a></dd> |
| <dt><code>contentsheader elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action must be assigned an element specifier if used. See |
| the discussion of it in the section on styles. |
| </p> |
| <a name="index-document"></a> |
| <a name="document-semantic"></a></dd> |
| <dt><code>document elementSpecifier</code></dt> |
| <dd> |
| <a name="index-heading1"></a> |
| <a name="heading1-semantic"></a></dd> |
| <dt><code>heading1 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-heading2"></a> |
| <a name="heading2-semantic"></a></dd> |
| <dt><code>heading2 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-heading3"></a> |
| <a name="heading3-semantic"></a></dd> |
| <dt><code>heading3 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-heading4"></a> |
| <a name="heading4-semantic"></a></dd> |
| <dt><code>heading4 elementSpecifier</code></dt> |
| <dd> |
| <a name="index-para"></a> |
| <a name="para-semantic"></a></dd> |
| <dt><code>para elementSpecifier</code></dt> |
| </dl> |
| |
| <p>The following table expbains each of the non-style semantic actions. In |
| general, each one performs a particular function. If a third column is |
| given, the subcolumns will be inserted in order before each branch of |
| any subtree starting from <code>elementSpecifier</code>. |
| </p> |
| |
| <dl compact="compact"> |
| <dd> |
| <a name="index-blankline"></a> |
| <a name="blankline-semantic"></a></dd> |
| <dt><code>blankline elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action causes a blank line to appear in the output |
| wherever it may occur. It is useful for fine formatting independent of |
| styles. <code>elementSpecifier</code> should be an empty element, that is, of |
| the form <code><elementSpecifier/></code>. If it is not, any content which it |
| may contain will be ignored. |
| </p> |
| <a name="index-boldx"></a> |
| <a name="boldx-semantic"></a></dd> |
| <dt><code>boldx elementSpecifier</code></dt> |
| <dd> |
| <p>Enclose the text which follows in braille bold indicators. The ‘<samp>x</samp>’ |
| at the end of the semantic action name is there to prevent conflicts |
| with names elsewhere in the software. Just where the bold indicators |
| will be placed is controlled by the liblouis translation table in use. |
| </p> |
| <a name="index-boxline"></a> |
| <a name="boxline-semantic"></a></dd> |
| <dt><code>boxline elementSpecifier character</code></dt> |
| <dd> |
| <p>A line consisting entirely of the character in the third column is |
| placed in the output. If the third column is blank this semantic action |
| does nothing. It is typically used to form the top and bottom lines of |
| "boxed" material. The character must be chosen to produce the desired |
| dot pattern on the embosser or display in use. |
| </p> |
| <a name="index-chemistry"></a> |
| <a name="chemistry-semantic"></a></dd> |
| <dt><code>chemistry elementSpecifier</code></dt> |
| <dd> |
| <p>When a module to handle chemical notation is ready, this semantic action |
| will invoke it. The processing will be like that produced by the |
| semantic |
| action <code>math</code>. |
| </p> |
| <a name="index-changetable"></a> |
| <a name="changetable-semantic"></a></dd> |
| <dt><code>changetable elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action is used to change the active translation table. It |
| can switch to a table for another language or to a table for computer |
| braille in a mathematical expression, etc. <code>elementSpecifier</code> is in |
| the form <code>element,attribute</code>. The document contains something like: |
| </p> |
| <div class="example"> |
| <pre class="example"><span lang="en-us-g1.ctb"> |
| This is uncontracted. |
| </span> |
| </pre></div> |
| |
| <p>The specified table remains in effect from |
| <code><element attribute="tablename"></code> until <code></element></code>, no |
| matter what is |
| between the two. The previous table is then restored. |
| </p> |
| <a name="index-compbrl"></a> |
| <a name="compbrl-semantic"></a></dd> |
| <dt><code>compbrl elementSpecifier</code></dt> |
| <dd> |
| <p>The material between <code>elementSpecifier</code> and |
| <code>/elementSpecifier</code> is translated as computer braille, if the |
| liblouis table in use phovides for it. Beginning and ending computer |
| braille indicators are inserted if they are in the table. |
| </p> |
| <a name="index-configfile"></a> |
| <a name="configfile-semantic"></a></dd> |
| <dt><code>configfile elementSpecifier filename</code></dt> |
| <dd> |
| <p>The <code>configfile</code>, <code>configstring</code> and <code>configtweak</code> |
| semantic actions enable the configuration of liblouisutdml to be changed |
| according to the contents of the document being transcribed. |
| <code>configfile</code> and <code>configstring</code> take effect during the |
| document analysis phase performed by <samp>examine_document.c</samp>. |
| <code>configtweak</code> is effective during the transcription phase, |
| performed by <samp>transcribe_document.c</samp> and the functions called in |
| this module. |
| </p> |
| <p><code>elementSpecifier</code> is the usual second-column value, which may be |
| an element name, an element-attribute pair or an |
| element-attribute-value triplet, separated by commas. <code>filename</code> |
| must be on one of the paths set in the <samp>paths.c</samp> module. The file |
| may contain any configuration settings except those in the xml |
| section. These would be ineffective, since the document has already |
| been parsed. |
| </p> |
| <a name="index-configstring"></a> |
| <a name="configstring-semantic"></a></dd> |
| <dt><code>configstring elementSpecifier setting1=value1;setting2=value2;...</code></dt> |
| <dd> |
| <p>Note that the <code>setting=value</code> pairs are separated by semicolons. |
| Because the string may be longer than a screen line, you can use a |
| backslash ‘<samp>\</samp>’ followed immediately by a line ending ‘<samp>\n</samp>’, to |
| continue to another line. The string must not contain any blanks. Any |
| setting which can be specified in a file read with configfile can be |
| specified in <code>configstring</code>. |
| </p> |
| <a name="index-configtweak"></a> |
| <a name="configtweak-semantic"></a></dd> |
| <dt><code>configtweak elementSpecifier settings</code></dt> |
| <dd> |
| <p><code>configtweak</code> is identical to <code>configstring</code> except that it |
| is called in the transcription phase. It can be used for |
| things like changing translation tables. For example: |
| </p> |
| <div class="example"> |
| <pre class="example">configtweak elementSpecifier literaryTextTable=fooTable;\ |
| mathExprTable=barTable |
| </pre></div> |
| |
| <p><code>configtweak</code> is not a generalization of <code>changetable</code>. The |
| latter changes the active table and applies to a subtree. |
| <code>configtweak</code> remains in effect until changed by another |
| <code>configtweak</code>. |
| </p> |
| <a name="index-contracted"></a> |
| <a name="contracted-semantic"></a></dd> |
| <dt><code>contracted elementSpecifier</code></dt> |
| <dd> |
| <a name="index-footer"></a> |
| <a name="footer-semantic"></a></dd> |
| <dt><code>footer elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action is used to specify a footer which will be placed at |
| the bottom of each page. |
| </p> |
| <div class="example"> |
| <pre class="example"><elemntSpecifier>This is a footer</elementSpecifier> |
| </pre></div> |
| |
| <a name="index-generic"></a> |
| <a name="generic-semantic"></a></dd> |
| <dt><code>generic elementSpecifier</code></dt> |
| <dd> |
| <p>This is a general-purpose semantic action. If the third column is blank |
| it does absolutely nothing. If the third column contains a string or |
| subcolumns its contents are placed in the output according to the usual |
| rules. That is, the first subcolumn is placed before the first branch of |
| the subtree rooted at this node, the second is placed before the second |
| branch, etc. If the last (or only) subcolumn begins with <code>\*</code> it is |
| placed after the last branch, no matter how many branches there may be. |
| </p> |
| <a name="index-graphic"></a> |
| <a name="graphic-semantic"></a></dd> |
| <dt><code>graphic elementSpecifier</code></dt> |
| <dd> |
| <p>When a module which can handle SVG graphics is ready this semantic |
| action will invoke it. |
| </p> |
| <a name="index-htmllink"></a> |
| <a name="htmllink-semantic"></a></dd> |
| <dt><code>htmllink elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action is used when the configuration file specifies |
| <code>formatFor browser</code>. It sets up a link which the browser can |
| follow. |
| </p> |
| <a name="index-htmltarget"></a> |
| <a name="htmltarget-semantic"></a></dd> |
| <dt><code>htmltarget elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action establishes a target for a link in the same file |
| when <code>formatFor browser</code> is specified in the configuration file. |
| </p> |
| <a name="index-italicx"></a> |
| <a name="italicx-semantic"></a></dd> |
| <dt><code>italicx elementSpecifier</code></dt> |
| <dd> |
| <p>Enclose the text which follows in braille italic indicators. |
| The ‘<samp>x</samp>’ at the end of the semantic action name is there to |
| prevent conflicts with names elsewhere in the software. Just where the |
| italic indicators will be placed is controlled by the liblouis |
| translation table in use. |
| </p> |
| <a name="index-linespacing"></a> |
| <a name="linespacing-semantic"></a></dd> |
| <dt><code>linespacing elementSpecifier digit</code></dt> |
| <dd> |
| <p>This semantic action specifies the numbr of blank lines to be left |
| between adjacent lines in the output. For example if the third column is |
| ‘<samp>1</samp>’, lines will be double-spaced. ‘<samp>0</samp>’ specifies normal |
| spacing. The number cannot be greater than ‘<samp>3</samp>’. <code>linespacing</code> |
| remains in effect until another <code>linespacing</code> is encountered. It |
| should be assigned to an empty element. |
| </p> |
| <a name="index-maction"></a> |
| <a name="maction-semantic"></a></dd> |
| <dt><code>maction elementSpecifier</code></dt> |
| <dd> |
| <p>In the early stages of development I thought that a separate piece of |
| code might be needed for each of the MathML element tags. It turned out, |
| as noted elsewhere, that most of them could have been handled with the |
| <code>generic</code> semantic action. They are retained for backward |
| compatibi2ity. Therefore, unless this is not the case or additional |
| information is needed, they are simlly listed. |
| </p> |
| <a name="index-maligngroup"></a> |
| <a name="maligngroup-semantic"></a></dd> |
| <dt><code>maligngroup elementSpecifier</code></dt> |
| <dd> |
| <a name="index-malignmark"></a> |
| <a name="malignmark-semantic"></a></dd> |
| <dt><code>malignmark elementSpecifier</code></dt> |
| <dd> |
| <a name="index-math"></a> |
| <a name="math-semantic"></a></dd> |
| <dt><code>math elementSpecifier</code></dt> |
| <dd> |
| <p>Every mathematical expression begins with the element |
| <code><elementSpecifier></code> <code>math</code> (which may have attributes and |
| values), and ends with <code></elementSpecifier></code> (<code>/math</code>). This |
| is therefore the root element of a mathematical expression. However, |
| mathematical expressions are usually part of a document, so it is not |
| given the semantic action document. liblouisutdml will, however, handle |
| files and strings which consist of nothing but a mathematical expression |
| properly. The <code>math</code> semantic action causes liblouisutdml to carry |
| out special interpretation actions. |
| </p> |
| <a name="index-menclose"></a> |
| <a name="menclose-semantic"></a></dd> |
| <dt><code>menclose elementSpecifier</code></dt> |
| <dd> |
| <a name="index-merror"></a> |
| <a name="merror-semantic"></a></dd> |
| <dt><code>merror elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mfenced"></a> |
| <a name="mfenced-semantic"></a></dd> |
| <dt><code>mfenced elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mfrac"></a> |
| <a name="mfrac-semantic"></a></dd> |
| <dt><code>mfrac elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mglyph"></a> |
| <a name="mglyph-semantic"></a></dd> |
| <dt><code>mglyph elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mi"></a> |
| <a name="mi-semantic"></a></dd> |
| <dt><code>mi elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mlabeledtr"></a> |
| <a name="mlabeledtr-semantic"></a></dd> |
| <dt><code>mlabeledtr elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mmultiscripts"></a> |
| <a name="mmultiscripts-semantic"></a></dd> |
| <dt><code>mmultiscripts elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mn"></a> |
| <a name="mn-semantic"></a></dd> |
| <dt><code>mn elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mo"></a> |
| <a name="mo-semantic"></a></dd> |
| <dt><code>mo elementSpecifier</code></dt> |
| <dd> |
| |
| <a name="index-mover"></a> |
| <a name="mover-semantic"></a></dd> |
| <dt><code>mover elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mpadded"></a> |
| <a name="mpadded-semantic"></a></dd> |
| <dt><code>mpadded elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mphantom"></a> |
| <a name="mphantom-semantic"></a></dd> |
| <dt><code>mphantom elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mprescripts"></a> |
| <a name="mprescripts-semantic"></a></dd> |
| <dt><code>mprescripts elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mroot"></a> |
| <a name="mroot-semantic"></a></dd> |
| <dt><code>mroot elementSpecifier</code></dt> |
| <dd> |
| <p>The MathML element <code>mroot</code> is actually given the semantic action |
| <code>reverse</code>. |
| </p> |
| <a name="index-mrow"></a> |
| <a name="mrow-semantic"></a></dd> |
| <dt><code>mrow elementSpecifier</code></dt> |
| <dd> |
| <p>This can be important in implementing Math codes because it is often |
| used to create visual groups, which may be significant for braille. |
| </p> |
| <a name="index-ms"></a> |
| <a name="ms-semantic"></a></dd> |
| <dt><code>ms elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mspace"></a> |
| <a name="mspace-semantic"></a></dd> |
| <dt><code>mspace elementSpecifier</code></dt> |
| <dd> |
| <p>This element and its attributes can be helpful for determining spacing. |
| </p> |
| <a name="index-msqrt"></a> |
| <a name="msqrt-semantic"></a></dd> |
| <dt><code>msqrt elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mstyle"></a> |
| <a name="mstyle-semantic"></a></dd> |
| <dt><code>mstyle elementSpecifier</code></dt> |
| <dd> |
| <p>This MathML element should usually have the semantic action <code>skip</code>. |
| </p> |
| <a name="index-msub"></a> |
| <a name="msub-semantic"></a></dd> |
| <dt><code>msub elementSpecifier</code></dt> |
| <dd> |
| <a name="index-msubsup"></a> |
| <a name="msubsup-semantic"></a></dd> |
| <dt><code>msubsup elementSpecifier</code></dt> |
| <dd> |
| <a name="index-msup"></a> |
| <a name="msup-semantic"></a></dd> |
| <dt><code>msup elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mtable"></a> |
| <a name="mtable-semantic"></a></dd> |
| <dt><code>mtable elementSpecifier</code></dt> |
| <dd> |
| <p>The file <samp>liblouisutdml.ini</samp> defines the style <code>matrix</code>. The |
| semantic-action files for math codes declare <code>mtable</code> to be |
| <code>matrix</code>. Depending on the attributes of this element, it can be |
| set to other styles, such as long division. The <code>matrix</code> style |
| contains the setting <code>format alignColumnsLeft</code>. |
| </p> |
| <a name="index-mtd"></a> |
| <a name="mtd-semantic"></a></dd> |
| <dt><code>mtd elementSpecifier</code></dt> |
| <dd> |
| <p>This element specifies a column in a mathematical table. For the style |
| <code>matrix</code> the third column of the entry in a semantic-action file |
| must contain <code>\*|ec</code>. This indicates the end of the column. Other |
| specifications using the liblouis <code>exactdots</code> feature may also be |
| necessary. |
| </p> |
| <a name="index-mtext"></a> |
| <a name="mtext-semantic"></a></dd> |
| <dt><code>mtext elementSpecifier</code></dt> |
| <dd> |
| <a name="index-mtr"></a> |
| <a name="mtr-semantic"></a></dd> |
| <dt><code>mtr elementSpecifier</code></dt> |
| <dd> |
| <p>This element specifies a row in a mathematical table. The entry in a |
| semantic-action file must contain <code>\*\er</code> in the third column for |
| the <code>matrix</code> style, indicating the end of the row. Other things may |
| also need to be specified using the liblouis <code>exactdots</code> feature. |
| Note that rows are not declared as styles nested inside the |
| <code>matrix</code> style. This is because the table must be considered as a |
| whole. |
| </p> |
| <a name="index-munder"></a> |
| <a name="munder-semantic"></a></dd> |
| <dt><code>munder elementSpecifier</code></dt> |
| <dd> |
| <a name="index-munderover"></a> |
| <a name="munderover-semantic"></a></dd> |
| <dt><code>munderover elementSpecifier</code></dt> |
| <dd> |
| <a name="index-music"></a> |
| <a name="music-semantic"></a></dd> |
| <dt><code>music elementSpecifier</code></dt> |
| <dd> |
| <p>When a module which can interpret MusicML and produce braille music |
| notation is ready this semantic action will invoke it. |
| </p> |
| <a name="index-newpage"></a> |
| <a name="newpage-semantic"></a></dd> |
| <dt><code>newpage elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action causes the rest of the current page to be left |
| blank except for page numbers and footers. A new page is then begun. |
| Like <code>blankline</code>, it is useful for fine formatting independent of |
| styles. |
| </p> |
| <a name="index-no"></a> |
| <a name="no-semantic"></a></dd> |
| <dt><code>no elementSpecifier</code></dt> |
| <dd> |
| <p>Originally, this semantic action was intended to be the default and to |
| do nothing when an <code>elementSpecifier</code> had no meaning for braille |
| translation. Later it was found that it should insert a blank space if |
| parts of the text would run together, so this is now its action. |
| </p> |
| <a name="index-none"></a> |
| <a name="none-semantic"></a></dd> |
| <dt><code>none elementSpecifier</code></dt> |
| <dd> |
| <p>This is a MathML element. |
| </p> |
| <a name="index-notranslate"></a> |
| <a name="notranslate-semantic"></a></dd> |
| <dt><code>notranslate elementSpecifier</code></dt> |
| <dd> |
| <p>Output the text between the start and end tags exactly as written. It |
| will, however, be formatted with appropriate line breaks, page numbers |
| etc. If you want to make sure that things appear on the same line |
| separate them with an unbreakable space, ‘<samp>&#160;</samp>’ or |
| ‘<samp>&#xa0;</samp>’. |
| </p> |
| <a name="index-pagenum"></a> |
| <a name="pagenum-semantic"></a></dd> |
| <dt><code>pagenum elementSpecifier</code></dt> |
| <dd> |
| <p>The text between <code><elementSpecifier></code> and <code></elementSpecifier></code> |
| is taken to be a print page number. If it does not begin with a digit |
| the string <code>\_</code> is placed before it. It is then passed to liblouis |
| for translation according to the active table. This table must contain |
| an entry for translating <code>\_</code> into a letter sign or whatever else |
| is wanted. This string is inserted so that roman page numbers will be |
| handled properly. Unnumbered page breaks are indicated with an empty |
| pagenum tag: <code><elementSpecifier></elementSpecifier></code>. |
| </p> |
| <a name="index-reverse"></a> |
| <a name="reverse-semantic"></a></dd> |
| <dt><code>reverse elementSpecifier</code></dt> |
| <dd> |
| <p>The branches of the subtree rooted at this node are reversed in order. |
| This is used in handling roots, where the arguments in the translation |
| are in reverse order to those in MathML. the MathML elemnt <code>mroot</code> |
| is declared with this semantic action |
| </p> |
| <a name="index-righthandpage"></a> |
| <a name="righthandpage-semantic"></a></dd> |
| <dt><code>righthandpage elementSpecifier</code></dt> |
| <dd> |
| <p>If <code>interpoint yes</code> has been specified in the configuration file, |
| and the current page is a right-hand one, the lest of the page is |
| skipped except for footer and page number. the following left-hand page |
| is similarly skipped. Otherwise, the action is the same as |
| <code>newpage</code>. |
| </p> |
| <a name="index-runninghead"></a> |
| <a name="runninghead-semantic"></a></dd> |
| <dt><code>runninghead elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action is used to specify a running header, such as a book |
| title, to be placed at the top of each page. If the header is too long |
| it will be truncated. |
| </p> |
| <div class="example"> |
| <pre class="example"><elementSpecifier>liblouisutdml Manual</elementSpecifier> |
| </pre></div> |
| |
| <a name="index-semantics"></a> |
| <a name="semantics-semantic"></a></dd> |
| <dt><code>semantics elementSpecifier</code></dt> |
| <dd> |
| <p>This is a MathML action which seems to be irrelevant to braille |
| translation. |
| </p> |
| <a name="index-skip"></a> |
| <a name="skip-semantic"></a></dd> |
| <dt><code>skip elementSpecifier</code></dt> |
| <dd> |
| <p>Skip ahead until encountering the element <code></elementSpecifier></code>. |
| Nothing |
| in between will have any effect on the braille output. |
| </p> |
| <a name="index-softreturn"></a> |
| <a name="softreturn-semantic"></a></dd> |
| <dt><code>softreturn elementSpecifier</code></dt> |
| <dd><p>Do a soft return, that is, start a new line without starting a new |
| paragraph. <code>elementSpecifier</code> should be empty, for example, |
| <code><br/></code>. |
| </p> |
| <a name="index-uncontracted"></a> |
| <a name="uncontracted-semantic"></a></dd> |
| <dt><code>uncontracted elementSpecifier</code></dt> |
| <dd> |
| <p>This semantic action seems superfluous and may be eliminated in the |
| future. |
| </p> |
| <a name="index-underlinex"></a> |
| <a name="underlinex-semantic"></a></dd> |
| <dt><code>underlinex elementSpecifier</code></dt> |
| <dd> |
| <p>Enclose the text which follows in braille underline indicators. |
| </p> |
| </dd> |
| </dl> |
| |
| <hr> |
| <a name="Pseudo_002dactions"></a> |
| <a name="Pseudo_002dactions-1"></a> |
| <h3 class="section">4.3 Pseudo-actions</h3> |
| |
| <p>These actions affect the processing of semantic-action files. They are |
| not connected with any tag in the document. They are executed when they |
| are encountered in the processing of semantic-action files. |
| </p> |
| <a name="include"></a> |
| <h4 class="subsection">4.3.1 include</h4> |
| |
| <div class="example"> |
| <pre class="example">include filename |
| </pre></div> |
| |
| <p>filename must be the name of a semantic action file. The file is |
| compiled as though it were part of the file containing the |
| <code>include</code> entry. Included files may include other files. |
| </p> |
| <a name="newentries"></a> |
| <h4 class="subsection">4.3.2 newentries</h4> |
| |
| <div class="example"> |
| <pre class="example">newentries no |
| </pre></div> |
| |
| <p>The second column in this entry must contain ‘<samp>no</samp>’. Any new entries |
| found in the document will be ignored. No ‘<samp>appended_</samp>’ file will be |
| produced. This affects only documents processed with this |
| semantic-action file. The configuration setting <code>newEntries</code> |
| affects all documents. |
| </p> |
| <a name="namespaces"></a> |
| <h4 class="subsection">4.3.3 namespaces</h4> |
| |
| <div class="example"> |
| <pre class="example">namespaces dtb=http://www.daisy.org/z3986/2005/dtbook/ |
| </pre></div> |
| |
| <p>This pseudo-action is used to declare namespaces used in XPath |
| expressions. (See following section). The format is ‘<samp>namespaces |
| prefix1=url1,prefix2=url2,...</samp>’. The list of namespaces may not contain |
| blanks. |
| </p> |
| <hr> |
| <a name="Using-XPath-Expressions"></a> |
| <a name="Using-XPath-Expressions-1"></a> |
| <h3 class="section">4.4 Using XPath Expressions</h3> |
| |
| |
| <div class="example"> |
| <pre class="example">para &xpath(h4) |
| </pre></div> |
| |
| <p>This example causes any element with the name ‘<samp>h4</samp>’ to be given the |
| semantic action <code>para</code>, no matter what other assignments may be |
| made to it. In general, XPath expressions are entered in the second |
| column with the syntax <code>&xpath(...)</code>. That is, the XPath |
| expression is placed within parentheses following <code>&xpath</code>. It may |
| contain parentheses itself, as long as they match. The third column may |
| contain arguments, as with any line in a semantic-action file. XPath |
| expressions are not processed in any particular order. Care should be |
| taken that the node sets which they find do not overlap. If a node is in |
| a node set found by a particular XPath expression it will be given the |
| semantic-action and arguments associated with that expression. This will |
| not be changed subsequently. |
| </p> |
| <p>The ‘<samp>&funcname(...)</samp>’ notation may be used for other features, such |
| as XPointer, in the future. |
| </p> |
| <hr> |
| <a name="Special-Features"></a> |
| <a name="Special-Features-1"></a> |
| <h2 class="chapter">5 Special Features</h2> |
| |
| |
| <hr> |
| <a name="Table-of-contents"></a> |
| <a name="Table-of-contents-1"></a> |
| <h3 class="section">5.1 Table of contents</h3> |
| |
| <p>A table of contents is produced for an xml file if the file contains a |
| tag which has been defined with the <code>contentsheader</code> semantic action (see <a href="#contentsheader-semantic"><code>contentsheader</code></a>) and |
| also tags for the <code>heading1</code>, <code>heading2</code>, <code>heading3</code> or |
| <code>heading4</code> semantic actions (see <a href="#heading1-semantic"><code>heading1</code></a>). The table of contents will |
| contain print and braille page numbers if these features have been |
| enabled. A sequence of fill characters will be inserted before the |
| page numbers, so that the latter are at the right margin. The fill |
| character can be specified in a configuration file with the |
| <code>lineFill</code> setting (see <a href="#lineFill-setting"><code>lineFill</code></a>). The default fill character is an apostrophe |
| (dot 3). |
| </p> |
| <p>Five new styles have been defined for the table of contents. The first |
| is the <code>contentsheader</code> style (see <a href="#contentsheader-style">contentsheader style</a>), which |
| is used to specify where the table of contents should be placed and the |
| title that should be given to it. In the latter respect it is much like |
| a heading style. The others correspond to the four heading levels and |
| are <code>contents1</code>, <code>contents2</code>, <code>contents3</code> and |
| <code>contents4</code>. These styles are chosen as appropriate while the table |
| of contents is being made. Do not declare them in a semantic-action |
| file. See the <samp>liblouisutdml.ini</samp> file for the current default |
| definitions of all these styles. |
| </p> |
| <p>The table of contents will be placed where the xml tag is that you |
| declared in the <code>contentsheader</code> semantic action (see <a href="#contentsheader-semantic"><code>contentsheader</code></a>). Its title will be whatever |
| is inside that tag, formatted according to the definition of the |
| <code>contentsheader</code> style. It begins on a new page. After it is |
| completed the braille page number is reset to |
| <code>beginningBraillePageNumber</code> and another new page is started. This |
| means that the xml tag with the <code>contentsheader</code> semantic action |
| should occur at the end of the information which you want to be at the |
| head of the output, such as a title page, dedication, etc. |
| </p> |
| <p>It is not necessary that an xml file contain a tag with the |
| <code>contentsheader</code> semantic action. If the file contains headers |
| you can obtain a table of contents by specifying <code>contents yes</code> |
| in a configuration file or <samp>-Ccontents=yes</samp> on the command line |
| of <code>file2brl</code>. In this case, the table of contents will appear |
| at the beginning of the output. Pages will be numbered beginning with |
| 1. When the table of contents is complete, the material in the file |
| will start on a new page and the page number will be the value given |
| in <code>beginningBraillePageNumber</code>. |
| </p> |
| <p>The <code>contents1</code>, etc. styles all have the <code>format contents</code> |
| setting. This is a variant of the <code>leftJustified</code> format. It has |
| been necessary to change the way <code>firstLineIndent</code> is handled to |
| accommodate multilevel lists. Up till now, if <code>firstLineIndent</code> |
| was negative, the first line would start at the real left margin, |
| regardless of the value of <code>leftMargin</code>. Now the value of |
| <code>firstLineIndent</code> is simply added to <code>leftMargin</code>. This |
| means that if it is negative it is really subtracted. For example, if |
| <code>leftMargin</code> is 4 and <code>firstLineIndent</code> is -2 the first line |
| will start in cell 2. If the result of adding these two values is |
| negative it is set to 0. |
| </p> |
| <hr> |
| <a name="Back_002dtranslation"></a> |
| <a name="Back_002dtranslation-1"></a> |
| <h3 class="section">5.2 Back-translation</h3> |
| |
| <div class="example"> |
| <pre class="example">file2brl -b infile outfile |
| </pre></div> |
| |
| <p>infile must be a braille file. It can have either upper-case or |
| lower-case letters, etc. outfile will contain the back-translation |
| according to the configuration specifications. It can be in two |
| formats according to the value of <code>backFormat</code>. ‘<samp>ascii</samp>’ |
| produces plain text output. The lines will generally correspond to the |
| lines in the original braille file. ‘<samp>html</samp>’ produces a file in |
| xhtml format. This is recommended, since it preserves print page |
| numbers, if present and some of the formatting of the original. It can |
| also be loaded into a browser or word processor, which will format it |
| for good readability. Note that for html format to work your liblouis |
| table must contain the following line: |
| </p> |
| <div class="example"> |
| <pre class="example">space \x001b 1b escape character |
| </pre></div> |
| |
| <p>To perform the back-translation operation, <code>file2brl</code> uses the |
| liblouisutdml function <code>lbu_backTranslateFile</code>. |
| </p> |
| <hr> |
| <a name="Reformatting"></a> |
| <a name="Reformatting-1"></a> |
| <h3 class="section">5.3 Reformatting</h3> |
| |
| <div class="example"> |
| <pre class="example">file2brl -r infile outfile |
| </pre></div> |
| |
| <p>As in the previous section, infile must be a braille file. It is |
| back-translated and then forward-translated to produce a braille file in |
| outfile which conforms to configuration specifications. It is useful for |
| changing the line length and page length of a braille file. New braille |
| page numbers will be generated if <code>braillePages yes</code> is specified. |
| If <code>backFormat html</code> has been specified, print page numbers will be |
| reproduced in the appropriate places. Some formatting may be lost. |
| </p> |
| <hr> |
| <a name="Interlining"></a> |
| <a name="Interlining-1"></a> |
| <h3 class="section">5.4 Interlining</h3> |
| |
| <p>Interlining means printing the original text between the lines of |
| translated braille. It requires special embossers or special methods. |
| The present way in which liblouisutdml produces interlining relies on |
| back-translation. However, it is inadequate for mathematics and depends |
| too much on the quality of the liblouis tables. It is scheduled to be |
| replaced, so you should not use it. |
| </p> |
| <hr> |
| <a name="Browser_002dFriendly-Output"></a> |
| <a name="Browser_002dFriendly-Output-1"></a> |
| <h3 class="section">5.5 Browser-Friendly Output</h3> |
| |
| <div class="example"> |
| <pre class="example">file2brl infile outfile -CformatFor=browser |
| </pre></div> |
| |
| <p>infile can be any of the file types accepted by <code>file2brl</code> (xml, |
| html or text). If it contains html links or targets they will be |
| formatted so that a browser can use them. This may be useful if a file |
| contains internal links to different sections, such as its own table of |
| contents. Text will be translated and formatted according to |
| configuration specifications. If the file contains mathematics expressed |
| as MathML it will be translated according to the mathematics code |
| specified by the configuration. outfile should have the extension |
| ‘<samp>.html</samp>’. It will actually be xhtml. The <code>-CformatFor=browser</code> |
| part of the above example specifies a configuration setting, which of |
| course can also be specified in a configuration file. |
| </p> |
| <hr> |
| <a name="CDATA-Sections"></a> |
| <a name="CDATA-Sections-1"></a> |
| <h3 class="section">5.6 <code>CDATA</code> Sections</h3> |
| |
| <p>A <code>cdata</code> section may be given the semantic actions <code>skip</code>, |
| <code>no</code> or <code>code</code>. In the first case, the data in the |
| <code>cdata</code> section is ignored. In the second case, it is inserted into |
| the output with no translation. In the third case it is translated into |
| computer braille and inserted into the output. Any other semantic action |
| has the same effect as <code>no</code>. |
| </p> |
| <hr> |
| <a name="Special-Formats"></a> |
| <a name="Special-Formats-1"></a> |
| <h2 class="chapter">6 Special Formats</h2> |
| |
| |
| <hr> |
| <a name="Tables"></a> |
| <a name="Tables-1"></a> |
| <h3 class="section">6.1 Tables</h3> |
| |
| <p>Various methods of handling tables can be devised. One that is in |
| current use requires the following lines in a semantic-action file: |
| </p> |
| <div class="example"> |
| <pre class="example">list tr \*; |
| generic td \*;\s |
| </pre></div> |
| |
| <p>The <code>list</code> style specifies that the first line should begin at the |
| left |
| margin and subsequent lines should be indented two spaces. The third |
| column specifies that a semicolon should be placed at the very end of |
| the row. The <code>generic</code> semantic action causes each column in the |
| table to be followed by a semicolon and a space, as specified in the |
| third column. your liblouis table must also contain the following line: |
| </p> |
| |
| <div class="example"> |
| <pre class="example">noback always ;\s; 0 |
| </pre></div> |
| |
| <hr> |
| <a name="Reserving-Space-for-Graphics"></a> |
| <a name="Reserving-Space-for-Graphics-1"></a> |
| <h3 class="section">6.2 Reserving Space for Graphics</h3> |
| |
| <p>Your configuration files should contain lines like these: |
| </p> |
| <div class="example"> |
| <pre class="example">style graphspace |
| rightHandPage yes |
| </pre></div> |
| |
| <p>In your semantic-action file you must assign a tag to this style. Note |
| that the semantic action <code>graphic</code> will invoke code to translate |
| SVG graphics when this feature is developed. You can nest various styles |
| within the ‘<samp>graphspace</samp>’ style, such as a caption at the beginning. |
| In particular, you should have another invocation of ‘<samp>graphspace</samp>’ |
| at the end to skip to a new page, or the next right-hand page if you are |
| using interpoint. |
| </p> |
| <hr> |
| <a name="Displayed-Text"></a> |
| <a name="Displayed-Text-1"></a> |
| <h3 class="section">6.3 Displayed Text</h3> |
| |
| <p>Conventions for setting off a block of text from the rest vary. you may |
| wish to use the <code>quotation</code> style or devise a style of your own. |
| </p> |
| <hr> |
| <a name="Displayed-Mathematics"></a> |
| <a name="Displayed-Mathematics-1"></a> |
| <h3 class="section">6.4 Displayed Mathematics</h3> |
| |
| <p>Again, conventions vary. you can define your own style for this purpose |
| and invoke it according to the attributes of the <code>math</code> tag. |
| </p> |
| <hr> |
| <a name="Spatial-Layouts-in-Mathematics"></a> |
| <a name="Spatial-Layouts-in-Mathematics-1"></a> |
| <h3 class="section">6.5 Spatial Layouts in Mathematics</h3> |
| |
| <p>This is also known as 2d mathematics. It spreads out complex fractions |
| and other materials for easier viewing. It is being developed based on |
| the specifications of MathML 3. |
| </p> |
| <hr> |
| <a name="Arithmetic-Examples"></a> |
| <a name="Arithmetic-Examples-1"></a> |
| <h3 class="section">6.6 Arithmetic Examples</h3> |
| |
| <p>This is another format that is being developed using MathML 3. It is |
| difficult in earlier versions. |
| </p> |
| <hr> |
| <a name="Poetry"></a> |
| <a name="Poetry-1"></a> |
| <h3 class="section">6.7 Poetry</h3> |
| |
| <p><samp>liblouisutdml.ini</samp> defines two styles which can be used to format |
| poetry, as follows: |
| </p> |
| <div class="example"> |
| <pre class="example">style stanza |
| linesBefore 1 |
| linesAfter 1 |
| ttyle line |
| leftMargin 2 |
| firstLineIndent -2 |
| </pre></div> |
| |
| <p>Your document might then contain the following from Samuel Taylor |
| Coleridge’s "Rime of the Ancient Mariner": |
| </p> |
| <div class="example"> |
| <pre class="example"><stanza> |
| <lino>He holds him with his glittering eye</line> |
| <line>The wedding guest stands still</line> |
| <line>And listens like a three-years' child.</line> |
| <line>He has no force nor will.</line> |
| </stanza> |
| </pre></div> |
| |
| <p>Note that when stanzas follow each other liblouisutdml will produce only |
| one blank line between them, not two. |
| </p> |
| <hr> |
| <a name="Dividing-a-Book-Into-Volumes"></a> |
| <a name="Dividing-a-Book-Into-Volumes-1"></a> |
| <h3 class="section">6.8 Dividing a Book Into Volumes</h3> |
| |
| <p>Details are still under development. However, this much can be said. |
| First, obtain a table of contents for the whole book. This requires that |
| your configuration files have the following settings: |
| </p> |
| <div class="example"> |
| <pre class="example">contents yes |
| braillePages yes |
| </pre></div> |
| |
| <p>This will tell you the approximate braille pages on which things will be |
| placed in the finished product. You can then calculate the number of |
| pages required for each chapter and how many chapters will fit in a |
| volume of your preferred size. From the point of view of the braille |
| reader, it is desirable to avoid splitting chapters between volumes. |
| </p> |
| <p>At this point you will probably have to edit the source xml file to |
| indicate the beginning and end of volumes. You can define a liblouisutdml |
| style called ‘<samp>volume</samp>’ and assign appopriate xml tags to it in a |
| semantic-action file. Within the volume style you can nest a title page, |
| chapters, etc. A volume table of contents is still under development. |
| </p> |
| <hr> |
| <a name="Implementing-Braille-Mathematics-Codes"></a> |
| <a name="Implementing-Braille-Mathematics-Codes-1"></a> |
| <h2 class="chapter">7 Implementing Braille Mathematics Codes</h2> |
| |
| <p>Much information useful in implementing braille mathematical codes is |
| given in the sections on styles and on semantic actions, especially in |
| the discussion of MathML semantic actions. The chapter on Special |
| Formats also contains much useful information. |
| </p> |
| <p>The Nemeth Code of Braille Mathematical and Science Notation, BAUK maths |
| and Marburg Maths have been implemented. the Nemeth code was the first |
| and uses an implementation which is now obsolete. The discussion below |
| will concentrate on the implementation of BAUK Maths. |
| </p> |
| <p>Four tables are used to translate xml documents containing a mixture of |
| text and mathematics. They can be found in the subdirectory |
| <samp>lbu_files</samp> of the liblouisutdml directory and in the <samp>tables</samp> |
| subdirectory of the liblouis distribution. First, the semantic-action |
| file <samp>ukmaths.sem</samp> is used to interpret the mathematical portions |
| of the xml document (The text portions are interpreted by another |
| semantic-action file which will not be discussed here). After the math |
| and text have been interpreted, two liblouis tables, <samp>ukmaths.ctb</samp> |
| and <samp>en-us-g2.ctb</samp> are used to translate them. The latter table may |
| be replaced by another table at the user’s discretion. Each piece of |
| mathematics or text is translated separately and the pieces are strung |
| together with blanks between them. This results in inaccuracies where |
| mathematics meets text. The fourth table, also a liblouis table, is used |
| to remove these inaccuracies. It is called <samp>ukmaths_edit.ctb</samp>, and |
| it does things like removing the multi-purpose indicator before a blank, |
| inserting the punctuation indicator before a punctuation mark following |
| a math expression, and removing extra spaces. This table may need |
| editing if a different text translation table is used. |
| </p> |
| <p>The general format and use of semantic-action files were discussed in |
| the section see <a href="#Connecting-with-the-xml-Document">Connecting |
| with the xml Document - Semantic-Action Files</a>. In this section we |
| shall concentrate on the optional third column, which is used a lot in |
| <samp>ukmaths.sem</samp>. While the first two columns can be generated by |
| liblouisutdml but must be edited by a person, the third column must |
| always be provided by a human. |
| </p> |
| <p>As previously stated, the third column tells liblouisutdml what |
| characters to insert to inform liblouis how to translate the math |
| expression. In fact, you can tell liblouis exactly what dots to insert. |
| This relies on the liblouis opcode <code>exactdots</code>. If you look at the |
| file <samp>example_ukmaths.ctb</samp> you will see lines like the following: |
| </p> |
| <div class="example"> |
| <pre class="example">exactdots @126 |
| exactdots @345 |
| exactdots @123456 |
| </pre></div> |
| |
| <p>This opcode has only a string operand. liblouis assumes that the |
| characters following the at sign are its dot pattern. |
| </p> |
| <p>In your semantic-action file you might have lines like: |
| </p> |
| <div class="example"> |
| <pre class="example">mfenced mfenced @126,@345 |
| mfenced mfenced,open,{ @246,@135 |
| mover mover ,@4-346,@12456 |
| </pre></div> |
| |
| <p>By using this approach you do not have to remember which characters will |
| produce the desired dots in a particular liblouis table or on a |
| particular output device. |
| </p> |
| <p>Sometimes an element or tag can have an indeterminate number of |
| children. This is true of <code><math></code> itself. Yet, it may be |
| necessary to place some characters after the very last element. Let us |
| look at the <code><math></code> entry. |
| </p> |
| <div class="example"> |
| <pre class="example">math math \eb,\*\ee |
| </pre></div> |
| |
| <p>First let us discuss escape sequences starting with a backslash. These |
| are basically the same as in liblouis. The sequence ‘<samp>\e</samp>’ is |
| shorthand for the escape character, which would otherwise be |
| represented by ‘<samp>\x001b</samp>’. The beginning of a math expression is |
| denoted by an escape character followed by the letter b and the end by |
| an escape character followed by the letter ‘<samp>e</samp>’. This enables the |
| editing table to do such things as drop the baseline indicator at the |
| end of a math expression and insert a number sign at the beginning, if |
| needed. |
| </p> |
| <p>Not found in liblouis is the sequence ‘<samp>\*</samp>’. This means to put |
| what follows after the very last child of the math element, no matter |
| how many there are. |
| </p> |
| <p>As another example consider: |
| </p> |
| <div class="example"> |
| <pre class="example">mtd mtd \*\ec |
| </pre></div> |
| |
| <p><code>mtd</code> is the MathML tag for a table column. There may be many |
| children of this tag. The entry says to put an escape character (hex |
| 1b), plus the letter ‘<samp>c</samp>’, after the very last of them. |
| </p> |
| |
| <p>As a final example consider: |
| </p> |
| <div class="example"> |
| <pre class="example">mtr mtr ^.^\,^(,\*^.^\,^)\er |
| </pre></div> |
| |
| <p><code>mtr</code> is the MathML tag for a row in a table, in this case a |
| matrix. Each row in a matrix must begin with the dot pattern |
| ‘<samp>46-6-12356</samp>’ and end with the dot pattern ‘<samp>46-6-12456</samp>’. As |
| usual a caret is placed before the corresponding characters. Since dot |
| 6 is a comma, it must be escaped. This is done by placing a backslash |
| before the comma. There are two subcolumns. the first contains the |
| characters to be placed at the beginning of each row. The second |
| starts with ‘<samp>\*</samp>’, signifying that the characters following it |
| are to be placed at the end of everything in this row. A subcolumn |
| starting with ‘<samp>\*</samp>’ must be the last (or only) subcolumn. |
| </p> |
| <p>Here this last subcolumn ends with an escape character and the letter |
| <tt class="key">r</tt>, signifying the end of a row. |
| </p> |
| <p>So much for the semantic action file. Even though the characters in |
| the third column were chosen to correspond with nemeth characters, |
| they may not have to be changed for other math codes. liblouis can |
| replace them with anything needed. |
| </p> |
| <p>This brings us to a consideration of the two tables used by liblouis |
| to translate mathematics texts. The first, <samp>en-mathtext.ctb</samp> is |
| used to translate text appearing outside math expressions. It is |
| necessary because the Nemeth code requires modifications of Grade 2 |
| braille. Other math codes may not have this requirement. |
| </p> |
| <p>The table actually used to translate mathematics is <samp>nemeth.ctb</samp>. |
| It includes two other tables, <samp>chardfs.cti</samp> and |
| <samp>nemethdefs.cti</samp>. The first gives ordinary character definitions |
| and is included by all the other tables. Note however, that the |
| unbreakable space, ‘<samp>\x00a0</samp>’, is translated by dot 9. This is used |
| before and after the equal sign and other symbols in |
| <samp>nemeth.ctb</samp>. The second table contains character definitions for |
| special math symbols, most of which are Unicode characters greater |
| than ‘<samp>\x00ff</samp>’. The Greek letters are here. So are symbols like |
| the integral sign. |
| </p> |
| <p>Most of the entries in <samp>nemeth.ctb</samp> should be familiar from other |
| tables. The unfamiliar ones follow the comments ‘<samp># Semantic |
| pairs</samp>’ and ‘<samp># pass2 corrections</samp>’. The first simply replace |
| characters preceded by a caret with the character itself. The second |
| make adjustments in the code generated directly from the |
| <samp>nemeth.sem</samp> file. The pass2 opcode is discussed in the liblouis |
| documentation (see <a href="liblouis.html#Top">Overview</a> in <cite>Liblouis User’s and |
| Programmer’s Manual</cite>). Here are some comments on a few of the entries in |
| <samp>nemeth.ctb</samp>. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @1456-1456 @6-1456 |
| </pre></div> |
| |
| <p>Replaces double start-fraction indicators with the start complex |
| fraction indicator. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @3456-3456 @6-3456 |
| </pre></div> |
| |
| <p>Replaces double end-fraction indicators with the end-complex-fraction |
| indicator. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @56[$d1-5]@5 * |
| </pre></div> |
| |
| <p>Removes the subscript and baseline indicators from numeric subscripts. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @5-9 @9 |
| </pre></div> |
| |
| <p>Removes the baseline or multipurpose indicator before an unbreakable |
| space generated by the translation of an equal sign, etc. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @45-3-5 @3 |
| </pre></div> |
| |
| <p>Replaces a superscript apostrophe with a simple prime symbol. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @9[]$d @3456 |
| </pre></div> |
| |
| <p>Puts a number sign before a digit preceded by a blank. |
| </p> |
| <div class="example"> |
| <pre class="example">pass2 @9-0 @9 |
| </pre></div> |
| |
| <p>Removes a space following an unbreakable space. |
| </p> |
| <p>We now come to the fourth and last table used for math translation, |
| the editing table, <samp>nemeth_edit.ctb</samp>. As explained at the |
| beginning, this table is used to remove inaccuracies where math |
| translation butts up against text translation. For example, the Nemeth |
| code puts numbers in the lower part of the cell. However, punctuation |
| marks are also in the lower part of the cell. So Nemeth puts a |
| punctuation indicator, dots ‘<samp>456</samp>’, in front of any lower-cell |
| punctuation that immediately follows a mathematical expression. If |
| this occurs inside Mathml it is handled by <samp>nemeth.ctb</samp>. However, |
| a MathML expression is often followed by a punctuation mark which is |
| the first part of text. liblouisutdml puts a blank between math and |
| text, but this can result in a mathematical expression followed by a |
| blank and then, say, a period, dots ‘<samp>256</samp>’. <samp>nemeth_edit.ctb</samp> |
| replaces the blank with the punctuation indicator. |
| </p> |
| <p>When you look at <samp>nemeth_edit.ctb</samp> you will see that it begins with |
| an include of <samp>chardefs.cti</samp>. Most of the entries are ordinary, |
| but some are interesting. for example, |
| </p> |
| <div class="example"> |
| <pre class="example">always "\s 0 |
| </pre></div> |
| |
| <p>replaces the baseline or multipurpose indicator followed by a space |
| with just a space. |
| </p> |
| <hr> |
| <a name="Programming-with-liblouisutdml"></a> |
| <a name="Programming-with-liblouisutdml-1"></a> |
| <h2 class="chapter">8 Programming with liblouisutdml</h2> |
| |
| |
| <hr> |
| <a name="License"></a> |
| <a name="License-1"></a> |
| <h3 class="section">8.1 License</h3> |
| |
| <p>Liblouisutdml may contain code borrowed from the Linux screenreader |
| BRLTTY, Copyright © 1999-2009 |
| by the BRLTTY Team. |
| </p> |
| <p>Copyright © 2004-2009 ViewPlus Technologies, Inc. |
| <a href="www.viewplus.com">www.viewplus.com</a>. |
| </p> |
| <p>Copyright © 2006,2009 Abilitiessoft, Inc. |
| <a href="www.abilitiessoft.com">www.abilitiessoft.com</a>. |
| </p> |
| <p>Liblouisutdml is free software: you can redistribute it and/or modify it |
| under the terms of the GNU Lesser General Public License as published |
| by the Free Software Foundation, either version 3 of the License, or |
| (at your option) any later version. |
| </p> |
| <p>Liblouisutdml is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| </p> |
| <p>You should have received a copy of the GNU Lesser General Public |
| License along with Liblouisutdml. If not, see |
| <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. |
| </p> |
| <hr> |
| <a name="Overview"></a> |
| <a name="Overview-2"></a> |
| <h3 class="section">8.2 Overview</h3> |
| |
| <p>liblouisutdml is an "extensible renderer", designed to translate a wide |
| variety of xml and text documents into braille, but with a special |
| emphasis on |
| technical material. The overall operation of liblouisutdml is controlled |
| by a configuration file. The way in which a particular type of xml |
| document is to be rendered is specified by a semantic-action file for |
| that document type. Braille translation is done by the liblouis |
| braille translation and back-translation library (see <a href="liblouis.html#Top">Overview</a> in <cite>Liblouis User’s and Programmer’s Manual</cite>). |
| Its operation, in turn is controlled by translation table files. All |
| these files are plain text and can be created and edited in any text |
| editor. Configuration settings can also be specified on the command |
| line of the console-mode transcription program <code>file2brl</code>. |
| </p> |
| <p>The general operation of liblouisutdml is as follows. It uses the libxml2 |
| library to construct a parse tree of the xml document. After the parse |
| tree is constructed, a function called <code>examine_document</code> looks it |
| over and determines whether math translation tables, etc. are needed. |
| <code>examine_document</code> also constructs a prototype semantic-action |
| file, if one does not exist already. It may also construct another file |
| containing entries not found in an existing file. When it is finished, |
| another function, called <code>transcribe_document</code>, does the actual |
| braille transcription. It calls <code>transcribe_math</code> to handle MathML |
| subtrees, <code>transcribe_chemistry</code> for chemical formula subtrees, |
| <code>transcribe_graphic</code> for SVG graphics, etc. Entities are translated |
| to Unicode, if they are not already. Sequences of symbols indicate |
| superscripts, return to the baseline, subscripts, start and end of |
| fractions, etc. The Braille translator and back-translator library |
| liblouis is used to do the braille translation. |
| </p> |
| |
| <p>The <code>transcribe_math</code> function works in conjunction with the |
| latest version of liblouis and a special math translation table to |
| transcribe most mathematical expressions into good braille mathematical |
| Code. |
| </p> |
| <p>The functions which are not ready for use at the moment, such as |
| <code>transcribe_chemistry</code>, are only skeletons. However, I hope that |
| <code>transcribe_graphics</code> can be expanded in the near future to use the |
| graphics capability of the Tiger tactile graphics embossers. |
| </p> |
| <p>The latest versions of liblouisutdml and liblouis can be downloaded from |
| <a href="www.abilitiessoft.com">www.abilitiessoft.com</a>. This site also contains links to a mailing |
| list and to project pages on googlecode.google.com. Note that |
| liblouisutdml will only work with the latest version of liblouis. |
| </p> |
| <p>liblouisutdml can be compiled to use either 16-bit or 32-bit Unicode |
| internally. This is inherited from liblouis, so liblouis must be |
| compiled first and then liblouisutdml. Wherever 16 bits are mentioned in |
| this document, read 32 if you have compiled the library for 32 bits. |
| </p> |
| <hr> |
| <a name="Files-and-Paths"></a> |
| <a name="Files-and-Paths-1"></a> |
| <h3 class="section">8.3 Files and Paths</h3> |
| |
| <p>liblouisutdml uses three kinds of |
| files, configuration files, semantic-action files, and liblouis |
| translation tables. The first two are discussed elsewhere in this |
| documentation. liblouis translation tables are discussed in the |
| liblouis documentation (see <a href="liblouis.html#Top">Overview</a> in <cite>Liblouis |
| User’s and Programmer’s Manual</cite>) which is distributed with liblouis. |
| </p> |
| <p>Note that liblouisutdml also generates some files, all of which are placed |
| in the current directory. These files are new prototype semantic-action |
| files, additions to old semantic-action files, temporary files, and log |
| files. The first two can be used to extend the capability of liblouisutdml |
| to process xml documents. The latter two are useful for debugging. |
| </p> |
| <p>liblouisutdml determines the paths on which it will search for files at |
| run time, as part of its initialization. First, if the first file in a |
| configuration file list includes a path, liblouisutdml will search first |
| on this path. The path may be either absolune or relative. Only the |
| first filename in a configuration file list may have a path. Next, in |
| Windows liblouisutdml determines the path to itself. this is the second |
| path on which it will look for files. The liblouis <samp>tables</samp> |
| directory and the liblouisutdml <samp>lbu_files</samp> directory are relative to |
| this path. In Unix systems, including the Mac,, these directories are |
| absolute paths determined at compile time. liblouisutdml searches first |
| the <samp>tables</samp> directory and then the <samp>lbu_files</samp> directory. |
| Finally, it establishes the current directory as the final path to be |
| searched. If you wish the current directory to be the first path |
| searched, prefix the first configuration file name with ‘<samp>./</samp>’ for |
| Unix or ‘<samp>.\</samp>’ for Windows. |
| </p> |
| <p>Paths are handled in the <code>paths.c</code> module. This contains the |
| function <code>set_paths</code>, which is called from <code>readconfig.c</code> and |
| in turn calls <code>addPath</code> in the <code>paths.c</code> module. |
| </p> |
| <hr> |
| <a name="lbu_005fversion"></a> |
| <a name="lbu_005fversion-1"></a> |
| <h3 class="section">8.4 lbu_version</h3> |
| |
| <a name="index-lbu_005fversion"></a> |
| <div class="example"> |
| <pre class="example">char *lbu_version (void) |
| </pre></div> |
| |
| <p>This function returns a pointer to a character string containing the |
| version of liblouisutdml. Other information such as the release |
| date and perhaps notable changes may be added later. |
| </p> |
| <hr> |
| <a name="lbu_005finitialize"></a> |
| <a name="lbu_005finitialize-1"></a> |
| <h3 class="section">8.5 lbu_initialize</h3> |
| |
| <a name="index-lbu_005finitialize"></a> |
| <div class="example"> |
| <pre class="example">void * lbu_initialize ( |
| const char *configFilelist, |
| const char *logFileName, |
| const char *settingsString) |
| </pre></div> |
| |
| <p>This function initializes the libxml2 library, processes |
| <samp>liblouisutdml.ini</samp> and configuration settings given in |
| the configuration files given in <code>configFilelist</code>. This is a list |
| of configuration file names separated by commas. If the first character |
| is a comma it is taken to be a string containing configuration settings |
| and is processed like the <code>settingsString</code> string. if the parameter |
| <code>settingsString</code> is not <code>NULL</code> it is processed last. Such a |
| string must conform to the format of a configuration file. Newlines |
| should be represented with ASCII 10. If <code>logfilename</code> is not |
| <code>null</code>, a log file is produced on the current directory. If it is |
| <code>null</code> any messages are printed on stderr. The function returns a |
| pointer to the <code>UserData</code> structure. This pointer is <code>void</code> |
| and must be cast to <code>(UserData *)</code> in the calling program. To |
| access the information in this structure you must include |
| <samp>louisutdml.h</samp>. This function is used by <code>file2brl</code>. |
| </p> |
| <hr> |
| <a name="lbu_005ftranslateString"></a> |
| <a name="lbu_005ftranslateString-1"></a> |
| <h3 class="section">8.6 lbu_translateString</h3> |
| |
| <a name="index-lbu_005ftranslateString"></a> |
| <div class="example"> |
| <pre class="example">int lbu_translateString ( |
| const char *configfilelist, |
| char * inbuf, |
| widechar *outbuf, |
| int *outlen, |
| unsigned int mode) |
| </pre></div> |
| |
| <p>This function takes a well-formed xml expression in <code>inbuf</code> and |
| translates it into a string of 16-bit (or 32-bit if this has been |
| specified in liblouis) braille characters in <code>outbuf</code>. The xml |
| expression must be immediately followed by a zero or null byte. |
| Leading whitespace is ignored. If it does not then begin with the |
| characters ‘<samp><?xml</samp>’ an xml header is added. If it does not begin |
| with ‘<samp><</samp>’ it is assumed to be a text string and is translated |
| accordingly. The header is specified by the <code>xmlHeader</code> line in |
| the configuration file. If no such line is present, a default header |
| specifying UTF-8 encoding is used. The <code>mode</code> parameter specifies |
| whether you want the library to be initialized. If it is 0 everything |
| is reset, the <samp>liblouisutdml.ini</samp> file is processed and the |
| configuration file and/or string (see previous section) are processed. |
| If <code>mode</code> is 1 liblouisutdml simply prepares to handle a new |
| document. For more on the <code>mode</code> parameter see the next section. |
| </p> |
| <p>Which 16-bit character in <code>outbuf</code> represents which dot pattern |
| is indicated in the liblouis translation tables. The |
| <code>configfilelist</code> parameter points to a configuration file or |
| string. Among other things, this file specifies translation tables. It |
| is these tables which control just how the translation is made, |
| whether in Grade 2, Grade 1, the Nemeth Code of Braille Mathematics or |
| something else. |
| </p> |
| <p>Note that the <code>*outlen</code> parameter is a pointer to an integer. |
| When the function is called, this integer contains the maximum output |
| length. When it returns, it is set to the actual length used. The |
| function returns 1 if no errors were encountered and a negative number |
| if a complete translation could not be done. |
| </p> |
| <hr> |
| <a name="lbu_005ftranslateFile"></a> |
| <a name="lbu_005ftranslateFile-1"></a> |
| <h3 class="section">8.7 lbu_translateFile</h3> |
| |
| <a name="index-lbu_005ftranslateFile"></a> |
| <div class="example"> |
| <pre class="example">int lbu_translateFile ( |
| char *configfilelist, |
| char *inputFileName, |
| char *outputFileName, |
| unsigned int mode) |
| </pre></div> |
| |
| <p>This function accepts a well-formed xml document in |
| <code>inputFilename</code> and produces a braille translation in |
| <code>outputFilename</code>. As for <code>lbu_translateString</code>, the |
| <code>mode</code> parameter specifies whether the library is to be |
| initialized with new configuration information or simply prepared to |
| handle a new document. In addition, the <code>mode</code> parameter can |
| specify that a document is in html, not xhtml. <samp>liblouisutdml.h</samp> |
| contains an enumeration type with the values <code>dontInit</code> and |
| <code>htmlDoc</code>. These can be combined with an or (‘<samp>|</samp>’) operator. The |
| input file is assumed to be encoded in UTF-8, unless otherwise |
| specified in the xml header. The encoding of the output file may be |
| UTF-8, UTF-16, UTF-32 or Ascii-8. This is specified by the |
| <code>outputEncoding</code> line in the configuration file, |
| <code>configfilelist</code>. The function returns 1 if the translation was |
| successful. |
| </p> |
| <hr> |
| <a name="lbu_005ftranslateTextFile"></a> |
| <a name="lbu_005ftranslateTextFile-1"></a> |
| <h3 class="section">8.8 lbu_translateTextFile</h3> |
| |
| <a name="index-lbu_005ftranslateTextFile"></a> |
| <div class="example"> |
| <pre class="example">int lbu_translateTextFile ( |
| char *configfilelist, |
| char *inputFileName, |
| char *outputFileName, |
| unsigned int mode) |
| </pre></div> |
| |
| <p>This function accepts a text file in <code>inputFilename</code> and produces |
| a braille translation in <code>outputFilename</code>. The input file is |
| assumed to be encoded in Ascii8. However, utf-8 can be specified with |
| the configuration setting <code>inputTextEncoding utf8</code>. Blank lines |
| indicate the divisions between paragraphs. Two blank lines cause a |
| blank line between paragraphs (or headers). The output file may be in |
| UTF-8, UTF-16, or Ascii8, as specified by the <code>outputEncoding</code> |
| line in the configuration file, <code>configfilelist</code>. As for |
| <code>lbu_translateString</code>, the <code>mode</code> parameter specifies |
| whether complete initialization is to be done or simply initialization |
| for a new document. |
| </p> |
| <hr> |
| <a name="lbu_005fbackTranslateFile"></a> |
| <a name="lbu_005fbackTranslateFile-1"></a> |
| <h3 class="section">8.9 lbu_backTranslateFile</h3> |
| |
| <a name="index-lbu_005fbackTranslateFile"></a> |
| <div class="example"> |
| <pre class="example">int lbu_backTranslateFile ( |
| char *configfilelist, |
| char *inputFileName, |
| char *outputFileName, |
| unsigned int mode) |
| </pre></div> |
| |
| |
| <p>This function accepts a braille file in <code>inputFilename</code> and |
| produces a back-translation in <code>outputFilename</code>. The input file |
| is assumed to be encoded in Ascii8. The output file is in either plain |
| text or html, according to the setting of <code>backFormat</code> in the |
| configuration file. Html files are encoded in UTF8. In plain-text, |
| blank lines are inserted between paragraphs. The output file may be in |
| UTF-8, UTF-16, or Ascii8, as specified by the <code>outputEncoding</code> |
| line in the configuration file, <code>configfilelist</code>. The mode |
| parameter specifies whether or not the library is to be initialized |
| with new configuration information, as described in the section on |
| <code>lbu_translateString</code> (see <a href="#lbu_005ftranslateString">lbu_translateString</a>). |
| </p> |
| <hr> |
| <a name="lbu_005ffree"></a> |
| <a name="lbu_005ffree-1"></a> |
| <h3 class="section">8.10 lbu_free</h3> |
| |
| <a name="index-lbu_005ffree"></a> |
| <div class="example"> |
| <pre class="example">void lbu_free (void) |
| </pre></div> |
| |
| <p>This function should be called at the end of the application to free |
| all memory allocated by liblouisutdml and liblouis. If you wish to |
| change configuration files during your application, use a <code>mode</code> |
| parameter of 0 on the function call using the new configuration |
| information. This will call the <code>lbu_free</code> function automatically. |
| </p> |
| <hr> |
| <a name="Example-files"></a> |
| <a name="Example-files-1"></a> |
| <h2 class="appendix">Appendix A Example files</h2> |
| |
| <p>This appendix contains all the files referenced in this document. They |
| are up-to-date at the time of writing, but the actual files used by the |
| software may change. Besides being used for reference, they can be |
| studied to see how things are done. |
| </p> |
| |
| <hr> |
| <a name="liblouisutdml_002eini"></a> |
| <a name="liblouisutdml_002eini-1"></a> |
| <h3 class="section">A.1 <samp>liblouisutdml.ini</samp></h3> |
| |
| <div class="example"> |
| <pre class="example"># canonical Configuration File |
| |
| # This file contains all possible settings, together with their |
| # default values. |
| |
| # It is read automatically when liblouisutdml starts. You should use it as |
| # a reference but never specify it as a configuration file. |
| |
| # There are three kinds of lines in the file. the first has a single |
| # column beginning at the left margin. This column contains the name of |
| # a category of settings, such as outputFormat or translation. These |
| # lines are optional. The |
| # second type of line contains the word style in the first column, |
| # followed by at least one space or tab, and then a style name. The |
| # third kind of line is indented one tab stop to set it off from the |
| # others. It centains a setting name, at least one blank space or tab, |
| # and the value of the setting. |
| |
| outputFormat |
| cellsPerLine 40 |
| linesPerPage 25 |
| interpoint no |
| lineEnd \r\n |
| pageEnd \f |
| fileEnd ^z |
| printPages yes |
| braillePages yes |
| paragraphs yes |
| beginningPageNumber 1 |
| printPageNumberAt top |
| braillePageNumberAt bottom |
| hyphenate no |
| outputEncoding ascii8 |
| inputTextEncoding ascii8 |
| backFormat plain |
| backLineLength 70 |
| formatFor textDevice |
| interline no |
| lineFill ' |
| translation |
| literarytextTable en-us-g2.ctb |
| uncontractedTable en-us-g1.ctb |
| compbrlTable en-us-compbrl.ctb |
| mathtextTable en-us-g2.ctb |
| mathexprTable nemeth.ctb |
| editTable nemeth_edit.ctb |
| interlineBackTable en-us-interline.ctb |
| xml |
| semanticFiles *,nemeth.sem |
| xmlheader "<?xml version='1.0' encoding='UTF8' standalone='yes'?>" |
| # entity nbsp ^1 |
| internetAccess yes |
| newEntries yes |
| |
| # Unlike the other categories, the style category must be followed by |
| # the name of a style. |
| |
| style document |
| linesBefore 0 |
| linesAfter 0 |
| leftMargin 0 |
| firstLineIndent 0 |
| translate contracted |
| skipNumberLines no |
| format leftJustified |
| newPageBefore no |
| newPageAfter no |
| righthandPage no |
| braillePageNumberFormat normal |
| |
| style arith |
| style attribution |
| format rightJustified |
| style biblio |
| style caption |
| leftMargin 4 |
| firstLineIndent 2 |
| style code |
| linesBefore 1 |
| linesAfter 1 |
| skipNumberLines yes |
| format computerCoded |
| style contentsheader |
| linesBefore 1 |
| format centered |
| linesAfter 1 |
| style contents1 |
| firstLineIndent -2 |
| leftMargin 2 |
| format contents |
| style contents2 |
| firstLineIndent -2 |
| leftMargin 4 |
| format contents |
| style contents3 |
| firstLineIndent -2 |
| leftMargin 6 |
| format contents |
| style contents4 |
| firstLineIndent -2 |
| leftMargin 8 |
| format contents |
| style dedication |
| newPageBefore yes |
| newPageAfter yes |
| format centered |
| style directions |
| style dispmath |
| leftMargin 2 |
| style disptext |
| leftMargin 2 |
| firstLineIndent 2 |
| style exercise1 |
| leftMargin 2 |
| firstLineIndent -2 |
| style exercise2 |
| leftMargin 4 |
| firstLineIndent -2 |
| style exercise3 |
| leftMargin 6 |
| firstLineIndent -2 |
| style glossary |
| firstLineIndent 2 |
| style graph |
| skipNumberLines yes |
| style graphlabel |
| style heading1 |
| linesBefore 1 |
| format centered |
| linesAfter 1 |
| style heading2 |
| linesBefore 1 |
| firstLineIndent 4 |
| style heading3 |
| firstLineIndent 4 |
| style heading4 |
| firstLineIndent 4 |
| style index |
| style line |
| firstLineIndent -2 |
| leftMargin 2 |
| style list |
| firstLineIndent -2 |
| leftMargin 2 |
| style matrix |
| format alignColumnsLeft |
| style music |
| skipNumberLines yes |
| style note |
| style para |
| firstLineIndent 2 |
| style quotation |
| linesBefore 1 |
| linesAfter 1 |
| style section |
| firstLineIndent 4 |
| style spatial |
| style stanza |
| linesBefore 1 |
| linesAfter 1 |
| style style1 |
| style style2 |
| style style3 |
| style style4 |
| style style5 |
| style subsection |
| firstLineIndent 4 |
| style table |
| linesBefore 1 |
| linesAfter 1 |
| style titlepage |
| newPageAfter yes |
| style trnote |
| firstLineIndent 7 |
| leftMargin 5 |
| style volume |
| </pre></div> |
| |
| |
| <hr> |
| <a name="default_002ecfg"></a> |
| <a name="default_002ecfg-1"></a> |
| <h3 class="section">A.2 <samp>default.cfg</samp></h3> |
| |
| <div class="example"> |
| <pre class="example">outputFormat |
| cellsPerLine 32 |
| linesPerPage 25 |
| interpoint no |
| braillePages no |
| # backFormat html |
| # hyphenate yes |
| # interline yes |
| translation |
| literaryTextTable en-us-g2.ctb,corrections.ctb |
| # literaryTextTable en-us-g2.ctb,hyph_en_US.dic |
| # literaryTextTable no-no-g1.ctb |
| # interlineBackTable en-us-interline.ctb |
| compbrlTable en-us-comp8.ctb |
| xml |
| internetAccess no |
| # newEntries no |
| # semanticFiles book.sem |
| # entity nbsp ~1 |
| |
| </pre></div> |
| |
| <hr> |
| <a name="html_002esem"></a> |
| <a name="html_002esem-1"></a> |
| <h3 class="section">A.3 <samp>html.sem</samp></h3> |
| |
| <div class="example"> |
| <pre class="example"># This file was produced by liblouisutdml and is considered part of |
| # the code. See the file copyright-notice for permissions and |
| # restrictions. This notice also applies to any files with names |
| # beginning with 'appended_'. |
| |
| # You must edit this file as explained in the documentation to get |
| # proper output. |
| notranslate ntr |
| trnote trnote |
| contentsheader contentshere |
| no hr |
| no body |
| softreturn br |
| heading1 h1 |
| italicx em |
| skip style |
| italicx strong |
| no ol |
| no head |
| document html |
| no a |
| para p |
| heading1 title |
| list li |
| table table |
| no param |
| pagenum pagenum |
| no div |
| no span |
| no link |
| heading2 h2 |
| no img |
| no td |
| no tr |
| no object |
| no ul |
| no link,type |
| no img,width |
| no table,cellpadding |
| no img,src |
| no div,class |
| no td,class |
| no p,class |
| no table,border |
| no table,width |
| htmllink link,href |
| no param,name |
| no param,value |
| no link,rel |
| no a,id |
| no table,cellspacing |
| no td,colspan |
| no img,height |
| no object,classid |
| no object,width |
| changetable span,lang |
| no span,class |
| no object,height |
| no a,class |
| no img,alt |
| htmllink a,href |
| htmltarget a,name |
| no p,align |
| no a,name,light |
| no a,name,decisi |
| no a,name,city |
| no a,name,ascent |
| no a,name,homeco |
| no a,name,forest |
| no a,name,prolog |
| no p,align,center |
| no a,name,homest |
| no link,type,text/css |
| no a,id,TrigonometricFun |
| no img,width,300 |
| no img,height,300 |
| no a,href,http://ocw.mit.e |
| no td,colspan,3 |
| no table,border,0 |
| no table,cellpadding,0 |
| no td,class,navbar |
| no param,name,archive |
| no a,href,../tools/content |
| no object,height,450 |
| no span,class,math-inline-bold |
| no link,href,../calculus.css |
| no param,name,codebase |
| no span,class,math-inline-norm |
| no img,alt,figure |
| no p,class,text-right |
| no a,href,contents.xhtml |
| no img,src,images/trigo_fun |
| no object,classid,java:Trigonometr |
| no p,class,text-center |
| no a,class,doclink |
| no table,cellspacing,0 |
| no a,href,../glossary_nota |
| no div,class,math-block-norma |
| no link,href,../mathml.css |
| no param,value,trigonometricFun |
| no a,href,../index.xhtml |
| no link,rel,stylesheet |
| no param,value,../applets/ |
| no object,width,760 |
| no table,width,100% |
| no img,width,184 |
| no div,class,math-block-bold |
| no img,height,116 |
| no img,src,images/law_sines |
| no img,src,images/ln.gif |
| no param,value,rotatingCoordina |
| no object,classid,java:RotatingCoo |
| no a,id,RotatingCoordina |
| no a,id,Exercise_3_2 |
| no a,id,Exercise_3_5 |
| no object,classid,java:OperationsO |
| no a,id,Definition |
| no param,value,operationsOnVect |
| no param,value,multiplicationVe |
| no img,src,images/polar_coo |
| no param,value,determinantVecto |
| no html,lang |
| no html,lang,no |
| no i |
| no sup |
| no style,type |
| no style,type,text/css |
| no p,class,indent |
| no p,class,center |
| no p,class,right |
| no span,class,math-inline-normal |
| no object,classid,java:OperationsOnVectors.class |
| no a,href,http://ocw.mit.edu/OcwWeb/Mathematics/18-013ASprin |
| code pre |
| no meta |
| no h1,align |
| no meta,content |
| no meta,name |
| no meta,name,description |
| no h1,align,center |
| no meta,name,keywords |
| no meta,content,Pope_John_Paul_II's_Apostolic__Letter_'Salvifici_D |
| no meta,content,suffering__Christian_suffering__redemptive_sufferi |
| no font |
| no b |
| no small |
| no h3 |
| no sub |
| no font,size |
| no td,align |
| no mstyle,fontfamily |
| no td,width |
| no mi,fontstyle |
| no ol,type |
| no mstyle,fontfamily,helvetica |
| no mi,fontstyle,italic |
| no td,align,center |
| no meta,content,TtM_3.72 |
| no td,width,1 |
| no meta,name,GENERATOR |
| no ol,type,1 |
| no div,class,p |
| no font,size,-1 |
| no mi,fontstyle,normal |
| no span,lang,en-us-g1.ctb |
| no none |
| no col |
| no caption |
| no thead |
| no cite |
| no tbody |
| no mprescripts |
| no math,id |
| no mo,minsize |
| no math,smilref |
| no h1,class |
| no p,id |
| no caption,title |
| no table,id |
| no object,data |
| no thead,id |
| no div,title |
| no col,id |
| no tbody,id |
| no div,id |
| no caption,id |
| no math,alttext |
| no meta,scheme |
| no object,id |
| no p,title |
| no td,rowspan |
| no cite,id |
| no math,altimg |
| no mspace,linebreak |
| no table,title |
| no td,id |
| no tr,id |
| no math,overflow |
| no div,id,d4e64 |
| no math,id,d1e21 |
| no p,title,paragraph:_We_have_performed... |
| no div,id,d4e54 |
| no div,id,d4e59 |
| no meta,content,Text |
| no mi,mathvariant,bold-italic |
| no div,id,d4e49 |
| no math,overflow,scroll |
| no div,id,front |
| no p,id,d4e72 |
| no math,alttext,__lamda_sub_c |
| no meta,scheme,EID |
| no p,id,d4e62 |
| no p,id,d4e67 |
| no p,id,d4e52 |
| no object,id,f1 |
| no object,id,f2 |
| no p,id,d4e57 |
| no object,id,f3 |
| no tbody,id,d13e73 |
| no tr,id,d13e74 |
| no math,smilref,dtb_e057003.smil#d1e21 |
| no td,colspan,1 |
| no tr,id,d13e67 |
| no td,colspan,2 |
| no p,title,paragraph:_We_report_measure... |
| no caption,id,d13e2 |
| no math,id,d1e770 |
| no meta,scheme,PACS_code |
| no p,title,paragraph:_Angle_resolved_ph... |
| no object,data,e057003_2.svg |
| no math,smilref,dtb_e057003.smil#d1e770 |
| no p,title,paragraph:_The_transition_me... |
| no col,id,d13e60 |
| no col,id,d13e61 |
| no col,id,d13e62 |
| no col,id,d13e63 |
| no col,id,d13e64 |
| no caption,title,caption |
| no div,title,Author_Information |
| no link,href,default.css |
| no math,alttext,__cap_nb_cap_se_sub_2 |
| no math,id,d1e113 |
| no math,alttext,__lamda_sub_ay |
| no mspace,linebreak,goodbreak |
| no math,id,d1e121 |
| no meta,name,dc:Type |
| no math,id,d1e129 |
| no span,class,sentence |
| no div,title,frontmatter |
| no cite,id,d4e2807 |
| no div,class,doctitle |
| no math,smilref,dtb_e057003.smil#d1e113 |
| no td,rowspan,1 |
| no p,title,paragraph:_We_thank_I._Mazin... |
| no math,smilref,dtb_e057003.smil#d1e121 |
| no math,smilref,dtb_e057003.smil#d1e129 |
| no math,altimg,math_img/math_2.png |
| no cite,id,d4e2838 |
| no div,class,frontmatter |
| no thead,id,d13e66 |
| no table,title,Table:_Variation_of_the_... |
| no cite,id,d4e2816 |
| no cite,id,d4e2829 |
| no math,alttext,_2__cap_h_-__cap_nb_cap_se_sub_2 |
| no td,id,d13e88 |
| no td,id,d13e71 |
| no td,id,d13e75 |
| no param,name,SRC |
| no td,id,d13e68 |
| no td,id,d13e69 |
| no object,classid,CLSID:8483EB52-5EF2-44F5-A685-C9FD08F9B18C |
| no html,lang,en |
| no object,data,e057003_3.svg |
| no tr,id,d13e193 |
| no tr,id,d13e167 |
| no tr,id,d13e180 |
| no table,id,d13e1 |
| no math,altimg,math_img/math_1.png |
| no meta,content,ANSI/NISO_Z39.86-2005 |
| no meta,scheme,http://www.w3.org/1998/Math/MathML |
| no math,altimg,math_img/math_4.png |
| no h1,class,title |
| no math,altimg,math_img/math_10.png |
| no math,altimg,math_img/math_3.png |
| no cite,id,d4e2794 |
| no meta,scheme,DOI |
| no mo,minsize,5ex |
| no object,data,e057003_1.svg |
| no meta,name,dc:Format |
| no a,class,nava |
| no a,onclick |
| no a,onclick,ChSize('10') |
| no a,onclick,ChSize('12') |
| no a,onclick,ChSize('13') |
| no a,onclick,ChSize('14') |
| no a,shape |
| no a,shape,rect |
| no a,target |
| no a,target,_blank |
| quotation blockquote |
| no br,class |
| no br,class,newline |
| no center |
| no h3,class |
| no h3,class,sectionHead |
| heading4 h4 |
| no h4,class |
| no h4,class,subsectionHead |
| no img,alt,Variable_Star.jpg |
| no img,src,Variable%20Star.jpg |
| no link,href,http://purl.org/DC/elements/1.0/ |
| no link,href,root.css |
| no link,rel,schema.DC |
| no meta,http-equiv |
| no meta,http-equiv,Content-Language |
| no meta,http-equiv,Content-Type |
| no mo,class |
| no mo,class,MathClass-close |
| no mo,class,MathClass-punc |
| no mo,class,MathClass-rel |
| no mspace,class |
| no mspace,class,quad |
| no mspace,width,1em |
| no mstyle,class |
| no mstyle,class,label |
| no mstyle,id |
| no mstyle,id,x1-2001r1 |
| no mstyle,id,x1-2002r2 |
| no script |
| no script,type |
| no script,type,text/javascript |
| no span,class,titlemark |
| no table,class |
| no table,class,equation |
| no td,class,eq-no |
| titlepage titlepage |
| dedication dedication |
| attribution attribution |
| no list |
| italicx emp |
| no attrib |
| no meta,name,generator |
| no mo,class,MathClass-op |
| no mo,class,MathClass-open |
| no mo,class,MathClass-bin |
| boxline boxline 7 |
| no base |
| no var |
| para dd |
| no dl |
| para dt |
| heading4 h5 |
| compbrl code |
| no base,href |
| no hr,title |
| no tr,valign |
| no pre,style |
| no img,width,72 |
| no pre,style,color:_red |
| no tr,valign,baseline |
| no base,href,http://www.w3.org/TR/1999/REC-xslt-19991116 |
| no img,height,48 |
| no table,class,scrap |
| no hr,title,Separator_for_header |
| no img,alt,W3C |
| no hr,title,Separator_from_footer |
| no samp |
| no th |
| no dd,id |
| |
| no h2,id |
| no table,summary |
| no li,id |
| no ol,id |
| no dl,id |
| no ul,class |
| no ul,id |
| no dt,id |
| no samp,id |
| no h1,id |
| no h3,id |
| no ul,class,pl |
| no dl,id,dl_1 |
| no ul,id,ul_1 |
| no dl,id,dl_2 |
| no ul,id,ul_2 |
| no ul,id,ul_3 |
| no ul,id,ul_4 |
| no dl,id,dl_5 |
| no dl,id,dl_6 |
| no h3,id,h3_18 |
| no h2,id,h2_5a |
| no h1,id,h1_2a |
| no h3,id,Vote |
| no dl,id,dl_5a |
| no samp,id,smp_1 |
| no samp,id,smp_2 |
| no li,id,li_0 |
| no samp,id,smp_3 |
| no li,id,li_1 |
| no samp,id,smp_4 |
| no li,id,li_2 |
| no samp,id,smp_5 |
| no li,id,li_3 |
| no li,id,li_4 |
| no dd,id,dd_1 |
| no dt,id,dt_1 |
| no dd,id,dd_2 |
| no dt,id,dt_2 |
| no dd,id,dd_3 |
| no dt,id,dt_3 |
| no dd,id,dd_4 |
| no dt,id,dt_4 |
| no dd,id,dd_5 |
| no dt,id,dt_5 |
| no h3,id,h3_8 |
| no h3,id,BoD |
| no h3,id,h2_5 |
| no ol,id,ol_3gwk |
| no h1,id,h1_2 |
| no h1,id,h1_3 |
| no h1,id,h1_4 |
| no h2,id,h2_6 |
| no h2,id,h2_7 |
| no h2,id,h2_8 |
| no h2,id,h2_9 |
| no ol,id,ol_2 |
| no h1,id,h1_a |
| no ol,id,ol_3 |
| no ol,id,ol_4 |
| no table,summary,This_table_lists_each_kind_of_DTB_file__the_requir |
| no ul,id,ol_1 |
| no base |
| no var |
| para dd |
| para dl |
| no dt |
| no h5 |
| code code |
| no base,href |
| no hr,title |
| no tr,valign |
| no pre,style |
| no img,width,72 |
| no pre,style,color:_red |
| no tr,valign,baseline |
| no base,href,http://www.w3.org/TR/1999/REC-xslt-19991116 |
| no img,height,48 |
| no table,class,scrap |
| no hr,title,Separator_for_header |
| no img,alt,W3C |
| no hr,title,Separator_from_footer |
| no samp |
| no th |
| no dd,id |
| no h2,id |
| no table,summary |
| no li,id |
| no ol,id |
| no dl,id |
| no ul,class |
| no ul,id |
| no dt,id |
| no samp,id |
| no h1,id |
| no h3,id |
| no ul,class,pl |
| no dl,id,dl_1 |
| no ul,id,ul_1 |
| no dl,id,dl_2 |
| no ul,id,ul_2 |
| no ul,id,ul_3 |
| no ul,id,ul_4 |
| no dl,id,dl_5 |
| no dl,id,dl_6 |
| no h3,id,h3_18 |
| no h2,id,h2_5a |
| no h1,id,h1_2a |
| no h3,id,Vote |
| no dl,id,dl_5a |
| no samp,id,smp_1 |
| no samp,id,smp_2 |
| no li,id,li_0 |
| no samp,id,smp_3 |
| no li,id,li_1 |
| no samp,id,smp_4 |
| no li,id,li_2 |
| no samp,id,smp_5 |
| no li,id,li_3 |
| no li,id,li_4 |
| no dd,id,dd_1 |
| no dt,id,dt_1 |
| no dd,id,dd_2 |
| no dt,id,dt_2 |
| no dd,id,dd_3 |
| no dt,id,dt_3 |
| no dd,id,dd_4 |
| no dt,id,dt_4 |
| no dd,id,dd_5 |
| no dt,id,dt_5 |
| no h3,id,h3_8 |
| no h3,id,BoD |
| no h3,id,h2_5 |
| no ol,id,ol_3gwk |
| no h1,id,h1_2 |
| no h1,id,h1_3 |
| no h1,id,h1_4 |
| no h2,id,h2_6 |
| no h2,id,h2_7 |
| no h2,id,h2_8 |
| no h2,id,h2_9 |
| no base,href,http://www.daisy.org/z3986/2005/Z3986-2005.html |
| no ol,id,ol_2 |
| no h1,id,h1_a |
| no ol,id,ol_3 |
| no ol,id,ol_4 |
| no table,summary,This_table_lists_each_kind_of_DTB_file__the_requir |
| no ul,id,ol_1 |
| no form |
| no input |
| no select |
| no label |
| no noscript |
| no option |
| no textarea |
| no td,valign |
| no input,border |
| no textarea,class |
| no select,class |
| no img,name |
| no input,type |
| no script,language |
| no select,size |
| no label,for |
| no textarea,name |
| no link,media |
| no input,name |
| no textarea,wrap |
| no td,height |
| no script,src |
| no input,width |
| no input,id |
| no form,id |
| no img,border |
| no b,class |
| no option,selected |
| no li,class |
| no form,method |
| no img,align |
| no table,align |
| no input,maxlength |
| no img,class |
| no input,value |
| no select,id |
| no form,name |
| no textarea,rows |
| no tr,align |
| no input,class |
| no input,src |
| no textarea,id |
| no select,name |
| no pre,class |
| no span,id |
| no input,alt |
| no img,vspace |
| no textarea,cols |
| no input,height |
| no form,action |
| no tr,class |
| no option,value |
| no img,vspace,3 |
| no img,border,0 |
| no input,height,21 |
| no input,width,120 |
| no select,size,1 |
| no input,src,//www.ibm.com/i/v14/buttons/submit.gif |
| no td,height,18 |
| no input,maxlength,100 |
| no option,value,dW |
| no pre,class,displaycode |
| no textarea,cols,35 |
| no form,method,get |
| no tr,align,right |
| no table,align,right |
| no input,id,q |
| no img,class,display-img |
| no textarea,rows,5 |
| no form,name,form1 |
| no b,class,related |
| no input,name,searchType |
| no input,border,0 |
| no td,valign,middle |
| no textarea,class,iform |
| no select,id,sn |
| no textarea,id,Comments |
| no link,media,screen_print |
| no select,name,searchScope |
| no textarea,name,Comments |
| no form,action,//www.ibm.com/developerworks/search/searchResults. |
| no img,align,left |
| no input,class,ibm-btn-search |
| no script,src,/developerworks/js/dwcss14.js |
| no span,id,ibm-search-scope |
| no label,for,sn |
| no script,language,JavaScript |
| no input,alt,Submit |
| no img,name,Benoit_Marchal |
| no tr,class,left-nav-child-highlight |
| no input,type,hidden |
| no textarea,wrap,virtual |
| no li,class,ibm-first |
| no option,selected,selected |
| no select,class,input-local |
| no input,value,1 |
| no form,id,ibm-search-form |
| no body,link |
| no h3,align |
| no body,vlink |
| no body,alink |
| no body,bgcolor |
| no body,text |
| no h2,align |
| no font,face |
| no body,text,black |
| no body,bgcolor,white |
| no body,alink,navy |
| no body,link,red |
| no h2,align,center |
| no h3,align,center |
| no body,vlink,red |
| no font,face,Arial_Helvetica_sans-serif |
| no link,rel,SHORTCUT_ICON |
| no acronym |
| code cdata-section |
| no dfn |
| no kbd |
| no ul,compact |
| no a,accesskey |
| no ol,start |
| no small,class |
| no link,title |
| no a,rel |
| no h2,class |
| no div,align |
| no ol,start,1 |
| no small,class,dots |
| no h2,class,unnumbered |
| no a,rel,next |
| no div,align,right |
| no link,title,Top |
| no ul,compact, |
| no a,accesskey,n |
| no h3,class,likesectionHead |
| no h4,class,likesubsectionHead |
| no a,class,url |
| no colgroup |
| no colgroup,id |
| no table,rules |
| no tr,style |
| no td,style |
| no li,class |
| no ol,class |
| no tr,class |
| no li,class,enumerate |
| no ol,class,enumerate1 |
| no tr,style,vertical-align:baseline; |
| no td,style,text-align:center;_white-space:nowrap; |
| no colgroup,id,TBL-1-4g |
| no colgroup,id,TBL-1-5g |
| no table,rules,groups |
| no colgroup,id,TBL-1-2g |
| no colgroup,id,TBL-1-3g |
| no td,style,text-align:left;_white-space:nowrap; |
| no colgroup,id,TBL-1-1g |
| no tr,class,hline |
| no table,class,tabular |
| no td,class,td11 |
| no h2,class |
| no h2,class,likechapterHead |
| no colgroup,id |
| no tr,style |
| no td,style |
| no tr,class |
| no h3,class,likesectionHead |
| no colgroup,id,TBL-4621-1g |
| no tr,style,vertical-align:baseline; |
| no td,style,text-align:center;_white-space:nowrap; |
| no table,rules,groups |
| no colgroup,id,TBL-4621-2g |
| no td,style,text-align:left;_white-space:nowrap; |
| no h4,class,likesubsectionHead |
| no tr,class,hline |
| no table,class,tabular |
| no td,class,td11 |
| </pre></div> |
| |
| |
| <hr> |
| <a name="nemeth_002esem"></a> |
| <a name="nemeth_002esem-1"></a> |
| <h3 class="section">A.4 <samp>nemeth.sem</samp></h3> |
| |
| <div class="example"> |
| <pre class="example"># Licnsed under LGPL |
| |
| # Updated 6-18-08 by Mike Sivill <mike.sivill@viewplus.com> |
| |
| # You must edit this file as explained in the documentation to get |
| # proper output. |
| |
| maction maction |
| maligngroup maligngroup |
| malignmark malignmark |
| math math \eb,\*\ee |
| menclose menclose |
| mfrac mfrac ^?,/,^# |
| mfenced mfenced ^(,^) |
| mfenced mfenced,open,{ ^{,^} |
| mglyph mglyph |
| mi mi |
| mlabeledtr mlabeledtr |
| mmultiscripts mmultiscripts |
| mn mn |
| mo mo |
| mover mover ^",^<,^} |
| mpadded mpadded |
| reverse mroot ^<,^>,^} |
| mrow mrow |
| ms ms |
| mspace mspace |
| msqrt msqrt ^>,^} |
| mstyle mstyle |
| msub msub ,^;,^" |
| msubsup msupsup ,^~,^~^~,^" |
| msubsup msubsup ,^;,^~,^" |
| msup msup ,^~,^" |
| matrix mtable |
| mtd mtd \*\ec |
| mtext mtext |
| mtr mtr ^`^\,^(,\*^`^\,^)\er |
| munder munder ^",^%,^} |
| munderover munderover ^",^%,^<,^} |
| semantics semantics |
| skip annotation |
| no annotation,encoding |
| no maction,actiontype |
| no maction,actiontype,highli |
| no maction,actiontype,status |
| no maction,actiontype,toggle |
| no maction,dsi:background |
| no malignmark,edge |
| no malignmark,edge,right |
| no math,display |
| no math,display,block |
| no math,mode |
| no math,mode,inline |
| no math,xmlns |
| no mfenced,open |
| no mfenced,separators |
| no mn,color |
| no mn,color,green |
| no mo,stretchy |
| no mo,stretchy,false |
| no mo,stretchy,true |
| no mover,accent |
| no mover,accent,true |
| no ms,lquote |
| no ms,rquote |
| no ms,rquote,' |
| no mspace,height |
| no mspace,width |
| no mstyle,background |
| no mstyle,background,lightb |
| no mstyle,background,red |
| no mstyle,color |
| no mstyle,color,blue |
| no mstyle,displaystyle |
| no mstyle,displaystyle,true |
| no mstyle,fontsize |
| no mstyle,fontstyle |
| no mstyle,fontstyle,italic |
| no mstyle,fontstyle,normal |
| no mstyle,fontweight |
| no mstyle,fontweight,bold |
| no mstyle,mathsize |
| no mstyle,mathsize,normal |
| no mstyle,mathvariant |
| no mstyle,mathvariant,bold |
| no mstyle,scriptlevel |
| no mtable,columnalign |
| no mtable,columnalign,left |
| no mtable,equalcolumns |
| no mtable,equalcolumns,false |
| no mtable,equalrows |
| no mtable,equalrows,false |
| no mtable,frame |
| no mtable,frame,solid |
| no mtable,width |
| no munderover,accent |
| no munderover,accent,true |
| skip annotation,encoding,MathType-MTEF |
| skip merror |
| skip mphantom |
| no mo,maxsize |
| no mo,maxsize,3 |
| no mo,mathsize |
| no mi,mathvariant |
| no mo,mathvariant |
| no munder,accentunder |
| no mn,mathvariant |
| no mtext,mathvariant |
| no mi,mathvariant,italic |
| no mn,mathvariant,normal |
| no mo,mathvariant,normal |
| no munder,accentunder,true |
| no mtext,mathvariant,normal |
| no math,display,inline |
| no mi,mathvariant,normal |
| no mi,mathvariant,fraktur |
| no mi,mathvariant,bold-sans |
| |
| no mi,mathvariant,double-struck |
| no mi,mathvariant,double-struck |
| no mi,mathvariant,double-struck |
| no menclose,notation |
| no mtd,columnalign |
| no menclose,notation,longdiv |
| no mtd,columnalign,right |
| no mfrac |
| no mfrac |
| no mfrac |
| no mfrac |
| no mfrac |
| no mfrac |
| no mstyle,scriptlevel,-1 |
| </pre></div> |
| |
| <hr> |
| <a name="Files-for-BAUK-Maths-_0028ukmaths_0029"></a> |
| <a name="Files-for-BAUK-Maths-_0028ukmaths_0029-1"></a> |
| <h3 class="section">A.5 Files for BAUK Maths (ukmaths)</h3> |
| |
| |
| <hr> |
| <a name="ukmaths_002ecfg"></a> |
| <a name="ukmaths_002ecfg-1"></a> |
| <h4 class="subsection">A.5.1 <samp>ukmaths.cfg</samp></h4> |
| |
| <div class="example"> |
| <pre class="example">cellsperline 32 |
| braillePages no |
| mathexprtable us-table.dis,ukmaths.ctb |
| editTable ukmaths_edit.ctb |
| internetAccess no |
| semanticFiles *,ukmaths.sem |
| |
| </pre></div> |
| |
| <hr> |
| <a name="ukmaths_002esem"></a> |
| <a name="ukmaths_002esem-1"></a> |
| <h4 class="subsection">A.5.2 <samp>ukmaths.sem</samp></h4> |
| |
| <div class="example"> |
| <pre class="example"># Licensed under LGPL |
| |
| maction maction |
| maligngroup maligngroup |
| malignmark malignmark |
| math math \eb,\*\ee |
| menclose menclose |
| mfrac mfrac \x0003,@456-34,\x0004 |
| mfenced mfenced @126,@345 |
| mfenced mfenced,open,{ @246,@135 |
| mover mover ,@4-346,@12456 |
| munder munder ,@4-16,@12456 |
| mglyph mglyph |
| mi mi |
| mlabeledtr mlabeledtr |
| mmultiscripts mmultiscripts |
| mn mn |
| mo mo |
| mpadded mpadded |
| reverse mroot @146 |
| mrow mrow \x0001,\*\x0002 |
| ms ms |
| mspace mspace \x00a0 |
| msqrt msqrt @146 |
| mstyle mstyle |
| msub msub ,@16,@12456 |
| msubsup msubsup ,@346,@12456 |
| msup msup ,@346,@12456 |
| matrix mtable |
| mtd mtd \*\ec |
| mtext mtext |
| mtr mtr @123456,\*@123456\er |
| munderover munderover ^",^%,^<,^} |
| semantics semantics |
| skip annotation |
| no annotation,encoding |
| no maction,actiontype |
| no maction,actiontype,highli |
| no maction,actiontype,status |
| no maction,actiontype,toggle |
| no maction,dsi:background |
| no malignmark,edge |
| no malignmark,edge,right |
| no math,display |
| no math,display,block |
| no math,mode |
| no math,mode,inline |
| no math,xmlns |
| no mfenced,open |
| no mfenced,separators |
| no mn,color |
| no mn,color,green |
| no mo,stretchy |
| no mo,stretchy,false |
| no mo,stretchy,true |
| no mover,accent |
| no mover,accent,true |
| no ms,lquote |
| no ms,rquote |
| no ms,rquote,' |
| no mspace,height |
| no mspace,width |
| no mstyle,background |
| no mstyle,background,lightb |
| no mstyle,background,red |
| no mstyle,color |
| no mstyle,color,blue |
| no mstyle,displaystyle |
| no mstyle,displaystyle,true |
| no mstyle,fontsize |
| no mstyle,fontstyle |
| no mstyle,fontstyle,italic |
| no mstyle,fontstyle,normal |
| no mstyle,fontweight |
| no mstyle,fontweight,bold |
| no mstyle,mathsize |
| no mstyle,mathsize,normal |
| no mstyle,mathvariant |
| no mstyle,mathvariant,bold |
| no mstyle,scriptlevel |
| no mtable,columnalign |
| no mtable,columnalign,left |
| no mtable,equalcolumns |
| no mtable,equalcolumns,false |
| no mtable,equalrows |
| no mtable,equalrows,false |
| no mtable,frame |
| no mtable,frame,solid |
| no mtable,width |
| no munderover,accent |
| no munderover,accent,true |
| skip annotation,encoding,MathType-MTEF |
| skip merror |
| skip mphantom |
| no mo,maxsize |
| no mo,maxsize,3 |
| no mo,mathsize |
| no mi,mathvariant |
| no mo,mathvariant |
| no munder,accentunder |
| no mn,mathvariant |
| no mtext,mathvariant |
| no mi,mathvariant,italic |
| no mn,mathvariant,normal |
| no mo,mathvariant,normal |
| no munder,accentunder,true |
| no mtext,mathvariant,normal |
| no math,display,inline |
| no mi,mathvariant,normal |
| no mi,mathvariant,fraktur |
| no mi,mathvariant,bold-sans |
| no mi,mathvariant,double-struck |
| no menclose,notation |
| no mtd,columnalign |
| no menclose,notation,longdiv |
| no mtd,columnalign,right |
| no mstyle,scriptlevel,-1 |
| </pre></div> |
| |
| |
| <hr> |
| <a name="ukmaths_002ectb"></a> |
| <a name="ukmaths_002ectb-1"></a> |
| <h4 class="subsection">A.5.3 <samp>ukmaths.ctb</samp></h4> |
| |
| <div class="example"> |
| <pre class="example"># liblouis: UK Maths Table for mathematics |
| # |
| # Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by |
| # The BRLTTY Team |
| # |
| # Copyright (C) 2004, 2005, 2006 |
| # ViewPlus Technologies, Inc. www.viewplus.com |
| # and |
| # JJB Software, Inc. www.jjb-software.com |
| # All rights reserved |
| # |
| # This file is free software; you can redistribute it and/or modify it |
| # under the terms of the Lesser or Library GNU General Public License |
| # as published by the |
| # Free Software Foundation; either version 3, or (at your option) any |
| # later version. |
| # |
| # This file is distributed in the hope that it will be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # Library GNU General Public License for more details. |
| # |
| # You should have received a copy of the Library GNU General Public |
| # License along with this program; see the file COPYING. If not, write |
| # to |
| # the Free Software Foundation, 51 Franklin Street, Fifth Floor, |
| # Boston, MA 02110-1301, USA. |
| # |
| # Maintained by John J. Boyer john.boyer@jjb-software.com |
| # Updated 6-18-08 by Mike Sivill <mike.sivill@viewplus.com> |
| |
| include ukmaths_single_cell_defs.cti |
| include ukmaths_unicode_defs.cti |
| # grouping definitions are character-definition rules |
| grouping mrow \x0001\x0002 1e,2e |
| grouping mfrac \x0003\x0004 3e,4e |
| grouping brackets \x0005\x0006 126,345 |
| |
| # Braille indicators |
| numsign 3456 |
| capsign 6 |
| begcaps 6-6 |
| endcaps 6-3 |
| singleletterital 4 |
| singleletterbold 4 |
| |
| # litdigit opcodes must be in this table, not the single-cell table. |
| litdigit 0 245 |
| litdigit 1 1 |
| litdigit 2 12 |
| litdigit 3 14 |
| litdigit 4 145 |
| litdigit 5 15 |
| litdigit 6 124 |
| litdigit 7 1245 |
| litdigit 8 125 |
| litdigit 9 24 |
| |
| # No letsign but endnum for letters a-j. |
| endnum a 56-1 |
| endnum b 56-12 |
| endnum c 56-14 |
| endnum d 56-145 |
| endnum e 56-15 |
| endnum f 56-124 |
| endnum g 56-1245 |
| endnum h 56-125 |
| endnum i 56-24 |
| endnum j 56-245 |
| |
| # Ordinary translation entries |
| always = a-56-2356 |
| always + a-56-235 |
| always > a-135-a |
| always < a-246-a |
| always % 25-1234 |
| always $ 256 |
| always & 4-12346 |
| always ~ 45-156 |
| always ! 6-236 |
| prepunc " 236 |
| postpunc " 356 |
| postpunc ' 3 |
| always '' 36 |
| always ''' 36-3 |
| midnum , 3 |
| postpunc , 6-2 |
| always , 3 |
| always # 35-2345 print number sign before number |
| always ( 126 |
| always ) 345 |
| pass2 [{mrow]@126/@345}mrow ? |
| pass2 @126[{mrow]/}mrow@345 ? |
| decpoint . 2 |
| always ... 3-3-3 |
| hyphen - 36 |
| postpunc . 6-256 |
| postpunc ; 6-23 |
| postpunc : 6-25 |
| postpunc ? 6-236 |
| endnum % 4-356 |
| midnum * 4-16 |
| repeated \s 0 |
| repeated \x00a0 a |
| |
| # swap opcodes for replacement and testing. |
| swapcd dropped 0123456789 356,2,23,25,456,26,235,2356,236,35 |
| swapdd upnum 245,1,12,14,145,15,124,1245,125,24 0,0,0,0,0,0,0,0,0,0 |
| swapdd lownum 356,2,23,25,256,26,235,2356,236,35 0,0,0,0,0,0,0,0,0,0 |
| |
| # now we start doing the real work |
| |
| # Correction rules |
| correct {mrow$ld1-20[}mrow] ? |
| correct "\eb"[{mrow]/}mrow"\ee" ? |
| context "\eb"[]$l"\ee" @56 |
| context "\eb"[]","$l"\ee" @56 |
| context []"@456-34"$d1-10}mfrac #1=1 |
| # context []"@456-34"$d1-10}mfrac #1=1 |
| context []"@346"$d1-10"@12456" #1=1 |
| context []"@16"$d1-10"@12456" #1=1 |
| # context []"@146"$d1-10 #1=1 |
| context #1=1$d1-10 #1=0%dropped |
| |
| # exactdots opcodes for dot patterns in ukmaths.sem |
| exactdots @126 |
| exactdots @345 |
| exactdots @123456 |
| exactdots @346 |
| exactdots @16 |
| exactdots @23456 |
| exactdots @34 |
| exactdots @456-34 |
| exactdots @12456 |
| exactdots @146 |
| |
| # Function names and abbreviations |
| word cos 1246-14 |
| word grad 1246-1245 |
| word cosh 1246-125-14 |
| word sinh 1246-125-234 |
| word tanh 1246-125-2345 |
| word cosech 1246-125-126 |
| word coth 1246-125-1256 |
| word sech 1246-125-36 |
| word log 1246-123 |
| word sin 1246-234 |
| word tan 1246-2345 |
| word cosec 1246-126 |
| word curl 1246-146 |
| word div 1246-1456 |
| word cot 1246-1256 |
| word arccosh 1246-236-14 |
| word arcsinh 1246-236-234 |
| word arctanh 1246-236-2345 |
| word arccosech 1246-236-126 |
| word arccoth 1246-236-1256 |
| word arcsech 1246-236-36 |
| word sec 1246-36 |
| word arccos 1246-4-14 |
| word antilog 1246-4-123 |
| word arcsin 1246-4-234 |
| word arctan 1246-4-2345 |
| word arccosec 1246-4-126 |
| word arccot 1246-4-1256 |
| word arcsec 1246-4-25 |
| word colog 1246-45-123 |
| |
| # pass2 processing |
| pass2 [@3456]%lownum1-10 ? |
| pass2 [@456-34-3456]%lownum1-10 ? |
| |
| # pass3 processing |
| pass3 @346%lownum1-10[@12456] ? |
| pass3 @16[%lownum1-10]@12456 * |
| pass3 {mfrac[@3456%upnum1-10%lownum1-10]}mfrac * |
| </pre></div> |
| |
| <hr> |
| <a name="ukmaths_005fedit_002ectb"></a> |
| <a name="ukmaths_005fedit_002ectb-1"></a> |
| <h4 class="subsection">A.5.4 <samp>ukmaths_edit.ctb</samp></h4> |
| |
| <div class="example"> |
| <pre class="example"># liblouis Table for Post-Translation Editing |
| # |
| # Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by |
| # The BRLTTY Team |
| # |
| # Copyright (C) 2004, 2005, 2006 |
| # ViewPlus Technologies, Inc. www.viewplus.com |
| # and |
| # JJB Software, Inc. www.jjb-software.com |
| # All rights reserved |
| # |
| # This file is free software; you can redistribute it and/or modify it |
| # under the terms of the Lesser or Library GNU General Public License |
| # as published by the |
| # Free Software Foundation; either version 3, or (at your option) any |
| # later version. |
| # |
| # This file is distributed in the hope that it will be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # Library GNU General Public License for more details. |
| # |
| # You should have received a copy of the Library GNU General Public |
| # License along with this program; see the file COPYING. If not, write |
| # to |
| # the Free Software Foundation, 51 Franklin Street, Fifth Floor, |
| # Boston, MA 02110-1301, USA. |
| # |
| # Maintained by John J. Boyer john.boyer@jjb-software.com |
| # Updated 6-18-08 by Mike Sivill <mike.sivill@viewplus.com> |
| include ukmaths_single_cell_defs.cti |
| |
| |
| math \x0001 56 |
| math \x0002 45 |
| math \x0003 56 |
| math \x0004 45 |
| repeated \s 0 |
| always \ee\s`4 6-256 |
| always \ee\s`1 6 |
| always \ee\s`3 6-25 |
| always \ee\s`2 6-23 |
| always `7\s\eb 12356 |
| always \ee\s`7 23456 |
| always "\s 0 |
| always \s,\s 6-0 |
| # context "\eb"[]$l"\ee" @56 |
| # context "\eb"[]","$l"\ee" @56 |
| |
| pass2 @1b-12 ? |
| pass2 @1b-15 ? |
| pass2 @1b-12-4-4 @4 |
| </pre></div> |
| |
| <hr> |
| <a name="Configuration-Settings-Index"></a> |
| <a name="Configuration-Settings-Index-1"></a> |
| <h2 class="unnumbered">Configuration Settings Index</h2> |
| |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-B"><b>B</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-C"><b>C</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-E"><b>E</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-K"><b>K</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-L"><b>L</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-N"><b>N</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-O"><b>O</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-T"><b>T</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-U"><b>U</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-X"><b>X</b></a> |
| |
| </td></tr></table> |
| <table class="index-tp" border="0"> |
| <tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-B">B</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-backFormat"><code>backFormat</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-backLineLength"><code>backLineLength</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-beginningPageNumber"><code>beginningPageNumber</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-braillePageNumberAt"><code>braillePageNumberAt</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-braillePageNumberFormat"><code>braillePageNumberFormat</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-braillePages"><code>braillePages</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-C">C</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-cellsPerLine"><code>cellsPerLine</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-center"><code>center</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-compbrailleTable"><code>compbrailleTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-continuePages"><code>continuePages</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-D">D</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-dontSplit"><code>dontSplit</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-E">E</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-editTable"><code>editTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-entity"><code>entity</code></a>:</td><td> </td><td valign="top"><a href="#xml">xml</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-F">F</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-fileEnd"><code>fileEnd</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-1"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-2"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-3"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-4"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-5"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-6"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-7"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-firstLineIndent-8"><code>firstLineIndent</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format-1"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format-2"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format-3"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format-4"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-format-5"><code>format</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-formatFor"><code>formatFor</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-H">H</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-hyphenate"><code>hyphenate</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-I">I</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-ignoreEmptyPages"><code>ignoreEmptyPages</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-inputTextEncoding"><code>inputTextEncoding</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-interline"><code>interline</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-interlineBackTable"><code>interlineBackTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-internetAccess"><code>internetAccess</code></a>:</td><td> </td><td valign="top"><a href="#xml">xml</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-interpoint"><code>interpoint</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-K">K</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-keepWithNext"><code>keepWithNext</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-L">L</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-leftMargin"><code>leftMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-leftMargin-1"><code>leftMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-leftMargin-2"><code>leftMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-leftMargin-3"><code>leftMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-leftMargin-4"><code>leftMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lineEnd"><code>lineEnd</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lineFill"><code>lineFill</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesAfter"><code>linesAfter</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesAfter-1"><code>linesAfter</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesAfter-2"><code>linesAfter</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesBefore"><code>linesBefore</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesBefore-1"><code>linesBefore</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesBefore-2"><code>linesBefore</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesBefore-3"><code>linesBefore</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linesPerPage"><code>linesPerPage</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-literaryTextTable"><code>literaryTextTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-M">M</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-MathexpTable"><code>MathexpTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mathtextTable"><code>mathtextTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mergeUnnumberedPages"><code>mergeUnnumberedPages</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-N">N</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-newEntries"><code>newEntries</code></a>:</td><td> </td><td valign="top"><a href="#xml">xml</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-newPageAfter"><code>newPageAfter</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-newPageBefore"><code>newPageBefore</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-O">O</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-orphanControl"><code>orphanControl</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-outputEncoding"><code>outputEncoding</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-P">P</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pageEnd"><code>pageEnd</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pageNumberBottomSeparateLine"><code>pageNumberBottomSeparateLine</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pageNumberTopSeparateLine"><code>pageNumberTopSeparateLine</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pageSeparator"><code>pageSeparator</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pageSeparatorNumber"><code>pageSeparatorNumber</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-paragraphs"><code>paragraphs</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-printPageNumberAt"><code>printPageNumberAt</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-printPageNumberRange"><code>printPageNumberRange</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-printPages"><code>printPages</code></a>:</td><td> </td><td valign="top"><a href="#outputFormat">outputFormat</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-R">R</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-rightHandPage"><code>rightHandPage</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-rightMargin"><code>rightMargin</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-S">S</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-semanticFiles"><code>semanticFiles</code></a>:</td><td> </td><td valign="top"><a href="#xml">xml</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-skipNumberLines"><code>skipNumberLines</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-T">T</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-translate"><code>translate</code></a>:</td><td> </td><td valign="top"><a href="#style">style</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-U">U</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-uncontractedTable"><code>uncontractedTable</code></a>:</td><td> </td><td valign="top"><a href="#translation">translation</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Configuration-Settings-Index_tp_letter-X">X</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-xmlheader"><code>xmlheader</code></a>:</td><td> </td><td valign="top"><a href="#xml">xml</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| </table> |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-B"><b>B</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-C"><b>C</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-E"><b>E</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-K"><b>K</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-L"><b>L</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-N"><b>N</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-O"><b>O</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-T"><b>T</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-U"><b>U</b></a> |
| |
| <a class="summary-letter" href="#Configuration-Settings-Index_tp_letter-X"><b>X</b></a> |
| |
| </td></tr></table> |
| |
| <hr> |
| <a name="Semantic-Action-Index"></a> |
| <a name="Semantic-Action-Index-1"></a> |
| <h2 class="unnumbered">Semantic Action Index</h2> |
| |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-B"><b>B</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-C"><b>C</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-G"><b>G</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-L"><b>L</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-N"><b>N</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-U"><b>U</b></a> |
| |
| </td></tr></table> |
| <table class="index-semantic" border="0"> |
| <tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-B">B</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-blankline">blankline</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-boldx">boldx</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-boxline">boxline</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-C">C</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-changetable">changetable</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-chemistry">chemistry</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-compbrl">compbrl</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-configfile">configfile</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-configstring">configstring</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-configtweak">configtweak</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contenss1">contenss1</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contenss2">contenss2</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contenss3">contenss3</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contenss4">contenss4</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contentsheader">contentsheader</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-contracted">contracted</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-D">D</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-document">document</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-F">F</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-footer">footer</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-G">G</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-generic">generic</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-graphic">graphic</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-H">H</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-heading1">heading1</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-heading2">heading2</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-heading3">heading3</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-heading4">heading4</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-htmllink">htmllink</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-htmltarget">htmltarget</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-I">I</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-italicx">italicx</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-L">L</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-linespacing">linespacing</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-M">M</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-maction">maction</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-maligngroup">maligngroup</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-malignmark">malignmark</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-math">math</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-menclose">menclose</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-merror">merror</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mfenced">mfenced</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mfrac">mfrac</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mglyph">mglyph</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mi">mi</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mlabeledtr">mlabeledtr</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mmultiscripts">mmultiscripts</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mn">mn</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mo">mo</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mover">mover</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mpadded">mpadded</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mphantom">mphantom</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mprescripts">mprescripts</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mroot">mroot</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mrow">mrow</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-ms">ms</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mspace">mspace</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-msqrt">msqrt</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mstyle">mstyle</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-msub">msub</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-msubsup">msubsup</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-msup">msup</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mtable">mtable</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mtd">mtd</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mtext">mtext</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-mtr">mtr</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-munder">munder</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-munderover">munderover</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-music">music</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-N">N</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-newpage">newpage</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-no">no</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-none">none</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-notranslate">notranslate</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-P">P</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pagenum">pagenum</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-para">para</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-R">R</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-reverse">reverse</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-righthandpage">righthandpage</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-runninghead">runninghead</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-S">S</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-semantics">semantics</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-skip">skip</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-softreturn">softreturn</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Semantic-Action-Index_semantic_letter-U">U</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-uncontracted">uncontracted</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-underlinex">underlinex</a>:</td><td> </td><td valign="top"><a href="#Semantic-Actions-in-detail">Semantic Actions in detail</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| </table> |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-B"><b>B</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-C"><b>C</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-G"><b>G</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-L"><b>L</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-N"><b>N</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter" href="#Semantic-Action-Index_semantic_letter-U"><b>U</b></a> |
| |
| </td></tr></table> |
| |
| <hr> |
| <a name="Function-Index"></a> |
| <a name="Function-Index-1"></a> |
| <h2 class="unnumbered">Function Index</h2> |
| |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Function-Index_fn_letter-L"><b>L</b></a> |
| |
| </td></tr></table> |
| <table class="index-fn" border="0"> |
| <tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Function-Index_fn_letter-L">L</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005fbackTranslateFile"><code>lbu_backTranslateFile</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005fbackTranslateFile">lbu_backTranslateFile</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005ffree"><code>lbu_free</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005ffree">lbu_free</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005finitialize"><code>lbu_initialize</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005finitialize">lbu_initialize</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005ftranslateFile"><code>lbu_translateFile</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005ftranslateFile">lbu_translateFile</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005ftranslateString"><code>lbu_translateString</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005ftranslateString">lbu_translateString</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005ftranslateTextFile"><code>lbu_translateTextFile</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005ftranslateTextFile">lbu_translateTextFile</a></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-lbu_005fversion"><code>lbu_version</code></a>:</td><td> </td><td valign="top"><a href="#lbu_005fversion">lbu_version</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| </table> |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Function-Index_fn_letter-L"><b>L</b></a> |
| |
| </td></tr></table> |
| |
| <hr> |
| <a name="Program-Index"></a> |
| <a name="Program-Index-1"></a> |
| <h2 class="unnumbered">Program Index</h2> |
| |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Program-Index_pg_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-R"><b>R</b></a> |
| |
| </td></tr></table> |
| <table class="index-pg" border="0"> |
| <tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Program-Index_pg_letter-F">F</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-file2brl"><code>file2brl</code></a>:</td><td> </td><td valign="top"><a href="#Transcribing-XML-files-with-file2brl">Transcribing XML files with file2brl</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Program-Index_pg_letter-M">M</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-msword2brl"><code>msword2brl</code></a>:</td><td> </td><td valign="top"><a href="#Transcribing-Microsoft-Word-files-with-msword2brl">Transcribing Microsoft Word files with msword2brl</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Program-Index_pg_letter-P">P</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-pdf2brl"><code>pdf2brl</code></a>:</td><td> </td><td valign="top"><a href="#Transcribing-PDF-files-with-pdf2brl">Transcribing PDF files with pdf2brl</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| <tr><th><a name="Program-Index_pg_letter-R">R</a></th><td></td><td></td></tr> |
| <tr><td></td><td valign="top"><a href="#index-rtf2brl"><code>rtf2brl</code></a>:</td><td> </td><td valign="top"><a href="#Transcribing-RTF-files-with-rtf2brl">Transcribing RTF files with rtf2brl</a></td></tr> |
| <tr><td colspan="4"> <hr></td></tr> |
| </table> |
| <table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Program-Index_pg_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter" href="#Program-Index_pg_letter-R"><b>R</b></a> |
| |
| </td></tr></table> |
| |
| <hr> |
| |
| |
| |
| </body> |
| </html> |