JezK
Edit File: HTML-Xref-8_002dbit-Character-Expansion.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- This manual is for GNU Texinfo (version 6.8, 8 June 2021), a documentation system that can produce both online information and a printed manual from a single source using semantic markup. Copyright (C) 1988, 1990-1993, 1995-1999, 2001-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". --> <title>HTML Xref 8-bit Character Expansion (GNU Texinfo 6.8)</title> <meta name="description" content="HTML Xref 8-bit Character Expansion (GNU Texinfo 6.8)"> <meta name="keywords" content="HTML Xref 8-bit Character Expansion (GNU Texinfo 6.8)"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="texi2any"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link href="index.html" rel="start" title="Top"> <link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index"> <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="HTML-Xref.html" rel="up" title="HTML Xref"> <link href="HTML-Xref-Mismatch.html" rel="next" title="HTML Xref Mismatch"> <link href="HTML-Xref-Command-Expansion.html" rel="prev" title="HTML Xref Command Expansion"> <style type="text/css"> <!-- a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} span:hover a.copiable-anchor {visibility: visible} ul.no-bullet {list-style: none} --> </style> </head> <body lang="en"> <div class="subsection" id="HTML-Xref-8_002dbit-Character-Expansion"> <div class="header"> <p> Next: <a href="HTML-Xref-Mismatch.html" accesskey="n" rel="next">HTML Cross-reference Mismatch</a>, Previous: <a href="HTML-Xref-Command-Expansion.html" accesskey="p" rel="prev">HTML Cross-reference Command Expansion</a>, Up: <a href="HTML-Xref.html" accesskey="u" rel="up">HTML Cross-references</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> <hr> <span id="HTML-Cross_002dreference-8_002dbit-Character-Expansion"></span><h4 class="subsection">21.4.4 HTML Cross-reference 8-bit Character Expansion</h4> <span id="index-HTML-cross_002dreferences-4"></span> <span id="index-8_002dbit-characters_002c-in-HTML-cross_002dreferences"></span> <span id="index-Expansion-of-8_002dbit-characters-in-HTML-cross_002dreferences"></span> <span id="index-Transliteration-of-8_002dbit-characters-in-HTML-cross_002dreferences"></span> <p>Usually, characters other than plain 7-bit ASCII are transformed into the corresponding Unicode code point(s) in Normalization Form C, which uses precomposed characters where available. (This is the normalization form recommended by the W3C and other bodies.) This holds when that code point is <code>0xffff</code> or less, as it almost always is. </p> <p>These will then be further transformed by the rules above into the string ‘<samp>_<var>hhhh</var></samp>’, where <var>hhhh</var> is the code point in hex. </p> <p>For example, combining this rule and the previous section: </p> <div class="example"> <pre class="example">@node @b{A} @TeX{} @u{B} @point{}@enddots{} ⇒ A-TeX-B_0306-_2605_002e_002e_002e </pre></div> <p>Notice: 1) <code>@enddots</code> expands to three periods which in turn expands to three ‘<samp>_002e</samp>’’s; 2) <code>@u{B}</code> is a ‘B’ with a breve accent, which does not exist as a pre-accented Unicode character, therefore expands to ‘<samp>B_0306</samp>’ (B with combining breve). </p> <p>When the Unicode code point is above <code>0xffff</code>, the transformation is ‘<samp>__<var>xxxxxx</var></samp>’, that is, two leading underscores followed by six hex digits. Since Unicode has declared that their highest code point is <code>0x10ffff</code>, this is sufficient. (We felt it was better to define this extra escape than to always use six hex digits, since the first two would nearly always be zeros.) </p> <p>This method works fine if the node name consists mostly of ASCII characters and contains only few 8-bit ones. But if the document is written in a language whose script is not based on the Latin alphabet (for example, Ukrainian), it will create file names consisting almost entirely of ‘<samp>_<var>xxxx</var></samp>’ notations, which is inconvenient and all but unreadable. To handle such cases, <code>makeinfo</code> offers the <samp>--transliterate-file-names</samp> command line option. This option enables <em>transliteration</em> of node names into ASCII characters for the purposes of file name creation and referencing. The transliteration is based on phonetic principles, which makes the generated file names more easily understandable. </p> <span id="index-Normalization-Form-C_002c-Unicode"></span> <p>For the definition of Unicode Normalization Form C, see Unicode report UAX#15, <a href="http://www.unicode.org/reports/tr15/">http://www.unicode.org/reports/tr15/</a>. Many related documents and implementations are available elsewhere on the web. </p> </div> <hr> <div class="header"> <p> Next: <a href="HTML-Xref-Mismatch.html">HTML Cross-reference Mismatch</a>, Previous: <a href="HTML-Xref-Command-Expansion.html">HTML Cross-reference Command Expansion</a>, Up: <a href="HTML-Xref.html">HTML Cross-references</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> </body> </html>