@amermathsoc/texml-to-html 18.7.0 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +41 -2
  3. package/lib/elements/email.js +1 -1
  4. package/lib/elements/toc.js +1 -1
  5. package/lib/transformer.js +1 -0
  6. package/package.json +2 -2
  7. package/test/article-alttitle-meta-snapshot.json +1 -1
  8. package/test/book--metadata.xml +2 -2
  9. package/test/book.xml +2 -2
  10. package/test/element-email.js +1 -1
  11. package/test/snapshots/article--alttitle.html +1 -1
  12. package/test/snapshots/article.html +1 -1
  13. package/test/snapshots/texml-tests/amsbook.html +3 -10
  14. package/test/snapshots/texml-tests/amsbook.xml +2 -25
  15. package/test/snapshots/texml-tests/amsrefs.html +2 -0
  16. package/test/snapshots/texml-tests/amsrefs.xml +2 -0
  17. package/test/snapshots/texml-tests/amsthm-swap.html +81 -0
  18. package/test/snapshots/texml-tests/amsthm-swap.xml +59 -0
  19. package/test/snapshots/texml-tests/appendix-book.html +74 -0
  20. package/test/snapshots/texml-tests/appendix-book.xml +142 -0
  21. package/test/snapshots/texml-tests/article.html +2 -2
  22. package/test/snapshots/texml-tests/article.xml +10 -2
  23. package/test/snapshots/texml-tests/arxiv.html +56 -0
  24. package/test/snapshots/texml-tests/arxiv.xml +34 -0
  25. package/test/snapshots/texml-tests/{framebox.html → aufm.html} +5 -9
  26. package/test/snapshots/texml-tests/{framebox.xml → aufm.xml} +2 -8
  27. package/test/snapshots/texml-tests/autoref.html +10 -7
  28. package/test/snapshots/texml-tests/autoref.xml +14 -8
  29. package/test/snapshots/texml-tests/babel.html +3 -0
  30. package/test/snapshots/texml-tests/babel.xml +5 -0
  31. package/test/snapshots/texml-tests/book-app.html +10 -4
  32. package/test/snapshots/texml-tests/book-app.xml +18 -6
  33. package/test/snapshots/texml-tests/book.html +3 -6
  34. package/test/snapshots/texml-tests/book.xml +4 -14
  35. package/test/snapshots/texml-tests/caption.html +40 -0
  36. package/test/snapshots/texml-tests/caption.xml +18 -0
  37. package/test/snapshots/texml-tests/cite.xml +1 -1
  38. package/test/snapshots/texml-tests/cleveref.html +89 -53
  39. package/test/snapshots/texml-tests/cleveref.xml +65 -53
  40. package/test/snapshots/texml-tests/drm.xml +2 -2
  41. package/test/snapshots/texml-tests/euscript.html +40 -0
  42. package/test/snapshots/texml-tests/euscript.xml +18 -0
  43. package/test/snapshots/texml-tests/expl3.html +38 -0
  44. package/test/snapshots/texml-tests/expl3.xml +16 -0
  45. package/test/snapshots/texml-tests/extarrows.html +42 -0
  46. package/test/snapshots/texml-tests/extarrows.xml +28 -0
  47. package/test/snapshots/texml-tests/footnote.xml +2 -2
  48. package/test/snapshots/texml-tests/framedboxes.html +45 -0
  49. package/test/snapshots/texml-tests/framedboxes.xml +23 -0
  50. package/test/snapshots/texml-tests/gsm_l.html +25 -17
  51. package/test/snapshots/texml-tests/gsm_l.xml +47 -35
  52. package/test/snapshots/texml-tests/i283.html +41 -0
  53. package/test/snapshots/texml-tests/i283.xml +50 -0
  54. package/test/snapshots/texml-tests/index.html +44 -0
  55. package/test/snapshots/texml-tests/index.xml +22 -0
  56. package/test/snapshots/texml-tests/lastkern.html +39 -0
  57. package/test/snapshots/texml-tests/lastkern.xml +17 -0
  58. package/test/snapshots/texml-tests/longtable.html +3 -1
  59. package/test/snapshots/texml-tests/longtable.xml +4 -2
  60. package/test/snapshots/texml-tests/maketitle.html +27 -8
  61. package/test/snapshots/texml-tests/maketitle.xml +28 -2
  62. package/test/snapshots/texml-tests/manfnt.html +42 -0
  63. package/test/snapshots/texml-tests/manfnt.xml +20 -0
  64. package/test/snapshots/texml-tests/mathscr.html +40 -0
  65. package/test/snapshots/texml-tests/mathscr.xml +18 -0
  66. package/test/snapshots/texml-tests/metadata.html +1 -1
  67. package/test/snapshots/texml-tests/metadata.xml +2 -3
  68. package/test/snapshots/texml-tests/nameref.xml +1 -1
  69. package/test/snapshots/texml-tests/names.html +119 -0
  70. package/test/snapshots/texml-tests/names.xml +111 -0
  71. package/test/snapshots/texml-tests/natbib.html +27 -0
  72. package/test/snapshots/texml-tests/natbib.xml +46 -0
  73. package/test/snapshots/texml-tests/part.html +56 -0
  74. package/test/snapshots/texml-tests/part.xml +100 -0
  75. package/test/snapshots/texml-tests/ref.html +52 -17
  76. package/test/snapshots/texml-tests/ref.xml +28 -17
  77. package/test/snapshots/texml-tests/strcmp.html +2 -0
  78. package/test/snapshots/texml-tests/strcmp.xml +2 -0
  79. package/test/snapshots/texml-tests/subfig.html +1 -1
  80. package/test/snapshots/texml-tests/subfig.xml +3 -3
  81. package/test/snapshots/texml-tests/tableofcontents.xml +2 -2
  82. package/test/snapshots/texml-tests/xmllabel.html +44 -0
  83. package/test/snapshots/texml-tests/xmllabel.xml +24 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [19.0.1](https://github.com/AmerMathSoc/texml-to-html/compare/v19.0.0...v19.0.1) (2026-01-07)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **email.js:** mailto protocol ([fd4d33b](https://github.com/AmerMathSoc/texml-to-html/commit/fd4d33b86173d9822716f855d07a5d6c360e3d1d)), closes [#496](https://github.com/AmerMathSoc/texml-to-html/issues/496)
11
+
12
+ ## [19.0.0](https://github.com/AmerMathSoc/texml-to-html/compare/v18.7.0...v19.0.0) (2025-11-26)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * Expects new texml TOC markup (toc-title-group).
18
+
19
+ ### Features
20
+
21
+ * adjust to new TOC markup ([b18f29a](https://github.com/AmerMathSoc/texml-to-html/commit/b18f29a831bd6a1943d8a05faf04f01d20f65167)), closes [#494](https://github.com/AmerMathSoc/texml-to-html/issues/494)
22
+
5
23
  ## [18.7.0](https://github.com/AmerMathSoc/texml-to-html/compare/v18.6.0...v18.7.0) (2025-07-02)
6
24
 
7
25
 
package/README.md CHANGED
@@ -162,7 +162,7 @@ Beyond HTML element and attributes, texml-to-html stores data in custom `data-*`
162
162
 
163
163
  ##### downstream `data-*` attributes
164
164
 
165
- While the vast majority of data attributes originate in texml-to-html, we have a few cases where downstream tooling introduces custom attributes.
165
+ While most data attributes originate in texml-to-html, we have a few cases where downstream tooling introduces custom attributes.
166
166
  We list the attribute names, the related tools and purpose:
167
167
 
168
168
  - [deprecated] data-eqn-tag-#
@@ -329,12 +329,16 @@ For books:
329
329
 
330
330
  **Note.** There is some overlap with other sections of this document. Ensure that updates are consistent across the document.
331
331
 
332
- For math mode, texml creates MathJax-optimized TeX strings that may contain XML markup; for content not supported by MathJax it falls back to SVG creation. This mix requires extra processing.
332
+ For math mode, texml creates MathJax-optimized TeX strings that may contain XML markup; for content not supported by MathJax it falls back to SVG creation. This mix requires additional processing.
333
+
334
+ For MathJax requirements, see the section below.
333
335
 
334
336
  #### xref
335
337
 
336
338
  Math mode output may contain xref elements. This gets turned into something like `\xhref[@ref-type]{#@rid}{...}`; the custom `xhref` MathJax macro works in both (MathJax's) text and math mode.
337
339
 
340
+ Furthermore, xref-group and cite-group will pass through and may need to be stripped for MathJax processing.
341
+
338
342
  #### text inside math mode
339
343
 
340
344
  In the case where math mode contains text mode, texml creates text elements possibly containing text XML markup. We turn this into MathJax-compatible TeX strings.
@@ -383,3 +387,38 @@ We convert the markup to HTML custom elements with attributes. Further processin
383
387
  - alg:repeat
384
388
  - alg:until
385
389
  - alg:loop
390
+
391
+ ### MathJax requirements
392
+
393
+ The output generated by texml and texml-to-html assumes the following MathJax extensions are available:
394
+
395
+ #### mathjax-src extensions
396
+
397
+ - Base
398
+ - Ams
399
+ - AmsCd
400
+ - Bbox
401
+ - Boldsymbol
402
+ - Braket
403
+ - Cancel
404
+ - Color
405
+ - ConfigMacros
406
+ - Enclose
407
+ - Extpfeil
408
+ - Html
409
+ - TagFormat
410
+ - TextMacros
411
+ - Unicode
412
+ - Verb
413
+ - Mathtools
414
+ - Cases
415
+ - Empheq
416
+ - Colortbl
417
+
418
+ #### third-party extensions
419
+
420
+ - [mathjax-xhref](https://github.com/AmerMathSoc/mathjax-xhref)
421
+ - [mathjax-img](https://github.com/pkra/mathjax-img)
422
+ - [mathjax-ams-macros](https://github.com/AmerMathSoc/mathjax-ams-macros)
423
+ - [mathjax-unicode-math](https://github.com/AmerMathSoc/mathjax-unicode-math)
424
+ - [mathjax-dbnsymb](https://github.com/AmerMathSoc/mathjax-dbnsymb)
@@ -23,6 +23,6 @@
23
23
  export default function (htmlParentNode, xmlnode) {
24
24
  const text = xmlnode.textContent;
25
25
  htmlParentNode.appendChild(
26
- this.createNode('a', text, { href: `mailto://${text}` })
26
+ this.createNode('a', text, { href: `mailto:${text}` })
27
27
  );
28
28
  };
@@ -26,7 +26,7 @@ export default function (htmlParentNode, xmlnode) {
26
26
  id: xmlnode.id,
27
27
  });
28
28
  htmlParentNode.appendChild(nav);
29
- this.recurseTheDom(nav, xmlnode.querySelector('title-group'));
29
+ this.recurseTheDom(nav, xmlnode.querySelector('toc-title-group'));
30
30
  const ol = this.createNode('ol');
31
31
  nav.appendChild(ol);
32
32
  [...xmlnode.childNodes]
@@ -305,6 +305,7 @@ export class Transformer {
305
305
  'cite-group' = CiteGroup.bind(this)
306
306
  'cite-detail' = CiteDetail.bind(this)
307
307
  'title-group' = TitleGroup.bind(this)
308
+ 'toc-title-group' = TitleGroup.bind(this)
308
309
 
309
310
  // one-off reuse of imported elements
310
311
  // NOTE if RHS gets re-used more than once, use mapTag in the constructor
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@amermathsoc/texml-to-html",
3
- "version": "18.7.0",
3
+ "version": "19.0.1",
4
4
  "type": "module",
5
5
  "description": "A NodeJS library for converting AMS-style JATS XML to HTML",
6
6
  "scripts": {
7
7
  "coverage": "c8 npm run test && c8 report --reporter html",
8
8
  "release": "commit-and-tag-version",
9
- "texmlTests": "rm ./test/snapshots/texml-tests/* && find ../texml/tests/ -name *.xml -exec cp {} ./test/snapshots/texml-tests/. \\;",
9
+ "texmlTests": "rm -f ./test/snapshots/texml-tests/* && find ../texml/tests/ -name '*.xml' -exec cp {} ./test/snapshots/texml-tests/. \\;",
10
10
  "pretest": "node ./test/snapshots/updateTexmlSnapshots.js",
11
11
  "test": "tape test/*.js"
12
12
  },
@@ -27,7 +27,7 @@
27
27
  "contribAs": [
28
28
  {
29
29
  "name": "Given Sur, Jr.",
30
- "bio": "Some biographical info with <a href=\"mailto://email\">email</a>",
30
+ "bio": "Some biographical info with <a href=\"mailto:email\">email</a>",
31
31
  "affiliations": [
32
32
  "aff"
33
33
  ],
@@ -123,9 +123,9 @@
123
123
  </book-meta>
124
124
  <front-matter>
125
125
  <toc id="toc">
126
- <title-group>
126
+ <toc-title-group>
127
127
  <title>Contents</title>
128
- </title-group>
128
+ </toc-title-group>
129
129
  <toc-entry specific-use="chapter">
130
130
  <title>Chunk</title>
131
131
  <nav-pointer rid="tocid1"/>
package/test/book.xml CHANGED
@@ -88,9 +88,9 @@
88
88
  </book-meta>
89
89
  <front-matter>
90
90
  <toc id="toc">
91
- <title-group>
91
+ <toc-title-group>
92
92
  <title>Contents</title>
93
- </title-group>
93
+ </toc-title-group>
94
94
  <toc-entry specific-use="chapter" style="custom">
95
95
  <title>Chunk</title>
96
96
  <nav-pointer rid="tocid1"/>
@@ -21,6 +21,6 @@ import tape from 'tape';
21
21
  tape('Template: email', async function(t) {
22
22
  t.plan(1);
23
23
  const document = article;
24
- const email = document.querySelector('a[href="mailto://email"]');
24
+ const email = document.querySelector('a[href="mailto:email"]');
25
25
  t.equal(email.innerHTML, 'email', 'email to anchor with mailto address');
26
26
  });
@@ -27,7 +27,7 @@
27
27
  "contribAs": [
28
28
  {
29
29
  "name": "Given Sur, Jr.",
30
- "bio": "Some biographical info with <a href=\"mailto://email\">email</a>",
30
+ "bio": "Some biographical info with <a href=\"mailto:email\">email</a>",
31
31
  "affiliations": [
32
32
  "aff"
33
33
  ],
@@ -490,7 +490,7 @@
490
490
  </alg-algorithm>
491
491
  </section>
492
492
  <section id="null" data-ams-doc="null" data-ams-doc-level="0">
493
- <p>Email <a href="mailto://email">email</a> in content, not metadata.</p>
493
+ <p>Email <a href="mailto:email">email</a> in content, not metadata.</p>
494
494
  </section>
495
495
  <section id="contentModel" data-ams-doc="null" data-ams-doc-level="0">
496
496
  <section id="contentModel-1" data-ams-doc="null" data-ams-doc-level="5">
@@ -1,17 +1,10 @@
1
- <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>AMS Publication</title></head><body>
2
- <section data-ams-doc="titlepage"><script type="application/json">{"book":{"identifiers":{"AMS":{},"crossref":{},"issn":{},"isbn":{},"loc":{},"basename":null},"title":""},"publishers":[],"contributors":{"authors":[{"name":"Jane Doe","bio":"","affiliations":[],"emails":["jane.doe@nowhere"],"mrauth":"MR author id","orcid":"ORCID id","uri":"https://www.ams.org/"},{"name":"John Bull","bio":"","affiliations":[],"emails":["john.bull@nowhere"],"uri":"https://www.ams.org/"}]},"permissions":{},"history":{}}</script></section>
1
+ <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>Sample book</title></head><body>
2
+ <section data-ams-doc="titlepage"><script type="application/json">{"book":{"identifiers":{"AMS":{},"crossref":{},"issn":{},"isbn":{},"loc":{},"basename":null},"title":"Sample book","alttitle":"Sample book"},"publishers":[],"contributors":{"authors":[{"name":"Jane Doe","bio":"","affiliations":[],"emails":["jane.doe@nowhere"],"mrauth":"MR author id","orcid":"ORCID id","uri":"https://www.ams.org/"},{"name":"John Bull","bio":"","affiliations":[],"emails":["john.bull@nowhere"],"uri":"https://www.ams.org/"}]},"permissions":{},"history":{}}</script></section>
3
3
 
4
4
 
5
5
 
6
6
 
7
- <section id="ltxid3" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Introduction</span></h2>
8
- <section data-ams-byline="Jane Doe and John Bull" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;Jane Doe&quot;,&quot;bio&quot;:&quot;&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[&quot;jane.doe@nowhere&quot;],&quot;mrauth&quot;:&quot;MR author id&quot;,&quot;orcid&quot;:&quot;ORCID id&quot;,&quot;uri&quot;:&quot;https://www.ams.org/&quot;},{&quot;name&quot;:&quot;John Bull&quot;,&quot;bio&quot;:&quot;&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[&quot;john.bull@nowhere&quot;],&quot;uri&quot;:&quot;https://www.ams.org/&quot;}]}" data-ams-doc="sec-meta">
9
-
10
- <section role="doc-abstract" data-ams-doc-level="1"><h2><span data-ams-doc="title">Abstract<ams-x>.</ams-x></span></h2>
11
-
12
- <p>Abstract text goes here.</p>
13
- </section>
14
- </section>
7
+ <section role="doc-introduction" id="ltxid3" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Introduction</span></h2>
15
8
 
16
9
 
17
10
  <p>Here is some text.</p>
@@ -1,9 +1,9 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
2
  <!DOCTYPE book PUBLIC "-//NLM//DTD BITS Book Interchange DTD v2.1 20180401//EN" "BITS-book2.dtd">
3
3
  <book xmlns:xlink="http://www.w3.org/1999/xlink">
4
4
  <book-meta>
5
5
  <book-title-group>
6
- <article-title>Sample book</article-title>
6
+ <book-title>Sample book</book-title>
7
7
  </book-title-group>
8
8
  <contrib-group content-type="authors">
9
9
  <contrib contrib-type="author">
@@ -28,29 +28,6 @@
28
28
  <book-part>
29
29
  <body>
30
30
  <sec disp-level="1" id="ltxid3" specific-use="section">
31
- <sec-meta>
32
- <contrib-group content-type="authors">
33
- <contrib contrib-type="author">
34
- <string-name>Jane Doe</string-name>
35
- <contrib-id contrib-id-type="orcid">ORCID id</contrib-id>
36
- <contrib-id contrib-id-type="mrauth">MR author id</contrib-id>
37
- <aff>First author’s address</aff>
38
- <aff specific-use="current">First author’s current address</aff>
39
- <email>jane.doe@nowhere</email>
40
- <uri>https://www.ams.org/</uri>
41
- </contrib>
42
- <contrib contrib-type="author">
43
- <string-name>John Bull</string-name>
44
- <aff>Second author’s address</aff>
45
- <email>john.bull@nowhere</email>
46
- <uri>https://www.ams.org/</uri>
47
- </contrib>
48
- </contrib-group>
49
- <abstract>
50
- <title>Abstract<x>.</x></title>
51
- <p>Abstract text goes here.</p>
52
- </abstract>
53
- </sec-meta>
54
31
  <label>1<x>.</x></label>
55
32
  <title>Introduction</title>
56
33
  <p>Here is some text.</p>
@@ -45,6 +45,8 @@
45
45
  <p>Eng 2: <cite-group><ams-x>[</ams-x><cite><a role="doc-biblioref" data-ams-ref="bibr" href="#bibr-Enna2">Engb</a></cite><ams-x>]</ams-x></cite-group></p>
46
46
  <p>Eng 3: <cite-group><ams-x>[</ams-x><cite><a role="doc-biblioref" data-ams-ref="bibr" href="#bibr-Enna3">Engc</a></cite><ams-x>]</ams-x></cite-group></p>
47
47
  <p>Eng 4: <cite-group><ams-x>[</ams-x><cite><a role="doc-biblioref" data-ams-ref="bibr" href="#bibr-Enna4">Engd</a></cite><ams-x>]</ams-x></cite-group></p>
48
+ <p>arXiv: <a href="https://arxiv.org/abs/1405.7064"><span data-ams-style="monospace">arXiv:1405.7064</span></a></p>
49
+ <p>arXiv w/ category: <a href="https://arxiv.org/abs/1405.7064"><span data-ams-style="monospace">arXiv:1405.7064 [math.NT]</span></a></p>
48
50
  </section>
49
51
 
50
52
 
@@ -23,6 +23,8 @@
23
23
  <p>Eng 2: <cite-group><x>[</x><xref ref-type="bibr" rid="bibr-Enna2" specific-use="cite">Engb</xref><x>]</x></cite-group></p>
24
24
  <p>Eng 3: <cite-group><x>[</x><xref ref-type="bibr" rid="bibr-Enna3" specific-use="cite">Engc</xref><x>]</x></cite-group></p>
25
25
  <p>Eng 4: <cite-group><x>[</x><xref ref-type="bibr" rid="bibr-Enna4" specific-use="cite">Engd</xref><x>]</x></cite-group></p>
26
+ <p>arXiv: <ext-link xlink:href="https://arxiv.org/abs/1405.7064"><monospace>arXiv:1405.7064</monospace></ext-link></p>
27
+ <p>arXiv w/ category: <ext-link xlink:href="https://arxiv.org/abs/1405.7064"><monospace>arXiv:1405.7064 [math.NT]</monospace></ext-link></p>
26
28
  </sec>
27
29
  </body>
28
30
  <back id="ltxid4">
@@ -0,0 +1,81 @@
1
+ <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>amsthm</title></head><body><section data-ams-doc="article">
2
+ <section data-ams-doc="frontmatter"><script type="application/json">{
3
+ "title": "amsthm",
4
+ "alttitle": "amsthm",
5
+ "identifiers": {
6
+ "AMS": {},
7
+ "crossref": {},
8
+ "uri": {},
9
+ "basename": null
10
+ },
11
+ "relatedArticles": {},
12
+ "publishers": [],
13
+ "contributors": {},
14
+ "permissions": {},
15
+ "journal": {
16
+ "identifiers": {
17
+ "AMS": {},
18
+ "issn": {
19
+ "print": "",
20
+ "electronic": ""
21
+ }
22
+ }
23
+ },
24
+ "customMeta": {},
25
+ "categories": {},
26
+ "byline": "",
27
+ "volumeInfo": {},
28
+ "history": {
29
+ "rev-recd": []
30
+ },
31
+ "keywords": []
32
+ }</script><h1>amsthm</h1></section>
33
+
34
+ <section id="ltxid3" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">First section</span></h2>
35
+
36
+
37
+ <figure data-ams-style="thmplain" data-ams-content-type="theorem lem" id="ltxid4" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1<ams-x>.</ams-x> Lemma<ams-x>.</ams-x></span></figcaption>
38
+
39
+ <p>This is a lemma.</p>
40
+ </figure>
41
+ <p>Before theorem.</p>
42
+ <figure data-ams-style="thmplain" data-ams-content-type="theorem theorem" id="ltxid5" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1.1<ams-x>.</ams-x> Theorem<ams-x>.</ams-x></span></figcaption>
43
+
44
+ <p>Theorem text.</p>
45
+ <p>Emphasized <em>theorem</em> text.</p>
46
+ </figure>
47
+ <p><i>After theorem.</i></p>
48
+ <figure data-ams-style="thmplain" data-ams-content-type="theorem theorem" id="ltxid6" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1.2<ams-x>.</ams-x> Theorem</span> <span data-ams-doc="title"><ams-x>(</ams-x>Note<ams-x>)</ams-x><ams-x>.</ams-x></span></figcaption>
49
+
50
+
51
+ <p>Theorem text. (currentlabel = 1.2)</p>
52
+ <p>Emphasized <em>theorem</em> text.</p>
53
+ </figure>
54
+ <p>After theorem&#160;<span data-ams-refrange="null" data-ams-ref="null" data-ams-doc="refgroup"><a data-ams-ref="statement" href="#ltxid6">1.2</a></span>.</p>
55
+ <p>After theorem.</p>
56
+ <figure data-ams-style="thmplain" data-ams-content-type="theorem theorem*" id="ltxid7" data-ams-doc="statement"><figcaption><span data-ams-doc="label">Theorem<ams-x>.</ams-x></span></figcaption>
57
+
58
+ <p>Theorem text.</p>
59
+ <p>Emphasized <em>theorem</em> text.</p>
60
+ </figure>
61
+ <p>After theorem.</p>
62
+ <figure data-ams-style="thmplain" data-ams-content-type="theorem conj" id="ltxid8" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1.3<ams-x>.</ams-x> Conjecture<ams-x>.</ams-x></span></figcaption>
63
+
64
+ <p>This is a conjecture.</p>
65
+ </figure>
66
+ <p>After conjecture</p>
67
+ <figure data-ams-style="thmmystyle" data-ams-content-type="theorem mytheorem" id="ltxid9" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1<ams-x>.</ams-x> My Theorem<ams-x>:</ams-x></span></figcaption>
68
+
69
+ <p>Theorem text.</p>
70
+ <p>Emphasized <em>theorem</em> text.</p>
71
+ </figure>
72
+ <p>After theorem.</p>
73
+ <figure data-ams-style="thmweird" data-ams-content-type="theorem weirdtheorem" id="ltxid10" data-ams-doc="statement"><figcaption><span data-ams-doc="label">1<ams-x>.</ams-x> Weird Theorem<ams-x>:</ams-x></span></figcaption>
74
+
75
+ <p>Theorem text.</p>
76
+ <p>Emphasized <em>theorem</em> text.</p>
77
+ </figure>
78
+ <p>After theorem.</p>
79
+ </section>
80
+
81
+ </section></body></html>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE article PUBLIC "-//AMS TEXML//DTD MODIFIED JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.3d2 20201130//EN" "texml-jats-1-3d2.dtd">
3
+ <article xmlns:xlink="http://www.w3.org/1999/xlink">
4
+ <front id="ltxid1">
5
+ <article-meta>
6
+ <title-group>
7
+ <article-title>amsthm</article-title>
8
+ </title-group>
9
+ </article-meta>
10
+ </front>
11
+ <body id="ltxid2">
12
+ <sec disp-level="1" id="ltxid3" specific-use="section">
13
+ <label>1<x>.</x></label>
14
+ <title>First section</title>
15
+ <statement content-type="theorem lem" id="ltxid4" style="thmplain">
16
+ <label>1<x>.</x> Lemma<x>.</x></label>
17
+ <p>This is a lemma.</p>
18
+ </statement>
19
+ <p>Before theorem.</p>
20
+ <statement content-type="theorem theorem" id="ltxid5" style="thmplain">
21
+ <label>1.1<x>.</x> Theorem<x>.</x></label>
22
+ <p>Theorem text.</p>
23
+ <p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
24
+ </statement>
25
+ <p><italic>After theorem.</italic></p>
26
+ <statement content-type="theorem theorem" id="ltxid6" style="thmplain">
27
+ <label>1.2<x>.</x> Theorem</label>
28
+ <title><x>(</x>Note<x>)</x><x>.</x></title>
29
+ <p>Theorem text. (currentlabel = 1.2)</p>
30
+ <p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
31
+ </statement>
32
+ <p>After theorem <xref-group><xref ref-subtype="theorem" ref-type="statement" rid="ltxid6" specific-use="ref">1.2</xref></xref-group>.</p>
33
+ <p>After theorem.</p>
34
+ <statement content-type="theorem theorem*" id="ltxid7" style="thmplain">
35
+ <label>Theorem<x>.</x></label>
36
+ <p>Theorem text.</p>
37
+ <p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
38
+ </statement>
39
+ <p>After theorem.</p>
40
+ <statement content-type="theorem conj" id="ltxid8" style="thmplain">
41
+ <label>1.3<x>.</x> Conjecture<x>.</x></label>
42
+ <p>This is a conjecture.</p>
43
+ </statement>
44
+ <p>After conjecture</p>
45
+ <statement content-type="theorem mytheorem" id="ltxid9" style="thmmystyle">
46
+ <label>1<x>.</x> My Theorem<x>:</x></label>
47
+ <p>Theorem text.</p>
48
+ <p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
49
+ </statement>
50
+ <p>After theorem.</p>
51
+ <statement content-type="theorem weirdtheorem" id="ltxid10" style="thmweird">
52
+ <label>1<x>.</x> Weird Theorem<x>:</x></label>
53
+ <p>Theorem text.</p>
54
+ <p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
55
+ </statement>
56
+ <p>After theorem.</p>
57
+ </sec>
58
+ </body>
59
+ </article>
@@ -0,0 +1,74 @@
1
+ <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>Sample book with appendix</title></head><body>
2
+ <section data-ams-doc="titlepage"><script type="application/json">{"book":{"identifiers":{"AMS":{},"crossref":{},"issn":{},"isbn":{},"loc":{},"basename":null},"title":"Sample book with appendix","alttitle":"Sample book with appendix"},"publishers":[],"contributors":{"authors":[{"name":"Jane Doe","bio":"","affiliations":[],"emails":[]}]},"permissions":{},"history":{}}</script></section>
3
+
4
+ <nav id="ltxid2" data-ams-doc-level="0" role="doc-toc"><h1><span data-ams-doc="title">Contents</span></h1><ol><li><a data-ams-ref="epub-opening-page" href="#ltxid3"><span data-ams-doc="title">Publisher’s Notice</span></a></li><li><a data-ams-ref="chapter" href="#ltxid5"><span data-ams-doc="label">Chapter 1<ams-x>.</ams-x></span> <span data-ams-doc="title">Chapter title</span></a><ol><li><a data-ams-ref="section" href="#ltxid6"><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Introduction</span></a></li></ol></li><li><a data-ams-ref="chapter" href="#ltxid9"><span data-ams-doc="label">Appendix A<ams-x>.</ams-x></span> <span data-ams-doc="title">Esoteric Secrets</span></a><ol><li><a data-ams-ref="section" href="#ltxid10"><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Appendix section</span></a></li></ol></li><li><a data-ams-ref="chapter" href="#ltxid12"><span data-ams-doc="title">Esotericer Secrets</span></a><ol><li><a data-ams-ref="section" href="#ltxid13"><span data-ams-doc="label">2<ams-x>.</ams-x></span> <span data-ams-doc="title">Another appendix section</span></a></li></ol></li><li><a data-ams-ref="chapter" href="#ltxid14"><span data-ams-doc="label">Appendix B<ams-x>.</ams-x></span> <span data-ams-doc="title">Esotericest Secrets</span></a><ol><li><a data-ams-ref="section" href="#ltxid15"><span data-ams-doc="title">Shout outs</span></a></li></ol></li></ol></nav>
5
+ <section data-ams-doc-level="0" data-ams-content-type="publishers-note" data-ams-doc="notes" data-ams-specific-use="epub-opening-page" id="ltxid3"><h1><span data-ams-doc="title">Publisher’s Notice</span></h1>
6
+
7
+ <p>The <a href="https://www.ams.org">American Mathematical Society</a> has provided this ebook to you without Digital Rights Management (DRM) software applied so that you can enjoy reading it on your personal devices. This ebook is for your personal use only and must not be made publicly available in any way. You may not copy, reproduce, or upload this ebook except to read it on your personal devices.</p>
8
+ </section>
9
+
10
+
11
+
12
+
13
+ <section role="doc-chapter" id="ltxid5" data-ams-doc="chapter" data-ams-doc-level="0"><h1><span data-ams-doc="label">Chapter 1</span> <span data-ams-doc="title">Chapter title</span></h1>
14
+
15
+
16
+ <section role="doc-introduction" id="ltxid6" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Introduction</span></h2>
17
+
18
+
19
+ <p>Here is some text.</p>
20
+ </section>
21
+ </section>
22
+
23
+
24
+
25
+
26
+ <section id="ltxid8" data-ams-doc="app-group" data-ams-doc-level="0">
27
+
28
+ <h1><span data-ams-doc="title">Appendixes</span></h1>
29
+
30
+ <section role="doc-appendix" id="ltxid9" data-ams-doc="chapter" data-ams-doc-level="0">
31
+
32
+ <h1><span data-ams-doc="label">Appendix A</span> <span data-ams-doc="title">Esoteric Secrets</span></h1>
33
+
34
+
35
+ <p>Some text.</p>
36
+ <section id="ltxid10" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">1<ams-x>.</ams-x></span> <span data-ams-doc="title">Appendix section</span></h2>
37
+
38
+
39
+ <p>Some text.</p>
40
+ <section id="ltxid11" data-ams-doc="subsection" data-ams-doc-level="2"><h3><span data-ams-doc="label">1.1<ams-x>.</ams-x></span> <span data-ams-doc="title">Appendix subsection<ams-x>.</ams-x></span></h3>
41
+
42
+
43
+ <p>Some text.</p>
44
+ </section>
45
+ </section>
46
+
47
+ </section>
48
+ <section role="doc-appendix" id="ltxid12" data-ams-doc="chapter" data-ams-doc-level="0">
49
+
50
+ <h1><span data-ams-doc="label">Appendix</span> <span data-ams-doc="title">Esotericer Secrets</span></h1>
51
+
52
+
53
+ <p>Some text.</p>
54
+ <section id="ltxid13" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">2<ams-x>.</ams-x></span> <span data-ams-doc="title">Another appendix section</span></h2>
55
+
56
+
57
+ <p>Some text.</p>
58
+ </section>
59
+
60
+ </section>
61
+ <section role="doc-appendix" id="ltxid14" data-ams-doc="chapter" data-ams-doc-level="0">
62
+
63
+ <h1><span data-ams-doc="label">Appendix B</span> <span data-ams-doc="title">Esotericest Secrets</span></h1>
64
+
65
+
66
+ <p>Here is the real truth.</p>
67
+
68
+ </section>
69
+ </section>
70
+ <section role="doc-acknowledgments" id="ltxid15" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="title">Shout outs</span></h2>
71
+
72
+ </section>
73
+
74
+ </body></html>