Added TeX Mathematics Notation option

This commit is contained in:
Graham Nelson 2020-04-08 12:19:34 +01:00
parent 014b212e3e
commit e86e7cfb42
12 changed files with 908 additions and 865 deletions

View file

@ -413,8 +413,12 @@ VMETHOD_TYPE(COMMENTARY_TEXT_FOR_MTID, weave_format *wf, text_stream *OUT,
void Formats::text_fragment(OUTPUT_STREAM, weave_target *wv, text_stream *fragment) {
weave_format *wf = wv->format;
TEMPORARY_TEXT(matter);
int rv = FALSE;
IMETHOD_CALL(rv, wf, PRESERVE_MATH_MODE_FOR_MTID, matter, fragment);
int rv = TRUE;
if (Str::eq_wide_string(
Bibliographic::get_datum(wv->weave_web->md, I"TeX Mathematics Notation"), L"On")) {
rv = FALSE;
IMETHOD_CALL(rv, wf, PRESERVE_MATH_MODE_FOR_MTID, matter, fragment);
}
if (rv == FALSE) TeX::remove_math_mode(matter, fragment);
else Str::copy(matter, fragment);
VMETHOD_CALL(wf, COMMENTARY_TEXT_FOR_MTID, OUT, wv, matter);

View file

@ -367,3 +367,9 @@ the weave is to TeX, but a few very approximate attempts are made by Inweb
so that the HTML version may also make sense. For example, |$x \leq y$| would
be rendered in HTML as |x <= y|.
In some webs, this will be inconvenient, because the dollar sign is wanted
for something else (such as money, or hexadecimal). So this feature can be
deactivated by writing the following in the Contents section of a web:
= (text as Inweb)
TeX Mathematics Notation: Off
=

View file

@ -1,6 +1,6 @@
# Inweb 7
v7-alpha.1+1A13 'Escape to Danger' (7 April 2020)
v7-alpha.1+1A14 'Escape to Danger' (8 April 2020)
## About Inweb

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 7 April 2020
Build Number: 1A13
Build Date: 8 April 2020
Build Number: 1A14

View file

@ -663,7 +663,7 @@ impaired people.
<span class="identifier">toc</span><span class="plain">);</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;?xml version='1.0' encoding='utf-8'?&gt;\n"</span><span class="plain">);</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;!DOCTYPE ncx PUBLIC \"-//NISO//DTD ncx 2005-1</span><span class="comment">EN\"\n");</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;!DOCTYPE ncx PUBLIC \"-</span><span class="comment">NISO//DTD ncx 2005-1//EN\"\n");</span>
<span class="string">WRITE("</span><span class="plain"> \</span><span class="string">"http:</span><span class="comment">www.daisy.org/z3986/2005/ncx-2005-1.dtd\"&gt;\n");</span>
<span class="string">WRITE("</span><span class="plain">&lt;</span><span class="identifier">ncx</span><span class="plain"> </span><span class="identifier">xmlns</span><span class="plain">=\</span><span class="string">"http:</span><span class="comment">www.daisy.org/z3986/2005/ncx/\" version=\"2005-1\"&gt;\n");</span>

View file

@ -268,11 +268,11 @@ of which are variadic and have to be written out the old-fashioned way:
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HTML::begin_head</span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">CSS_file</span><span class="plain">) {</span>
<span class="reserved">HTML_file_state</span><span class="plain"> *</span><span class="identifier">hs</span><span class="plain"> = </span><span class="functiontext">Streams::get_HTML_file_state</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">hs</span><span class="plain">) &amp;&amp; (</span><span class="identifier">hs</span><span class="plain">-&gt;</span><span class="element">XHTML_flag</span><span class="plain">)) {</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1</span><span class="comment">EN\" ");</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"&lt;!DOCTYPE html PUBLIC \"-</span><span class="comment">W3C//DTD XHTML 1.1//EN\" ");</span>
<span class="string">WRITE("</span><span class="plain">\</span><span class="string">"http:</span><span class="comment">www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"&gt;\n");</span>
<span class="string">HTML_OPEN_WITH("</span><span class="identifier">html</span><span class="string">", "</span><span class="identifier">xmlns</span><span class="plain">=\</span><span class="string">"http:</span><span class="comment">www.w3.org/1999/xhtml\"");</span>
<span class="string">} else {</span>
<span class="string">WRITE("</span><span class="plain">&lt;!</span><span class="identifier">DOCTYPE</span><span class="plain"> </span><span class="identifier">html</span><span class="plain"> </span><span class="identifier">PUBLIC</span><span class="plain"> \</span><span class="string">"-//W3C//DTD HTML 4.01 Transitional</span><span class="comment">EN\" ");</span>
<span class="string">WRITE("</span><span class="plain">&lt;!</span><span class="identifier">DOCTYPE</span><span class="plain"> </span><span class="identifier">html</span><span class="plain"> </span><span class="identifier">PUBLIC</span><span class="plain"> \</span><span class="string">"-</span><span class="comment">W3C//DTD HTML 4.01 Transitional//EN\" ");</span>
<span class="string">WRITE("</span><span class="plain">\</span><span class="string">"http:</span><span class="comment">www.w3.org/TR/html4/loose.dtd\"&gt;\n");</span>
<span class="string">HTML_OPEN("</span><span class="identifier">html</span><span class="string">");</span>
<span class="string">}</span>

View file

@ -108,6 +108,8 @@ convenient to store them directly here than to use a dictionary.
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Declare Section Usage"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-&gt;</span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Namespaces"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-&gt;</span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Strict Usage Rules"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-&gt;</span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TeX Mathematics Notation"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"On"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-&gt;</span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Code In Commentary Notation"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"|"</span><span class="plain">);</span>
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext">Bibliographic::set_datum</span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Web Syntax Version"</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>

View file

@ -76,7 +76,7 @@ each of which has a list of <code class="display"><span class="extract">section<
<p class="inwebparagraph"></p>
<p class="endnote">The structure web is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="endnote">The structure web is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/wf, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. </b>And for a chapter:
</p>
@ -96,7 +96,7 @@ each of which has a list of <code class="display"><span class="extract">section<
<p class="inwebparagraph"></p>
<p class="endnote">The structure chapter is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="endnote">The structure chapter is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/wf, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="inwebparagraph"><a id="SP3"></a><b>&#167;3. </b>And lastly for a section.
</p>
@ -134,7 +134,7 @@ each of which has a list of <code class="display"><span class="extract">section<
<p class="inwebparagraph"></p>
<p class="endnote">The structure section is accessed in 1/pc, 1/ptt, 2/tp, 2/pm, 2/tgs, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/lm, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="endnote">The structure section is accessed in 1/pc, 1/ptt, 2/tp, 2/pm, 2/tgs, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/lm, 4/as, 4/cl, 4/is, 5/wf, 5/ptf, 5/tf, 5/hf, 6/mkf, 6/rw and here.</p>
<p class="inwebparagraph"><a id="SP4"></a><b>&#167;4. </b>The following routine makes the <code class="display"><span class="extract">web</span></code>-<code class="display"><span class="extract">chapter</span></code>-<code class="display"><span class="extract">section</span></code> tree out of a
<code class="display"><span class="extract">web_md</span></code>-<code class="display"><span class="extract">chapter_md</span></code>-<code class="display"><span class="extract">section_md</span></code> tree:

View file

@ -648,8 +648,12 @@ format does, because it wants to keep the formulae in all their glory.)
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_fragment</span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fragment</span><span class="plain">) {</span>
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-&gt;</span><span class="element">format</span><span class="plain">;</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">);</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">PRESERVE_MATH_MODE_FOR_MTID</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">fragment</span><span class="plain">);</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Str::eq_wide_string</span><span class="plain">(</span>
<span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-&gt;</span><span class="element">weave_web</span><span class="plain">-&gt;</span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TeX Mathematics Notation"</span><span class="plain">), </span><span class="identifier">L</span><span class="string">"On"</span><span class="plain">)) {</span>
<span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">PRESERVE_MATH_MODE_FOR_MTID</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">fragment</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rv</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) </span><span class="functiontext">TeX::remove_math_mode</span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">fragment</span><span class="plain">);</span>
<span class="reserved">else</span><span class="plain"> </span><span class="functiontext">Str::copy</span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">fragment</span><span class="plain">);</span>
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">COMMENTARY_TEXT_FOR_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">);</span>

View file

@ -529,6 +529,15 @@ so that the HTML version may also make sense. For example, <code class="display"
be rendered in HTML as <code class="display"><span class="extract">x &lt;= y</span></code>.
</p>
<p class="inwebparagraph">In some webs, this will be inconvenient, because the dollar sign is wanted
for something else (such as money, or hexadecimal). So this feature can be
deactivated by writing the following in the Contents section of a web:
</p>
<pre class="display">
<span class="element">TeX Mathematics Notation</span><span class="plain">:</span><span class="string"> Off</span>
</pre>
<p class="inwebparagraph"></p>
<hr class="tocbar">

View file

@ -67,6 +67,8 @@ void Bibliographic::initialise_data(web_md *Wm) {
bd = Bibliographic::set_datum(Wm, I"Declare Section Usage", I"Off"); bd->on_or_off = TRUE;
bd = Bibliographic::set_datum(Wm, I"Namespaces", I"Off"); bd->on_or_off = TRUE;
bd = Bibliographic::set_datum(Wm, I"Strict Usage Rules", I"Off"); bd->on_or_off = TRUE;
bd = Bibliographic::set_datum(Wm, I"TeX Mathematics Notation", I"On"); bd->on_or_off = TRUE;
bd = Bibliographic::set_datum(Wm, I"Code In Commentary Notation", I"|");
bd = Bibliographic::set_datum(Wm, I"Web Syntax Version", NULL);
}