1245 lines
348 KiB
HTML
1245 lines
348 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>TeX Format</title>
|
|
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
|
|
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<script>
|
|
function togglePopup(material_id) {
|
|
var popup = document.getElementById(material_id);
|
|
popup.classList.toggle("show");
|
|
}
|
|
</script>
|
|
|
|
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
|
|
</head>
|
|
<body>
|
|
<nav role="navigation">
|
|
<h1><a href="../index.html">
|
|
<img src="../docs-assets/Octagram.png" width=72 height=72">
|
|
</a></h1>
|
|
<ul><li><a href="index.html"><span class="selectedlink">inweb</span></a></li>
|
|
</ul><h2>Foundation Module</h2><ul>
|
|
<li><a href="../foundation-module/index.html">foundation</a></li>
|
|
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
|
</ul><h2>Example Webs</h2><ul>
|
|
<li><a href="../goldbach/index.html">goldbach</a></li>
|
|
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
|
<li><a href="../eastertide/index.html">eastertide</a></li>
|
|
</ul><h2>Repository</h2><ul>
|
|
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=18> github</a></li>
|
|
</ul><h2>Related Projects</h2><ul>
|
|
<li><a href="../../../inform/docs/index.html">inform</a></li>
|
|
<li><a href="../../../intest/docs/index.html">intest</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
<main role="main">
|
|
|
|
<!--Weave of 'TeX Format' generated by Inweb-->
|
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#5">Chapter 5: Formats</a></li><li><b>TeX Format</b></li></ul><p class="purpose">To provide for weaving in the standard maths and science typesetting software, TeX.</p>
|
|
|
|
<ul class="toc"><li><a href="5-tf.html#SP1">§1. Creation</a></li><li><a href="5-tf.html#SP2">§2. Methods</a></li><li><a href="5-tf.html#SP17">§17. Post-processing</a></li><li><a href="5-tf.html#SP20">§20. Removing math mode</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Creation. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::create</span><button class="popup" onclick="togglePopup('usagePopup1')">...<span class="popuptext" id="usagePopup1">Usage of <b>TeX::create</b>:<br>Format Methods - <a href="5-fm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Create TeX format</span> <span class="named-paragraph-number">1.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Create DVI format</span> <span class="named-paragraph-number">1.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Create PDF format</span> <span class="named-paragraph-number">1.3</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP1_1"></a><b>§1.1. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Create TeX format</span> <span class="named-paragraph-number">1.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"TeX"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_TeX</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Make this format basically TeX</span> <span class="named-paragraph-number">1.1.1</span>><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul><p class="inwebparagraph"><a id="SP1_2"></a><b>§1.2. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Create DVI format</span> <span class="named-paragraph-number">1.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"DVI"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_DVI</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Make this format basically TeX</span> <span class="named-paragraph-number">1.1.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP17" class="function-link"><span class="function-syntax">TeX::post_process_DVI</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::post_process_report</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::post_process_substitute</span></a><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul><p class="inwebparagraph"><a id="SP1_3"></a><b>§1.3. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Create PDF format</span> <span class="named-paragraph-number">1.3</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"PDF"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_PDF</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Make this format basically TeX</span> <span class="named-paragraph-number">1.1.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP17" class="function-link"><span class="function-syntax">TeX::post_process_PDF</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::post_process_substitute</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_PDFS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP3" class="function-link"><span class="function-syntax">TeX::yes</span></a><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul><p class="inwebparagraph"><a id="SP1_1_1"></a><b>§1.1.1. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Make this format basically TeX</span> <span class="named-paragraph-number">1.1.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">CHAPTER_TP_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP6" class="function-link"><span class="function-syntax">TeX::chapter_title_page</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_DOCUMENT_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP16" class="function-link"><span class="function-syntax">TeX::preform_document</span></a><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::post_process_substitute</span></a><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a>.</li></ul><p class="inwebparagraph"><a id="SP2"></a><b>§2. Methods. </b>For documentation, see "Weave Fornats".
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">TeX_render_state</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_DVI</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_PDF</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">} </span><span class="reserved-syntax">TeX_render_state</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::render_TeX</span><button class="popup" onclick="togglePopup('usagePopup2')">...<span class="popuptext" id="usagePopup2">Usage of <b>TeX::render_TeX</b>:<br><a href="5-tf.html#SP1_1">§1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::render_DVI</span><button class="popup" onclick="togglePopup('usagePopup3')">...<span class="popuptext" id="usagePopup3">Usage of <b>TeX::render_DVI</b>:<br><a href="5-tf.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::render_PDF</span><button class="popup" onclick="togglePopup('usagePopup4')">...<span class="popuptext" id="usagePopup4">Usage of <b>TeX::render_PDF</b>:<br><a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::render_inner</span><button class="popup" onclick="togglePopup('usagePopup5')">...<span class="popuptext" id="usagePopup5">Usage of <b>TeX::render_inner</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_dvi</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_pdf</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_document_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_document_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">-></span><span class="element-syntax">root</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">TeX_render_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">trs</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">trs</span><span class="plain-syntax">.</span><span class="element-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">trs</span><span class="plain-syntax">.</span><span class="element-syntax">wv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">trs</span><span class="plain-syntax">.</span><span class="element-syntax">as_DVI</span><span class="plain-syntax"> = </span><span class="identifier-syntax">as_dvi</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">trs</span><span class="plain-syntax">.</span><span class="element-syntax">as_PDF</span><span class="plain-syntax"> = </span><span class="identifier-syntax">as_pdf</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">-></span><span class="element-syntax">root</span><span class="plain-syntax">, &</span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
|
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::render_visit</span><button class="popup" onclick="togglePopup('usagePopup6')">...<span class="popuptext" id="usagePopup6">Usage of <b>TeX::render_visit</b>:<br><a href="5-tf.html#SP2_10">§2.10</a>, <a href="5-tf.html#SP2_12">§2.12</a>, <a href="5-tf.html#SP2_20">§2.20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">TeX_render_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trs</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">TeX_render_state</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">OUT</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="identifier-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_document_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_head_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render head</span> <span class="named-paragraph-number">2.1</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_body_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_tail_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render tail</span> <span class="named-paragraph-number">2.2</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_verbatim_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render verbatim</span> <span class="named-paragraph-number">2.13</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_chapter_header_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render chapter header</span> <span class="named-paragraph-number">2.3</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_chapter_footer_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_section_header_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render header</span> <span class="named-paragraph-number">2.4</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_section_footer_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_section_purpose_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render purpose</span> <span class="named-paragraph-number">2.5</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_subheading_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render subheading</span> <span class="named-paragraph-number">2.6</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_bar_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render bar</span> <span class="named-paragraph-number">2.7</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_pagebreak_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render pagebreak</span> <span class="named-paragraph-number">2.8</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_paragraph_heading_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render paragraph heading</span> <span class="named-paragraph-number">2.9</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_endnote_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render endnote</span> <span class="named-paragraph-number">2.10</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_figure_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render figure</span> <span class="named-paragraph-number">2.11</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_material_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render material</span> <span class="named-paragraph-number">2.12</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_embed_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render embed</span> <span class="named-paragraph-number">2.15</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_pmac_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render pmac</span> <span class="named-paragraph-number">2.16</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_vskip_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render vskip</span> <span class="named-paragraph-number">2.17</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_apres_defn_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render apres-defn</span> <span class="named-paragraph-number">2.18</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_chapter_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_section_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render section</span> <span class="named-paragraph-number">2.19</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_code_line_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render code line</span> <span class="named-paragraph-number">2.20</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_function_usage_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render function usage</span> <span class="named-paragraph-number">2.21</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_commentary_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render commentary</span> <span class="named-paragraph-number">2.22</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_carousel_slide_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render nothing</span> <span class="named-paragraph-number">2.14</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_toc_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render toc</span> <span class="named-paragraph-number">2.23</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_toc_line_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render toc line</span> <span class="named-paragraph-number">2.24</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_chapter_title_page_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render weave_chapter_title_page_node</span> <span class="named-paragraph-number">2.25</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_defn_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render defn</span> <span class="named-paragraph-number">2.26</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_source_code_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render source code</span> <span class="named-paragraph-number">2.27</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_url_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render URL</span> <span class="named-paragraph-number">2.28</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_footnote_cue_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render footnote cue</span> <span class="named-paragraph-number">2.29</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_begin_footnote_text_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render footnote text</span> <span class="named-paragraph-number">2.30</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_display_line_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render display line</span> <span class="named-paragraph-number">2.31</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_function_defn_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render function defn</span> <span class="named-paragraph-number">2.32</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_item_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render item</span> <span class="named-paragraph-number">2.33</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_grammar_index_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render grammar index</span> <span class="named-paragraph-number">2.34</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_inline_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render inline</span> <span class="named-paragraph-number">2.35</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_locale_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render locale</span> <span class="named-paragraph-number">2.36</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">weave_maths_node_type</span><span class="plain-syntax">) </span><<span class="named-paragraph">Render maths</span> <span class="named-paragraph-number">2.37</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unable to render unknown node"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><ul class="endnotetexts"><li>The structure TeX_render_state is accessed in 1/ptt, 3/twot, 5/wt, 5/fm, 5/ptf, 5/hf, 5/df, 6/rw and here.</li></ul><p class="inwebparagraph"><a id="SP2_1"></a><b>§2.1. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render head</span> <span class="named-paragraph-number">2.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_head_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_head_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%% %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">banner</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Incorporate suitable TeX macro definitions into the woven output</span> <span class="named-paragraph-number">2.1.1</span>><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_2"></a><b>§2.2. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render tail</span> <span class="named-paragraph-number">2.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_tail_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_tail_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%% %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">rennab</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\end\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_3"></a><b>§2.3. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render chapter header</span> <span class="named-paragraph-number">2.3</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_chapter_header_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_chapter_header_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP7" class="function-link"><span class="function-syntax">TeX::paragraph_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">FIRST_IN_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">sections</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_title</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_4"></a><b>§2.4. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render header</span> <span class="named-paragraph-number">2.4</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_section_header_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_section_header_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP7" class="function-link"><span class="function-syntax">TeX::paragraph_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">sect</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">sect</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_title</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_5"></a><b>§2.5. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render purpose</span> <span class="named-paragraph-number">2.5</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_section_purpose_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_section_purpose_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP4" class="function-link"><span class="function-syntax">TeX::subheading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">purpose</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_6"></a><b>§2.6. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render subheading</span> <span class="named-paragraph-number">2.6</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_subheading_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_subheading_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP4" class="function-link"><span class="function-syntax">TeX::subheading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_7"></a><b>§2.7. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render bar</span> <span class="named-paragraph-number">2.7</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\par\\medskip\\noindent\\hrule\\medskip\\noindent\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_8"></a><b>§2.8. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render pagebreak</span> <span class="named-paragraph-number">2.8</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\vfill\\eject\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_9"></a><b>§2.9. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render paragraph heading</span> <span class="named-paragraph-number">2.9</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_paragraph_heading_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_paragraph_heading_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP7" class="function-link"><span class="function-syntax">TeX::paragraph_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">para</span><span class="plain-syntax">-></span><span class="element-syntax">under_section</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">para</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Dunno"</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_10"></a><b>§2.10. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render endnote</span> <span class="named-paragraph-number">2.10</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\par\\noindent\\penalty10000\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{\\usagefont "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, &</span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">+1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}\\smallskip\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_11"></a><b>§2.11. </b>TeX itself has an almost defiant lack of support for anything pictorial,
|
|
which is one reason it didn't live up to its hope of being the definitive basis
|
|
for typography; even today the loose confederation of TeX-like programs and
|
|
extensions lack standard approaches. Here we're going to use <code class="display"><span class="extract-syntax">pdftex</span></code> features,
|
|
having nothing better. All we're trying for is to insert a picture, scaled
|
|
to a given width, into the text at the current position.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Render figure</span> <span class="named-paragraph-number">2.11</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">as_PDF</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_figure_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_figure_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\pdfximage"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">w</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" width %d cm{../Figures/%S}\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">w</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">figname</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">h</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" height %d cm{../Figures/%S}\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">h</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">figname</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{../Figures/%S}\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">figname</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\\noindent"</span>
|
|
<span class="plain-syntax"> </span><span class="string-syntax">"\\hbox to\\hsize{\\hfill\\pdfrefximage \\pdflastximage\\hfill}"</span>
|
|
<span class="plain-syntax"> </span><span class="string-syntax">"\\smallskip\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_12"></a><b>§2.12. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render material</span> <span class="named-paragraph-number">2.12</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="identifier-syntax">child</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_material_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_material_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">material_type</span><span class="plain-syntax"> != </span><span class="constant-syntax">REGULAR_MATERIAL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">material_type</span><span class="plain-syntax"> != </span><span class="constant-syntax">ENDNOTES_MATERIAL</span><span class="plain-syntax">))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\beginlines\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, &</span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">+1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">material_type</span><span class="plain-syntax"> != </span><span class="constant-syntax">REGULAR_MATERIAL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">material_type</span><span class="plain-syntax"> != </span><span class="constant-syntax">ENDNOTES_MATERIAL</span><span class="plain-syntax">))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\endlines\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_13"></a><b>§2.13. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render verbatim</span> <span class="named-paragraph-number">2.13</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_verbatim_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_verbatim_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_14"></a><b>§2.14. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render nothing</span> <span class="named-paragraph-number">2.14</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> ;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a> (6 times).</li></ul><p class="inwebparagraph"><a id="SP2_15"></a><b>§2.15. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render embed</span> <span class="named-paragraph-number">2.15</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_embed_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_embed_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"It was %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_16"></a><b>§2.16. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render pmac</span> <span class="named-paragraph-number">2.16</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_pmac_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_pmac_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">as_PDF</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP11" class="function-link"><span class="function-syntax">TeX::para_macro_PDF_1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">pmac</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">defn</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP11" class="function-link"><span class="function-syntax">TeX::para_macro</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">pmac</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">defn</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">as_PDF</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP11" class="function-link"><span class="function-syntax">TeX::para_macro_PDF_2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">pmac</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">defn</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_17"></a><b>§2.17. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render vskip</span> <span class="named-paragraph-number">2.17</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_vskip_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_vskip_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">in_comment</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\\par\\noindent%%\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_18"></a><b>§2.18. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render apres-defn</span> <span class="named-paragraph-number">2.18</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_19"></a><b>§2.19. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render section</span> <span class="named-paragraph-number">2.19</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_section_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_section_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"It was %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_20"></a><b>§2.20. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render code line</span> <span class="named-paragraph-number">2.20</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, &</span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">+1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_21"></a><b>§2.21. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render function usage</span> <span class="named-paragraph-number">2.21</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_function_usage_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_function_usage_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">fn</span><span class="plain-syntax">-></span><span class="element-syntax">function_name</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_22"></a><b>§2.22. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render commentary</span> <span class="named-paragraph-number">2.22</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_commentary_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_commentary_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" \\hfill{\\ttninepoint\\it "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP13" class="function-link"><span class="function-syntax">TeX::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_23"></a><b>§2.23. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render toc</span> <span class="named-paragraph-number">2.23</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_toc_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_toc_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">show_abbrevs</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\medskip\\hrule\\smallskip\\par\\noindent{\\usagefont %S."</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text1</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\medskip\\hrule\\smallskip\\par\\noindent{\\usagefont "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, &</span><a href="5-hf.html#SP5" class="function-link"><span class="function-syntax">HTMLFormat::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">+1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}\\par\\medskip\\hrule\\bigskip\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_24"></a><b>§2.24. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render toc line</span> <span class="named-paragraph-number">2.24</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_toc_line_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_toc_line_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S~%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text1</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text2</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_25"></a><b>§2.25. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render weave_chapter_title_page_node</span> <span class="named-paragraph-number">2.25</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_chapter_title_page_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_chapter_title_page_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"It was %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_26"></a><b>§2.26. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render defn</span> <span class="named-paragraph-number">2.26</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_defn_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_defn_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{\\ninebf %S} "</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">keyword</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_27"></a><b>§2.27. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render source code</span> <span class="named-paragraph-number">2.27</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_source_code_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_source_code_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">starts</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> == </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">parent</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">) </span><span class="identifier-syntax">starts</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP8" class="function-link"><span class="function-syntax">TeX::source_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">colouring</span><span class="plain-syntax">, </span><span class="identifier-syntax">starts</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_28"></a><b>§2.28. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render URL</span> <span class="named-paragraph-number">2.28</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_url_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_url_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">url</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_29"></a><b>§2.29. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render footnote cue</span> <span class="named-paragraph-number">2.29</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_footnote_cue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_footnote_cue_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"[%S]"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">cue_text</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_30"></a><b>§2.30. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render footnote text</span> <span class="named-paragraph-number">2.30</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_begin_footnote_text_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_begin_footnote_text_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"It was %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_31"></a><b>§2.31. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render display line</span> <span class="named-paragraph-number">2.31</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_display_line_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_display_line_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\quotesource{%S}\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">text</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_32"></a><b>§2.32. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render function defn</span> <span class="named-paragraph-number">2.32</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_function_defn_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_function_defn_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">fn</span><span class="plain-syntax">-></span><span class="element-syntax">function_name</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_33"></a><b>§2.33. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render item</span> <span class="named-paragraph-number">2.33</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_item_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_item_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">label</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">depth</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\item{(%S)}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">label</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\itemitem{(%S)}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">label</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">depth</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\item{}"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\itemitem{}"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_34"></a><b>§2.34. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render grammar index</span> <span class="named-paragraph-number">2.34</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><a href="4-is.html#SP14" class="function-link"><span class="function-syntax">InCSupport::weave_grammar_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_35"></a><b>§2.35. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render inline</span> <span class="named-paragraph-number">2.35</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">child</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax">; </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP13" class="function-link"><span class="function-syntax">Trees::traverse_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, &</span><a href="5-hf.html#SP5" class="function-link"><span class="function-syntax">HTMLFormat::render_visit</span></a><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">trs</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">+1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_36"></a><b>§2.36. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render locale</span> <span class="named-paragraph-number">2.36</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_locale_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_locale_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$\\%S$%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">par1</span><span class="plain-syntax">-></span><span class="element-syntax">ornament</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">par1</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">par2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"-%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">par2</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_37"></a><b>§2.37. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Render maths</span> <span class="named-paragraph-number">2.37</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_maths_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_maths_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">displayed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$$"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">displayed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$$"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul><p class="inwebparagraph"><a id="SP2_1_1"></a><b>§2.1.1. </b>We don't use TeX's <code class="display"><span class="extract-syntax">\input</span></code> mechanism for macros because it is so prone to
|
|
failures when searching directories (especially those with spaces in the
|
|
names) and then locking TeX into a repeated prompt for help from <code class="display"><span class="extract-syntax">stdin</span></code>
|
|
which is rather hard to escape from.
|
|
</p>
|
|
|
|
<p class="inwebparagraph">Instead we paste the entire text of our macros file into the woven TeX:
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Incorporate suitable TeX macro definitions into the woven output</span> <span class="named-paragraph-number">2.1.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Macros</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP5" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inweb-macros.tex"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">MACROS</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP10" class="function-link"><span class="function-syntax">Filenames::fopen</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Macros</span><span class="plain-syntax">, </span><span class="string-syntax">"r"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">MACROS</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_file</span></a><span class="plain-syntax">(</span><span class="string-syntax">"can't open file of TeX macros"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Macros</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="constant-syntax">TRUE</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">fgetc</span><span class="plain-syntax">(</span><span class="identifier-syntax">MACROS</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="identifier-syntax">EOF</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">MACROS</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2_1">§2.1</a>.</li></ul><p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::preserve_math_mode</span><button class="popup" onclick="togglePopup('usagePopup7')">...<span class="popuptext" id="usagePopup7">Usage of <b>TeX::preserve_math_mode</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
|
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::yes</span><button class="popup" onclick="togglePopup('usagePopup8')">...<span class="popuptext" id="usagePopup8">Usage of <b>TeX::yes</b>:<br><a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::subheading</span><button class="popup" onclick="togglePopup('usagePopup9')">...<span class="popuptext" id="usagePopup9">Usage of <b>TeX::subheading</b>:<br><a href="5-tf.html#SP2_5">§2.5</a>, <a href="5-tf.html#SP2_6">§2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comment</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">head</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">level</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\par\\noindent{\\bf %S}\\mark{%S}\\medskip\n"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">comment</span><span class="plain-syntax">, </span><span class="identifier-syntax">head</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\\par\\noindent{\\it %S}\\smallskip\\noindent\n"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">comment</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">head</span><span class="plain-syntax">) </span><a href="5-tf.html#SP13" class="function-link"><span class="function-syntax">TeX::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">head</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::toc</span><button class="popup" onclick="togglePopup('usagePopup10')">...<span class="popuptext" id="usagePopup10">Usage of <b>TeX::toc</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text1</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text2</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">show_abbrevs</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\medskip\\hrule\\smallskip\\par\\noindent{\\usagefont %S."</span><span class="plain-syntax">, </span><span class="identifier-syntax">text1</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\medskip\\hrule\\smallskip\\par\\noindent{\\usagefont "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S~%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text1</span><span class="plain-syntax">, </span><span class="identifier-syntax">text2</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}\\par\\medskip\\hrule\\bigskip\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP6"></a><b>§6. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::chapter_title_page</span><button class="popup" onclick="togglePopup('usagePopup11')">...<span class="popuptext" id="usagePopup11">Usage of <b>TeX::chapter_title_page</b>:<br><a href="5-tf.html#SP1_1_1">§1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">chapter</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S\\medskip\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">rubric</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">section</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">sections</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\\noindent "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">number_sections</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d. "</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">printed_number</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">show_abbrevs</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|%S|: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_range</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{\\it %S}\\qquad\n%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_title</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_purpose</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_literal</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::paragraph_heading</span><button class="popup" onclick="togglePopup('usagePopup12')">...<span class="popuptext" id="usagePopup12">Usage of <b>TeX::paragraph_heading</b>:<br><a href="5-tf.html#SP2_3">§2.3</a>, <a href="5-tf.html#SP2_4">§2.4</a>, <a href="5-tf.html#SP2_9">§2.9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">weight</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_skip</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Choose which TeX macro to use in order to typeset the new paragraph heading</span> <span class="named-paragraph-number">7.1</span>><span class="plain-syntax">;</span>
|
|
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_literal</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">P_literal</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP4" class="function-link"><span class="function-syntax">Str::new_from_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"P"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">orn</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">P</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">ornament</span><span class="plain-syntax">):</span><span class="identifier-syntax">P_literal</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">P</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">mark</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Work out the next mark to place into the TeX vertical list</span> <span class="named-paragraph-number">7.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">modified</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">modified</span><span class="plain-syntax">, </span><span class="identifier-syntax">heading_text</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">modified</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c*?): (%c*)"</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">modified</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">modified</span><span class="plain-syntax">, </span><span class="string-syntax">"{\\sinchhigh %S}\\quad %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">weight</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) && ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">is_a_singleton</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">show_abbrevs</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\%S{%S}{%S}{%S}{\\%S}{%S}%%\n"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">modified</span><span class="plain-syntax">, </span><span class="identifier-syntax">mark</span><span class="plain-syntax">, </span><span class="identifier-syntax">orn</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\%S{%S}{%S}{%S}{\\%S}{%S}%%\n"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">modified</span><span class="plain-syntax">, </span><span class="identifier-syntax">mark</span><span class="plain-syntax">, </span><span class="identifier-syntax">orn</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_range</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">mark</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">modified</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::dispose_of</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP7_1"></a><b>§7.1. </b>We want to have different heading styles for different weights, and TeX is
|
|
horrible at using macro parameters as function arguments, so we don't want
|
|
to pass the weight that way. Instead we use
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> \weavesection</span>
|
|
<span class="plain-syntax"> \weavesections</span>
|
|
<span class="plain-syntax"> \weavesectionss</span>
|
|
<span class="plain-syntax"> \weavesectionsss</span>
|
|
</pre>
|
|
<p class="inwebparagraph">where the weight is the number of terminal <code class="display"><span class="extract-syntax">s</span></code>s, 0 to 3. (TeX macros,
|
|
lamentably, are not allowed digits in their name.) In the cases 0 and 1, we
|
|
also have variants <code class="display"><span class="extract-syntax">\nsweavesection</span></code> and <code class="display"><span class="extract-syntax">\nsweavesections</span></code> which are
|
|
the same, but with the initial vertical spacing removed; these allow us to
|
|
prevent unsightly excess white space in certain configurations of a section.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Choose which TeX macro to use in order to typeset the new paragraph heading</span> <span class="named-paragraph-number">7.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weight</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"weavesection"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"weavesections"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"weavesectionss"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"weavesectionsss"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">theme_match</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weight</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"tweavesection"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"tweavesections"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"tweavesectionss"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"tweavesectionsss"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_skip</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weight</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"nsweavesection"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"nsweavesections"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP7">§7</a>.</li></ul><p class="inwebparagraph"><a id="SP7_2"></a><b>§7.2. </b>"Marks" are the contrivance by which TeX produces running heads on pages
|
|
which follow the material on those pages: so that the running head for a page
|
|
can show the paragraph range for the material which tops it, for instance.
|
|
</p>
|
|
|
|
<p class="inwebparagraph">The ornament has to be set in math mode, even in the mark. <code class="display"><span class="extract-syntax">\S</span></code> and <code class="display"><span class="extract-syntax">\P</span></code>,
|
|
making a section sign and a pilcrow respectively, only work in math mode
|
|
because they abbreviate characters found in math fonts but not regular ones,
|
|
in TeX's deeply peculiar font encoding system.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Work out the next mark to place into the TeX vertical list</span> <span class="named-paragraph-number">7.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weight</span><span class="plain-syntax"> == </span><span class="constant-syntax">3</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">owning_chapter</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_title</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weight</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_title</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">show_abbrevs</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_range</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_range</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax">, </span><span class="string-syntax">" - %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_title</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">mark</span><span class="plain-syntax">, </span><span class="string-syntax">"%S%S\\quad$\\%S$%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">chaptermark</span><span class="plain-syntax">, </span><span class="identifier-syntax">sectionmark</span><span class="plain-syntax">, </span><span class="identifier-syntax">orn</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP7">§7</a>.</li></ul><p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>Code is typeset by TeX within vertical strokes; these switch a sort of
|
|
typewriter-type verbatim mode on and off. To get an actual stroke, we must
|
|
escape from code mode, escape it using a backslash, then re-enter code
|
|
mode once again:
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::source_code</span><button class="popup" onclick="togglePopup('usagePopup13')">...<span class="popuptext" id="usagePopup13">Usage of <b>TeX::source_code</b>:<br><a href="5-tf.html#SP2_27">§2.27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colouring</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">starts</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\\par\\noindent"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">starts</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Weave a suitable horizontal advance for that many tab stops</span> <span class="named-paragraph-number">8.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">current_colour</span><span class="plain-syntax"> = </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax"> = </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">colouring</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">); </span><<span class="named-paragraph">Adjust code colour as necessary</span> <span class="named-paragraph-number">8.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'|'</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|\\||"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%c"</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax"> = </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">; </span><<span class="named-paragraph">Adjust code colour as necessary</span> <span class="named-paragraph-number">8.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP8_1"></a><b>§8.1. </b>We actually use <code class="display"><span class="extract-syntax">\qquad</span></code> horizontal spaces rather than risk using TeX's
|
|
messy alignment system:
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Weave a suitable horizontal advance for that many tab stops</span> <span class="named-paragraph-number">8.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab_stops_of_indentation</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP16" class="function-link"><span class="function-syntax">Str::remove_indentation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">tab_stops_of_indentation</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\qquad"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP8">§8</a>.</li></ul><p class="inwebparagraph"><a id="SP8_2"></a><b>§8.2. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Adjust code colour as necessary</span> <span class="named-paragraph-number">8.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax"> != </span><span class="identifier-syntax">current_colour</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP10" class="function-link"><span class="function-syntax">TeX::change_colour_PDF</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">current_colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP8">§8</a> (twice).</li></ul><p class="inwebparagraph"><a id="SP9"></a><b>§9. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::inline_code</span><button class="popup" onclick="togglePopup('usagePopup14')">...<span class="popuptext" id="usagePopup14">Usage of <b>TeX::inline_code</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">enter</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP10"></a><b>§10. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::change_colour_PDF</span><button class="popup" onclick="togglePopup('usagePopup15')">...<span class="popuptext" id="usagePopup15">Usage of <b>TeX::change_colour_PDF</b>:<br><a href="5-tf.html#SP8_2">§8.2</a>, <a href="5-tf.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inout</span><span class="plain-syntax"> = </span><span class="string-syntax">""</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) </span><span class="identifier-syntax">inout</span><span class="plain-syntax"> = </span><span class="string-syntax">"|"</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEFINITION_COLOUR:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s\\pdfliteral direct{1 1 0 0 k}%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_COLOUR:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s\\pdfliteral direct{0 1 1 0 k}%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PLAIN_COLOUR:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s\\special{PDF:0 g}%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXTRACT_COLOUR:</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s\\special{PDF:0 g}%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">, </span><span class="identifier-syntax">inout</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP11"></a><b>§11. </b>Any usage of angle-macros is highlighted in several cute ways: first,
|
|
we make use of colour and we drop in the paragraph number of the definition
|
|
of the macro in small type; and second, we use cross-reference links.
|
|
</p>
|
|
|
|
<p class="inwebparagraph">In the PDF format, these three are all called, in sequence below; in TeX
|
|
or DVI, only the middle one is.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_1</span><button class="popup" onclick="togglePopup('usagePopup16')">...<span class="popuptext" id="usagePopup16">Usage of <b>TeX::para_macro_PDF_1</b>:<br><a href="5-tf.html#SP2_16">§2.16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">defn</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|\\pdfdest num %d fit "</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">pmac</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">100</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|\\pdfstartlink attr{/C [0.9 0 0] /Border [0 0 0]} goto num %d "</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">pmac</span><span class="plain-syntax">-></span><span class="element-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">100</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro</span><button class="popup" onclick="togglePopup('usagePopup17')">...<span class="popuptext" id="usagePopup17">Usage of <b>TeX::para_macro</b>:<br><a href="5-tf.html#SP2_16">§2.16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$\\langle${\\xreffont"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP10" class="function-link"><span class="function-syntax">TeX::change_colour_PDF</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFINITION_COLOUR</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S "</span><span class="plain-syntax">, </span><span class="identifier-syntax">pmac</span><span class="plain-syntax">-></span><span class="element-syntax">macro_name</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{\\sevenss %S}}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">pmac</span><span class="plain-syntax">-></span><span class="element-syntax">defining_paragraph</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP10" class="function-link"><span class="function-syntax">TeX::change_colour_PDF</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$\\rangle$ "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_2</span><button class="popup" onclick="togglePopup('usagePopup18')">...<span class="popuptext" id="usagePopup18">Usage of <b>TeX::para_macro_PDF_2</b>:<br><a href="5-tf.html#SP2_16">§2.16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">defn</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$\\equiv$|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\pdfendlink|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP12"></a><b>§12. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::after_definitions</span><button class="popup" onclick="togglePopup('usagePopup19')">...<span class="popuptext" id="usagePopup19">Usage of <b>TeX::after_definitions</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\smallskip\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP13"></a><b>§13. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::commentary_text</span><button class="popup" onclick="togglePopup('usagePopup20')">...<span class="popuptext" id="usagePopup20">Usage of <b>TeX::commentary_text</b>:<br><a href="5-tf.html#SP2_22">§2.22</a>, <a href="5-tf.html#SP4">§4</a>, <a href="5-tf.html#SP16_2">§16.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'$'</span><span class="plain-syntax">: </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">)?</span><span class="identifier-syntax">FALSE:TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%c"</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'_'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"_"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\_"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'"'</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'"'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax">==0) || (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) == </span><span class="character-syntax">' '</span><span class="plain-syntax">) ||</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) == </span><span class="character-syntax">'('</span><span class="plain-syntax">)))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"``"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"''"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%c"</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP14"></a><b>§14. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::locale</span><button class="popup" onclick="togglePopup('usagePopup21')">...<span class="popuptext" id="usagePopup21">Usage of <b>TeX::locale</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par2</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"$\\%S$%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">-></span><span class="element-syntax">ornament</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">par2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"-%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">-></span><span class="identifier-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP15"></a><b>§15. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::tail</span><button class="popup" onclick="togglePopup('usagePopup22')">...<span class="popuptext" id="usagePopup22">Usage of <b>TeX::tail</b>:<br>none</span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comment</span><span class="plain-syntax">, </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%% %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">comment</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\end\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP16"></a><b>§16. </b>The following is called only when the language is InC, and the weave is of
|
|
the special Preform grammar document.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::preform_document</span><button class="popup" onclick="togglePopup('usagePopup23')">...<span class="popuptext" id="usagePopup23">Usage of <b>TeX::preform_document</b>:<br><a href="5-tf.html#SP1_1_1">§1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">chapter</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">source_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">concluding_comment</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">preform_nonterminal_defined</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">preform_production_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Weave the opening line of the nonterminal definition</span> <span class="named-paragraph-number">16.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">category</span><span class="plain-syntax"> == </span><span class="constant-syntax">PREFORM_GRAMMAR_LCAT</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Weave a line from the body of the nonterminal definition</span> <span class="named-paragraph-number">16.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP16_1"></a><b>§16.1. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Weave the opening line of the nonterminal definition</span> <span class="named-paragraph-number">16.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\nonterminal{%S} |::=|"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">unangled_name</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">as_function</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\quad{\\it internal definition"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">voracious</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (voracious)"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">min_word_count</span><span class="plain-syntax"> ==</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">min_word_count</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (%d word%s)"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">min_word_count</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">preform_nonterminal_defined</span><span class="plain-syntax">-></span><span class="element-syntax">min_word_count</span><span class="plain-syntax"> != </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">"s"</span><span class="plain-syntax">:</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP16">§16</a>.</li></ul><p class="inwebparagraph"><a id="SP16_2"></a><b>§16.2. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Weave a line from the body of the nonterminal definition</span> <span class="named-paragraph-number">16.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Issue (%c*?) problem"</span><span class="plain-syntax">)) </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"FAIL_NONTERMINAL %+"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">, </span><span class="string-syntax">"fail and skip"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"FAIL_NONTERMINAL"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">, </span><span class="string-syntax">"fail"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">preform_production_count</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="string-syntax">"|%S|"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c+?)|(%c+)"</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="string-syntax">"%S___stroke___%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c*?)___stroke___(%c*)"</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="string-syntax">"%S|\\||%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c*)<(%c*?)>(%c*)"</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="string-syntax">"%S|\\nonterminal{%S}|%S"</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[2]);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">preform_production_count</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = ((</span><span class="identifier-syntax">N</span><span class="plain-syntax">-1)%26) + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> <= </span><span class="constant-syntax">26</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="string-syntax">"%c"</span><span class="plain-syntax">, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> <= </span><span class="constant-syntax">52</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="string-syntax">"%c%c"</span><span class="plain-syntax">, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> <= </span><span class="constant-syntax">78</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="string-syntax">"%c%c%c"</span><span class="plain-syntax">, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">N</span><span class="plain-syntax">-1)/26;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="string-syntax">"%c${}^{%d}$"</span><span class="plain-syntax">, </span><span class="character-syntax">'a'</span><span class="plain-syntax">+</span><span class="identifier-syntax">L</span><span class="plain-syntax">-1, </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\qquad {\\hbox to 0.4in{\\it %S\\hfil}}%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\hfill$\\longrightarrow$ {\\ttninepoint\\it %S}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">problem</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">concluding_comment</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" \\hfill{\\ttninepoint\\it "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">concluding_comment</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP13" class="function-link"><span class="function-syntax">TeX::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">concluding_comment</span><span class="plain-syntax">);</span>
|
|
<span class="comment"> Formats::text_comment(OUT, wv, concluding_comment);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">label</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">problem</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::dispose_of</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP16">§16</a>.</li></ul><p class="inwebparagraph"><a id="SP17"></a><b>§17. Post-processing. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_PDF</span><button class="popup" onclick="togglePopup('usagePopup24')">...<span class="popuptext" id="usagePopup24">Usage of <b>TeX::post_process_PDF</b>:<br><a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-rtt.html#SP2" class="function-link"><span class="function-syntax">RunningTeX::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_DVI</span><button class="popup" onclick="togglePopup('usagePopup25')">...<span class="popuptext" id="usagePopup25">Usage of <b>TeX::post_process_DVI</b>:<br><a href="5-tf.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-rtt.html#SP2" class="function-link"><span class="function-syntax">RunningTeX::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP18"></a><b>§18. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_report</span><button class="popup" onclick="togglePopup('usagePopup26')">...<span class="popuptext" id="usagePopup26">Usage of <b>TeX::post_process_report</b>:<br><a href="5-tf.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-rtt.html#SP4" class="function-link"><span class="function-syntax">RunningTeX::report_on_post_processing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP19"></a><b>§19. </b></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_substitute</span><button class="popup" onclick="togglePopup('usagePopup27')">...<span class="popuptext" id="usagePopup27">Usage of <b>TeX::post_process_substitute</b>:<br><a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a>, <a href="5-tf.html#SP1_1_1">§1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-rtt.html#SP5" class="function-link"><span class="function-syntax">RunningTeX::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP20"></a><b>§20. Removing math mode. </b>"Math mode", in TeX jargon, is what happens when a mathematical formula
|
|
is written inside dollar signs: in <code class="display"><span class="extract-syntax">Answer is $x+y^2$</span></code>, the math mode
|
|
content is <code class="display"><span class="extract-syntax">x+y^2</span></code>. But since math mode doesn't (easily) exist in HTML,
|
|
for example, we want to strip it out if the format is not TeX-related.
|
|
To do this, the weaver calls the following.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode</span><button class="popup" onclick="togglePopup('usagePopup28')">...<span class="popuptext" id="usagePopup28">Usage of <b>TeX::remove_math_mode</b>:<br>HTML Formats - <a href="5-hf.html#SP5_35">§5.35</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)-1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax">}</span>
|
|
|
|
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode_range</span><button class="popup" onclick="togglePopup('usagePopup29')">...<span class="popuptext" id="usagePopup29">Usage of <b>TeX::remove_math_mode_range</b>:<br><a href="5-tf.html#SP20_1">§20.1</a>, <a href="5-tf.html#SP20_2">§20.2</a>, <a href="5-tf.html#SP20_3">§20.3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Remove the over construction</span> <span class="named-paragraph-number">20.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Remove the rm and it constructions</span> <span class="named-paragraph-number">20.2</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><<span class="named-paragraph">Remove the sqrt constructions</span> <span class="named-paragraph-number">20.3</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'$'</span><span class="plain-syntax">:</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'$'</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">)?</span><span class="identifier-syntax">FALSE:TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'~'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"~"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'\\'</span><span class="plain-syntax">: </span><<span class="named-paragraph">Do something to strip out a TeX macro</span> <span class="named-paragraph-number">20.4</span>><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax">}</span>
|
|
</pre><p class="inwebparagraph"><a id="SP20_1"></a><b>§20.1. </b>Here we remove <code class="display"><span class="extract-syntax">{{top}\over{bottom}}</span></code>, converting it to <code class="display"><span class="extract-syntax">((top) / (bottom))</span></code>.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Remove the over construction</span> <span class="named-paragraph-number">20.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'\\'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'o'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'v'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'e'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+4) == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5) == </span><span class="character-syntax">'{'</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bl</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">--) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">bl</span><span class="plain-syntax">--;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(("</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-2);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">") / ("</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+6; </span><span class="identifier-syntax">bl</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">bl</span><span class="plain-syntax">--;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"))"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20">§20</a>.</li></ul><p class="inwebparagraph"><a id="SP20_2"></a><b>§20.2. </b>Here we remove <code class="display"><span class="extract-syntax">{\rm text}</span></code>, converting it to <code class="display"><span class="extract-syntax">text</span></code>, and similarly <code class="display"><span class="extract-syntax">\it</span></code>.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Remove the rm and it constructions</span> <span class="named-paragraph-number">20.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'\\'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'m'</span><span class="plain-syntax">)) ||</span>
|
|
<span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'t'</span><span class="plain-syntax">))) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+4) == </span><span class="character-syntax">' '</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+5;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++)</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">) == </span><span class="character-syntax">'}'</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20">§20</a>.</li></ul><p class="inwebparagraph"><a id="SP20_3"></a><b>§20.3. </b>Here we remove <code class="display"><span class="extract-syntax">\sqrt{N}</span></code>, converting it to <code class="display"><span class="extract-syntax">sqrt(N)</span></code>. As a special case,
|
|
we also look out for <code class="display"><span class="extract-syntax">{}^3\sqrt{N}</span></code> for cube root.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Remove the sqrt constructions</span> <span class="named-paragraph-number">20.3</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'\\'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'s'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'q'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+4) == </span><span class="character-syntax">'t'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5) == </span><span class="character-syntax">'{'</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-4) == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-3) == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-2) == </span><span class="character-syntax">'^'</span><span class="plain-syntax">) &&</span>
|
|
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) == </span><span class="character-syntax">'3'</span><span class="plain-syntax">)) {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-5);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" curt("</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" sqrt("</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">bl</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">bl</span><span class="plain-syntax">--;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><a href="5-tf.html#SP20" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20">§20</a>.</li></ul><p class="inwebparagraph"><a id="SP20_4"></a><b>§20.4. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Do something to strip out a TeX macro</span> <span class="named-paragraph-number">20.4</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)) && (</span><a href="../foundation-module/4-chr.html#SP1" class="function-link"><span class="function-syntax">Characters::isalpha</span></a><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++));</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not"</span><span class="plain-syntax">)) </span><<span class="named-paragraph">Remove the not prefix</span> <span class="named-paragraph-number">20.4.2</span>>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><<span class="named-paragraph">Remove a general macro</span> <span class="named-paragraph-number">20.4.1</span>><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">--;</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20">§20</a>.</li></ul><p class="inwebparagraph"><a id="SP20_4_1"></a><b>§20.4.1. </b><code class="display">
|
|
<<span class="named-paragraph-defn">Remove a general macro</span> <span class="named-paragraph-number">20.4.1</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"leq"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<="</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"geq"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">">="</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"sim"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"~"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"hbox"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"left"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"right"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Rightarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"=>"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Leftrightarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<=>"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"to"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"-->"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rightarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"-->"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"longrightarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"-->"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"leftarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<--"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"longleftarrow"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<--"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"lbrace"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"{"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"mid"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rbrace"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cdot"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"."</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cdots"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"..."</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"dots"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"..."</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"times"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"*"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"quad"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"qquad"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TeX"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"TeX"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"neq"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"!="</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"noteq"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"!="</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ell"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"l"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"log"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"log"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"exp"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"exp"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"sin"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"sin"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cos"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"cos"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"tan"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"tan"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"top"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"T"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Alpha"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0391</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Beta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0392</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Gamma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0393</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Delta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0394</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Epsilon"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0395</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Zeta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0396</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Eta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0397</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Theta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0398</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Iota"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x0399</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Kappa"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039A</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Lambda"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039B</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Mu"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039C</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Nu"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039D</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Xi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039E</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Omicron"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x039F</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Pi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A0</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Rho"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A1</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Varsigma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A2</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Sigma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A3</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Tau"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A4</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Upsilon"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A5</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Phi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A6</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Chi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A7</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Psi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A8</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Omega"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A9</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"alpha"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B1</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"beta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B2</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"gamma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B3</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"delta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B4</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"epsilon"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B5</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"zeta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B6</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"eta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B7</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"theta"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B8</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"iota"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03B9</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kappa"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BA</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"lambda"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BB</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"mu"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BC</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"nu"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BD</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"xi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BE</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"omicron"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03BF</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"pi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C0</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rho"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C1</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"varsigma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C2</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"sigma"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C3</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"tau"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C4</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"upsilon"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C5</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"phi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C6</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"chi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C7</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"psi"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C8</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"omega"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03C9</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"exists"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2203</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"in"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2208</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"forall"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2200</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cap"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2229</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"emptyset"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2205</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"subseteq"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2286</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"land"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2227</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"lor"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2228</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"lnot"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x00AC</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"sum"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A3</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"prod"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x03A0</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">suspect</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="reserved-syntax">macro</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'A'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'Z'</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'a'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'z'</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">suspect</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"n"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">suspect</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"t"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">suspect</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">suspect</span><span class="plain-syntax">)</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"[Passing through unknown TeX macro \\%S:\n %S\n"</span><span class="plain-syntax">, </span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\%S"</span><span class="plain-syntax">, </span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20_4">§20.4</a>.</li></ul><p class="inwebparagraph"><a id="SP20_4_2"></a><b>§20.4.2. </b>For Inform's purposes, we need to deal with just <code class="display"><span class="extract-syntax">\not\exists</span></code> and <code class="display"><span class="extract-syntax">\not\forall</span></code>.
|
|
</p>
|
|
|
|
|
|
<p class="macrodefinition"><code class="display">
|
|
<<span class="named-paragraph-defn">Remove the not prefix</span> <span class="named-paragraph-number">20.4.2</span>> =
|
|
</code></p>
|
|
|
|
<pre class="displayed-code all-displayed-code">
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'\\'</span><span class="plain-syntax">) {</span>
|
|
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)) && (</span><a href="../foundation-module/4-chr.html#SP1" class="function-link"><span class="function-syntax">Characters::isalpha</span></a><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))))</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++));</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"exists"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2204</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"forall"</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x00AC</span><span class="plain-syntax">); </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">((</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax">) </span><span class="constant-syntax">0x2200</span><span class="plain-syntax">); }</span>
|
|
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Don't know how to apply '\\not' to '\\%S'\n"</span><span class="plain-syntax">, </span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
|
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Don't know how to apply '\\not' here\n"</span><span class="plain-syntax">);</span>
|
|
<span class="plain-syntax"> }</span>
|
|
</pre><ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP20_4">§20.4</a>.</li></ul><hr class="tocbar">
|
|
<ul class="toc"><li><a href="5-ptf.html">Back to 'Plain Text Format'</a></li><li><a href="5-hf.html">Continue with 'HTML Formats'</a></li></ul><hr class="tocbar">
|
|
<!--End of weave-->
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|