@amermathsoc/texml-to-html 18.6.0 → 19.0.0
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.
- package/CHANGELOG.md +18 -0
- package/README.md +43 -3
- package/lib/elements/sec.js +4 -1
- package/lib/elements/toc-entry.js +1 -0
- package/lib/elements/toc.js +1 -1
- package/lib/transformer.js +12 -0
- package/package.json +2 -2
- package/test/book--metadata.xml +2 -2
- package/test/book.xml +3 -3
- package/test/element-toc-toc-entry.js +14 -3
- package/test/snapshots/book.html +1 -1
- package/test/snapshots/texml-tests/amsart.html +4 -1
- package/test/snapshots/texml-tests/amsart.xml +4 -0
- package/test/snapshots/texml-tests/amsbook.html +22 -0
- package/test/snapshots/texml-tests/amsbook.xml +61 -0
- package/test/snapshots/texml-tests/amscyr.html +2 -6
- package/test/snapshots/texml-tests/amscyr.xml +4 -8
- package/test/snapshots/texml-tests/amsfonts.html +1 -3
- package/test/snapshots/texml-tests/amsfonts.xml +2 -4
- package/test/snapshots/texml-tests/amsthm.html +1 -3
- package/test/snapshots/texml-tests/amsthm.xml +1 -3
- package/test/snapshots/texml-tests/appendix-book.html +74 -0
- package/test/snapshots/texml-tests/appendix-book.xml +142 -0
- package/test/snapshots/texml-tests/article.html +58 -0
- package/test/snapshots/texml-tests/article.xml +30 -0
- package/test/snapshots/texml-tests/autoref.html +3 -7
- package/test/snapshots/texml-tests/autoref.xml +4 -8
- package/test/snapshots/texml-tests/begincsname.html +2 -6
- package/test/snapshots/texml-tests/begincsname.xml +2 -6
- package/test/snapshots/texml-tests/book-app.html +0 -1
- package/test/snapshots/texml-tests/book-app.xml +1 -4
- package/test/snapshots/texml-tests/book.html +31 -0
- package/test/snapshots/texml-tests/book.xml +81 -0
- package/test/snapshots/texml-tests/booktabs.xml +1 -1
- package/test/snapshots/texml-tests/cases.html +4 -8
- package/test/snapshots/texml-tests/cases.xml +4 -8
- package/test/snapshots/texml-tests/ccicons.html +65 -0
- package/test/snapshots/texml-tests/ccicons.xml +43 -0
- package/test/snapshots/texml-tests/cite.html +1 -3
- package/test/snapshots/texml-tests/cite.xml +1 -3
- package/test/snapshots/texml-tests/citesort.html +7 -21
- package/test/snapshots/texml-tests/citesort.xml +7 -21
- package/test/snapshots/texml-tests/cleveref.html +38 -7
- package/test/snapshots/texml-tests/cleveref.xml +38 -7
- package/test/snapshots/texml-tests/csstring.html +2 -6
- package/test/snapshots/texml-tests/csstring.xml +2 -6
- package/test/snapshots/texml-tests/detokenize.html +6 -18
- package/test/snapshots/texml-tests/detokenize.xml +6 -18
- package/test/snapshots/texml-tests/drm.xml +6 -2
- package/test/snapshots/texml-tests/edef.html +2 -6
- package/test/snapshots/texml-tests/edef.xml +2 -6
- package/test/snapshots/texml-tests/empheq.html +2 -4
- package/test/snapshots/texml-tests/empheq.xml +2 -4
- package/test/snapshots/texml-tests/enclose.html +8 -24
- package/test/snapshots/texml-tests/enclose.xml +16 -32
- package/test/snapshots/texml-tests/expanded.html +2 -6
- package/test/snapshots/texml-tests/expanded.xml +2 -6
- package/test/snapshots/texml-tests/footnote.xml +1 -1
- package/test/snapshots/texml-tests/frac.html +2 -6
- package/test/snapshots/texml-tests/frac.xml +4 -8
- package/test/snapshots/texml-tests/graphics.html +7 -5
- package/test/snapshots/texml-tests/graphics.xml +7 -5
- package/test/snapshots/texml-tests/graphicx.html +14 -0
- package/test/snapshots/texml-tests/graphicx.xml +18 -0
- package/test/snapshots/texml-tests/gsm_l.html +26 -19
- package/test/snapshots/texml-tests/gsm_l.xml +80 -51
- package/test/snapshots/texml-tests/hbox.html +3 -7
- package/test/snapshots/texml-tests/hbox.xml +4 -8
- package/test/snapshots/texml-tests/hhline2.html +9 -0
- package/test/snapshots/texml-tests/hhline2.xml +11 -0
- package/test/snapshots/texml-tests/href.html +1 -3
- package/test/snapshots/texml-tests/href.xml +1 -3
- package/test/snapshots/texml-tests/hyperams.html +1 -3
- package/test/snapshots/texml-tests/hyperams.xml +1 -3
- package/test/snapshots/texml-tests/immediateassigned.html +2 -6
- package/test/snapshots/texml-tests/immediateassigned.xml +2 -6
- package/test/snapshots/texml-tests/immediateassignment.html +2 -6
- package/test/snapshots/texml-tests/immediateassignment.xml +2 -6
- package/test/snapshots/texml-tests/ltxthm.html +2 -2
- package/test/snapshots/texml-tests/ltxthm.xml +3 -3
- package/test/snapshots/texml-tests/maketitle.html +12 -6
- package/test/snapshots/texml-tests/maketitle.xml +9 -11
- package/test/snapshots/texml-tests/math.html +7 -21
- package/test/snapshots/texml-tests/math.xml +12 -26
- package/test/snapshots/texml-tests/meaning.html +2 -6
- package/test/snapshots/texml-tests/meaning.xml +2 -6
- package/test/snapshots/texml-tests/multline.html +8 -16
- package/test/snapshots/texml-tests/multline.xml +8 -16
- package/test/snapshots/texml-tests/noexpand.html +2 -6
- package/test/snapshots/texml-tests/noexpand.xml +2 -6
- package/test/snapshots/texml-tests/protected.html +3 -9
- package/test/snapshots/texml-tests/protected.xml +3 -9
- package/test/snapshots/texml-tests/ref.html +20 -0
- package/test/snapshots/texml-tests/ref.xml +23 -0
- package/test/snapshots/texml-tests/refrange.html +12 -24
- package/test/snapshots/texml-tests/refrange.xml +12 -24
- package/test/snapshots/texml-tests/showonlyrefs.html +14 -28
- package/test/snapshots/texml-tests/showonlyrefs.xml +14 -28
- package/test/snapshots/texml-tests/smash.html +1 -3
- package/test/snapshots/texml-tests/smash.xml +2 -4
- package/test/snapshots/texml-tests/string.html +2 -6
- package/test/snapshots/texml-tests/string.xml +2 -6
- package/test/snapshots/texml-tests/tableofcontents.html +1 -1
- package/test/snapshots/texml-tests/tableofcontents.xml +2 -2
- package/test/snapshots/texml-tests/tag.html +4 -8
- package/test/snapshots/texml-tests/tag.xml +4 -8
- package/test/snapshots/texml-tests/thm-restate.html +2 -4
- package/test/snapshots/texml-tests/thm-restate.xml +2 -4
- package/test/snapshots/texml-tests/unexpanded.html +2 -6
- package/test/snapshots/texml-tests/unexpanded.xml +2 -6
- package/test/snapshots/texml-tests/uri.html +3 -7
- package/test/snapshots/texml-tests/uri.xml +3 -7
- package/test/snapshots/texml-tests/verb.html +42 -0
- package/test/snapshots/texml-tests/verb.xml +20 -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.0](https://github.com/AmerMathSoc/texml-to-html/compare/v18.7.0...v19.0.0) (2025-11-26)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* Expects new texml TOC markup (toc-title-group).
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* 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)
|
|
15
|
+
|
|
16
|
+
## [18.7.0](https://github.com/AmerMathSoc/texml-to-html/compare/v18.6.0...v18.7.0) (2025-07-02)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **toc-entry.js:** preserve style attribute ([1e500e9](https://github.com/AmerMathSoc/texml-to-html/commit/1e500e9d3a1a6ad87878c69759fe0449ba8b033b)), closes [#484](https://github.com/AmerMathSoc/texml-to-html/issues/484)
|
|
22
|
+
|
|
5
23
|
## [18.6.0](https://github.com/AmerMathSoc/texml-to-html/compare/v18.5.0...v18.6.0) (2025-06-12)
|
|
6
24
|
|
|
7
25
|
|
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ Beyond HTML element and attributes, texml-to-html stores data in custom `data-*`
|
|
|
133
133
|
- underline
|
|
134
134
|
- {disp-quote@specific-use}
|
|
135
135
|
- (inline-)graphic{@specific-use}
|
|
136
|
-
- {@style} [expected: theorem styles, sec styles]
|
|
136
|
+
- {@style} [expected: theorem styles, sec styles, toc-entry]
|
|
137
137
|
- boxed (from boxed-text)
|
|
138
138
|
- data-ams-ref
|
|
139
139
|
- {@ref-type} [expected: bibr, fn, disp-formula, sec, fig, table, algorithm, list, statement]
|
|
@@ -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
|
|
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-#
|
|
@@ -248,6 +248,7 @@ The following provide a list from the reverse point of view.
|
|
|
248
248
|
- @notes-type => @data-ams-content-type (and role=dedication for dedications)
|
|
249
249
|
- use cases: dedication (articles), article and section notes (NOTI only), drm notice & epub note (books)
|
|
250
250
|
- toc-entry@specific-use => data-ams-ref
|
|
251
|
+
- toc-entry@style => data-ams-style
|
|
251
252
|
- attrib => data-ams-doc="attribution"
|
|
252
253
|
- attributes
|
|
253
254
|
- @disp-level => data-ams-doc-level [data-ams-doc-level is also added to some elements that lack disp-level]
|
|
@@ -328,12 +329,16 @@ For books:
|
|
|
328
329
|
|
|
329
330
|
**Note.** There is some overlap with other sections of this document. Ensure that updates are consistent across the document.
|
|
330
331
|
|
|
331
|
-
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
|
|
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.
|
|
332
335
|
|
|
333
336
|
#### xref
|
|
334
337
|
|
|
335
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.
|
|
336
339
|
|
|
340
|
+
Furthermore, xref-group and cite-group will pass through and may need to be stripped for MathJax processing.
|
|
341
|
+
|
|
337
342
|
#### text inside math mode
|
|
338
343
|
|
|
339
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.
|
|
@@ -382,3 +387,38 @@ We convert the markup to HTML custom elements with attributes. Further processin
|
|
|
382
387
|
- alg:repeat
|
|
383
388
|
- alg:until
|
|
384
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)
|
package/lib/elements/sec.js
CHANGED
|
@@ -82,7 +82,10 @@ export default function (htmlParentNode, xmlnode) {
|
|
|
82
82
|
if (tagName === 'book-app-group') {
|
|
83
83
|
section.setAttribute('data-ams-doc', 'app-group');
|
|
84
84
|
}
|
|
85
|
-
if (tagName === 'book-app' && !xmlnode.parentNode.closest('book-app'))
|
|
85
|
+
if (tagName === 'book-app' && !xmlnode.parentNode.closest('book-app')) {
|
|
86
|
+
section.setAttribute('role', 'doc-appendix'); // TODO: revisit after AmerMathSoc/texml#223
|
|
87
|
+
// section.setAttribute('data-ams-doc-level', '0')
|
|
88
|
+
}
|
|
86
89
|
|
|
87
90
|
this.createHeading(section, xmlnode);
|
|
88
91
|
this.passThrough(section, xmlnode);
|
|
@@ -26,6 +26,7 @@ export default function (htmlParentNode, xmlnode) {
|
|
|
26
26
|
href: `#${xmlnode.querySelector('nav-pointer').getAttribute('rid')}`,
|
|
27
27
|
"data-ams-ref": xmlnode.getAttribute('specific-use') // NOTE: specific-use contains `ref@ref-type`-like information (e.g., 'chapter', 'section')
|
|
28
28
|
});
|
|
29
|
+
if (xmlnode.hasAttribute('style')) anchor.setAttribute('data-ams-style', xmlnode.getAttribute('style'));
|
|
29
30
|
li.appendChild(anchor);
|
|
30
31
|
// NOTE: label/title handling must stay aligned with other cases
|
|
31
32
|
const label = xmlnode.querySelector(':scope>label');
|
package/lib/elements/toc.js
CHANGED
|
@@ -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]
|
package/lib/transformer.js
CHANGED
|
@@ -208,6 +208,17 @@ export class Transformer {
|
|
|
208
208
|
this.passThrough(span, xmlnode);
|
|
209
209
|
return span.innerHTML.trim();
|
|
210
210
|
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Recursion hack for metadata generation
|
|
214
|
+
* @param {Node} xmlnode
|
|
215
|
+
* @returns {String}
|
|
216
|
+
*/
|
|
217
|
+
recurseTheDomIntoHTMLString = xmlnode => {
|
|
218
|
+
const span = this.createNode('span');
|
|
219
|
+
this.recurseTheDom(span, xmlnode);
|
|
220
|
+
return span.innerHTML.trim();
|
|
221
|
+
}
|
|
211
222
|
|
|
212
223
|
createHeading = (section, xmlnode) => { // create heading structure
|
|
213
224
|
const label = xmlnode.querySelector(':scope>label:not(:empty)');
|
|
@@ -305,6 +316,7 @@ export class Transformer {
|
|
|
305
316
|
'cite-group' = CiteGroup.bind(this)
|
|
306
317
|
'cite-detail' = CiteDetail.bind(this)
|
|
307
318
|
'title-group' = TitleGroup.bind(this)
|
|
319
|
+
'toc-title-group' = TitleGroup.bind(this)
|
|
308
320
|
|
|
309
321
|
// one-off reuse of imported elements
|
|
310
322
|
// 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": "
|
|
3
|
+
"version": "19.0.0",
|
|
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/* &&
|
|
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
|
},
|
package/test/book--metadata.xml
CHANGED
|
@@ -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,10 +88,10 @@
|
|
|
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>
|
|
94
|
-
<toc-entry specific-use="chapter">
|
|
93
|
+
</toc-title-group>
|
|
94
|
+
<toc-entry specific-use="chapter" style="custom">
|
|
95
95
|
<title>Chunk</title>
|
|
96
96
|
<nav-pointer rid="tocid1"/>
|
|
97
97
|
</toc-entry>
|
|
@@ -18,7 +18,7 @@ import { book } from './helper.js';
|
|
|
18
18
|
import tape from 'tape';
|
|
19
19
|
|
|
20
20
|
tape('Template: (book) toc, toc-entry', async function (t) {
|
|
21
|
-
t.plan(
|
|
21
|
+
t.plan(16);
|
|
22
22
|
const document = book;
|
|
23
23
|
|
|
24
24
|
const toc = document.querySelector('nav[role="doc-toc"]#toc');
|
|
@@ -28,10 +28,21 @@ tape('Template: (book) toc, toc-entry', async function (t) {
|
|
|
28
28
|
const list = toc.querySelector('ol');
|
|
29
29
|
t.ok(list, 'toc: ordered list');
|
|
30
30
|
t.equal(list.children.length, 6, 'Nested toc-entries remain nested')
|
|
31
|
+
const toc1 = list.querySelector('li a[href="#tocid1"]');
|
|
31
32
|
t.equal(
|
|
32
|
-
|
|
33
|
+
toc1.innerHTML,
|
|
33
34
|
'<span data-ams-doc="title">Chunk</span>',
|
|
34
|
-
'toc-entry and nav-pointer
|
|
35
|
+
'toc-entry and nav-pointer creates link'
|
|
36
|
+
);
|
|
37
|
+
t.equal(
|
|
38
|
+
toc1.getAttribute('data-ams-ref'),
|
|
39
|
+
'chapter',
|
|
40
|
+
'toc-entry and nav-pointer creates link with data-ams-ref'
|
|
41
|
+
);
|
|
42
|
+
t.equal(
|
|
43
|
+
toc1.getAttribute('data-ams-style'),
|
|
44
|
+
'custom',
|
|
45
|
+
'toc-entry and nav-pointer creates link with data-ams-style'
|
|
35
46
|
);
|
|
36
47
|
t.equal(
|
|
37
48
|
list.querySelector('li a[href="#tocid2"]').innerHTML,
|
package/test/snapshots/book.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<section data-ams-doc="titlepage"><script type="application/json">{"book":{"identifiers":{"AMS":{"publKey":"series","volumeId":"volume","volumeNr":"volume"},"crossref":{"doi":"doi"},"issn":{"print":"issn print"},"isbn":{"electronic":"isbn pdf","google":"isbn google pdf","print":"isbn print","epub":"isbn epub"},"loc":{"lccn":"0123456789"},"basename":"seriesvolume"},"title":"title","subtitle":"subtitle","alttitle":"title"},"publishers":[{"name":"name1","location":"loc"},{"name":"name2"}],"contributors":{"authors":[{"name":"Given Sur Jr.","bio":"","affiliations":["aff"],"emails":["email"],"mrauth":"mrauthid","orcid":"orcidid","uri":"uri","byline":"comment"}],"contrib-group-type2":[{"name":"Given Sur","bio":"","affiliations":[],"emails":[]}],"contrib-group-type3":[{"name":"String Name","bio":"","affiliations":[],"emails":[],"byline":"comment"}]},"permissions":{"copyrightStatement":"Copyright 2020 American Mathematical Society"},"history":{"published":"2025-04-25"},"collection":{"title":"Collection Title","subseries":"subseriesName","contributors":{}}}</script></section>
|
|
4
4
|
|
|
5
|
-
<nav id="toc" data-ams-doc-level="0" role="doc-toc"><h1><span data-ams-doc="title">Contents</span></h1><ol><li><a data-ams-ref="chapter" href="#tocid1"><span data-ams-doc="title">Chunk</span></a></li><li><a data-ams-ref="null" href="#tocid2"><span data-ams-doc="label">2<ams-x>.</ams-x></span> <span data-ams-doc="title">Chunk</span></a><ol><li><a data-ams-ref="null" href="#tocid3"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubChunk</span></a><ol><li><a data-ams-ref="null" href="#tocid4"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubSubChunk with <span data-ams-href="chapter">Link</span></span></a></li></ol></li></ol></li><li><a data-ams-doc-alttitle="Alt title" data-ams-ref="null" href="#tocid5"><span data-ams-doc="title">Chunk with alt title</span></a></li><li><a data-ams-ref="null" href="#tocid6"><span data-ams-doc="title">Chunk without label but subchunk with label</span></a><ol><li><a data-ams-ref="null" href="#tocid7"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubChunk</span></a></li></ol></li><li><a data-ams-ref="null" href="#tocid8"><span data-ams-doc="title">Chunk with contrib</span></a><br><em>Chapter Author</em></li><li><a data-ams-ref="null" href="#tocid9"><span data-ams-doc="title">Chunk with multiple contribs</span></a><br><em>Chapter Author</em>, <em>A Nother Author</em></li></ol></nav>
|
|
5
|
+
<nav id="toc" data-ams-doc-level="0" role="doc-toc"><h1><span data-ams-doc="title">Contents</span></h1><ol><li><a data-ams-style="custom" data-ams-ref="chapter" href="#tocid1"><span data-ams-doc="title">Chunk</span></a></li><li><a data-ams-ref="null" href="#tocid2"><span data-ams-doc="label">2<ams-x>.</ams-x></span> <span data-ams-doc="title">Chunk</span></a><ol><li><a data-ams-ref="null" href="#tocid3"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubChunk</span></a><ol><li><a data-ams-ref="null" href="#tocid4"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubSubChunk with <span data-ams-href="chapter">Link</span></span></a></li></ol></li></ol></li><li><a data-ams-doc-alttitle="Alt title" data-ams-ref="null" href="#tocid5"><span data-ams-doc="title">Chunk with alt title</span></a></li><li><a data-ams-ref="null" href="#tocid6"><span data-ams-doc="title">Chunk without label but subchunk with label</span></a><ol><li><a data-ams-ref="null" href="#tocid7"><span data-ams-doc="label">1</span> <span data-ams-doc="title">SubChunk</span></a></li></ol></li><li><a data-ams-ref="null" href="#tocid8"><span data-ams-doc="title">Chunk with contrib</span></a><br><em>Chapter Author</em></li><li><a data-ams-ref="null" href="#tocid9"><span data-ams-doc="title">Chunk with multiple contribs</span></a><br><em>Chapter Author</em>, <em>A Nother Author</em></li></ol></nav>
|
|
6
6
|
<section data-ams-doc-level="0" data-ams-content-type="publishers-note" data-ams-doc="notes" data-ams-specific-use="epub-opening-page"><h1><span data-ams-doc="title">Publisher's Notice</span></h1>
|
|
7
7
|
|
|
8
8
|
<p>Some notes.
|
|
@@ -55,7 +55,10 @@
|
|
|
55
55
|
}</script><h1>Sample article</h1><section role="doc-abstract" data-ams-doc-level="1"><h2><span data-ams-doc="title">Abstract<ams-x>.</ams-x></span></h2>
|
|
56
56
|
|
|
57
57
|
<p>Abstract text goes here.</p>
|
|
58
|
-
</section
|
|
58
|
+
</section><div data-ams-doc="funding-group">
|
|
59
|
+
<p>The first author’s research was supported by...</p>
|
|
60
|
+
<p>The second author’s research was supported by...</p>
|
|
61
|
+
</div></section>
|
|
59
62
|
|
|
60
63
|
<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>
|
|
61
64
|
|
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
<title>Abstract<x>.</x></title>
|
|
28
28
|
<p>Abstract text goes here.</p>
|
|
29
29
|
</abstract>
|
|
30
|
+
<funding-group>
|
|
31
|
+
<funding-statement>The first author’s research was supported by...</funding-statement>
|
|
32
|
+
<funding-statement>The second author’s research was supported by...</funding-statement>
|
|
33
|
+
</funding-group>
|
|
30
34
|
</article-meta>
|
|
31
35
|
</front>
|
|
32
36
|
<body id="ltxid2">
|
|
@@ -0,0 +1,22 @@
|
|
|
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>
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
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="{"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/"}]}" 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>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
<p>Here is some text.</p>
|
|
18
|
+
</section>
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</body></html>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE book PUBLIC "-//NLM//DTD BITS Book Interchange DTD v2.1 20180401//EN" "BITS-book2.dtd">
|
|
3
|
+
<book xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
4
|
+
<book-meta>
|
|
5
|
+
<book-title-group>
|
|
6
|
+
<article-title>Sample book</article-title>
|
|
7
|
+
</book-title-group>
|
|
8
|
+
<contrib-group content-type="authors">
|
|
9
|
+
<contrib contrib-type="author">
|
|
10
|
+
<string-name>Jane Doe</string-name>
|
|
11
|
+
<contrib-id contrib-id-type="orcid">ORCID id</contrib-id>
|
|
12
|
+
<contrib-id contrib-id-type="mrauth">MR author id</contrib-id>
|
|
13
|
+
<aff>First author’s address</aff>
|
|
14
|
+
<aff specific-use="current">First author’s current address</aff>
|
|
15
|
+
<email>jane.doe@nowhere</email>
|
|
16
|
+
<uri>https://www.ams.org/</uri>
|
|
17
|
+
</contrib>
|
|
18
|
+
<contrib contrib-type="author">
|
|
19
|
+
<string-name>John Bull</string-name>
|
|
20
|
+
<aff>Second author’s address</aff>
|
|
21
|
+
<email>john.bull@nowhere</email>
|
|
22
|
+
<uri>https://www.ams.org/</uri>
|
|
23
|
+
</contrib>
|
|
24
|
+
</contrib-group>
|
|
25
|
+
</book-meta>
|
|
26
|
+
<front-matter id="ltxid1"/>
|
|
27
|
+
<book-body id="ltxid2">
|
|
28
|
+
<book-part>
|
|
29
|
+
<body>
|
|
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
|
+
<label>1<x>.</x></label>
|
|
55
|
+
<title>Introduction</title>
|
|
56
|
+
<p>Here is some text.</p>
|
|
57
|
+
</sec>
|
|
58
|
+
</body>
|
|
59
|
+
</book-part>
|
|
60
|
+
</book-body>
|
|
61
|
+
</book>
|
|
@@ -41,12 +41,8 @@
|
|
|
41
41
|
<p>Dz: Ѕ</p>
|
|
42
42
|
<p>dzh: џ</p>
|
|
43
43
|
<p>Dzh: Џ</p>
|
|
44
|
-
<p>
|
|
45
|
-
|
|
46
|
-
</p>
|
|
47
|
-
<p>
|
|
48
|
-
<span data-ams-doc="math inline"><tex-math>Л = \mathrm{Ш}+ 1</tex-math></span>
|
|
49
|
-
</p>
|
|
44
|
+
<p><span data-ams-doc="math inline"><tex-math>\mathrm{Ш}</tex-math></span></p>
|
|
45
|
+
<p><span data-ams-doc="math inline"><tex-math>Л = \mathrm{Ш}+ 1</tex-math></span></p>
|
|
50
46
|
<p>Л</p>
|
|
51
47
|
</section>
|
|
52
48
|
|
|
@@ -19,16 +19,12 @@
|
|
|
19
19
|
<p>Dz: Ѕ</p>
|
|
20
20
|
<p>dzh: џ</p>
|
|
21
21
|
<p>Dzh: Џ</p>
|
|
22
|
-
<p>
|
|
23
|
-
<inline-formula content-type="math/tex">
|
|
22
|
+
<p><inline-formula content-type="math/tex">
|
|
24
23
|
<tex-math>\mathrm{Ш}</tex-math>
|
|
25
|
-
</inline-formula>
|
|
26
|
-
|
|
27
|
-
<p>
|
|
28
|
-
<inline-formula content-type="math/tex">
|
|
24
|
+
</inline-formula></p>
|
|
25
|
+
<p><inline-formula content-type="math/tex">
|
|
29
26
|
<tex-math>Л = \mathrm{Ш}+ 1</tex-math>
|
|
30
|
-
</inline-formula>
|
|
31
|
-
</p>
|
|
27
|
+
</inline-formula></p>
|
|
32
28
|
<p>Л</p>
|
|
33
29
|
</sec>
|
|
34
30
|
</body>
|
|
@@ -33,9 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
<section id="ltxid3" data-ams-doc="section" data-ams-doc-level="1">
|
|
35
35
|
<p>hello, world</p>
|
|
36
|
-
<p>
|
|
37
|
-
<span data-ams-doc="math inline"><tex-math>\rightsquigarrow </tex-math></span>
|
|
38
|
-
</p>
|
|
36
|
+
<p><span data-ams-doc="math inline"><tex-math>\rightsquigarrow </tex-math></span></p>
|
|
39
37
|
</section>
|
|
40
38
|
|
|
41
39
|
</section></body></html>
|
|
@@ -11,11 +11,9 @@
|
|
|
11
11
|
<body id="ltxid2">
|
|
12
12
|
<sec disp-level="1" id="ltxid3" specific-use="section">
|
|
13
13
|
<p>hello, world</p>
|
|
14
|
-
<p>
|
|
15
|
-
<inline-formula content-type="math/tex">
|
|
14
|
+
<p><inline-formula content-type="math/tex">
|
|
16
15
|
<tex-math>\rightsquigarrow </tex-math>
|
|
17
|
-
</inline-formula>
|
|
18
|
-
</p>
|
|
16
|
+
</inline-formula></p>
|
|
19
17
|
</sec>
|
|
20
18
|
</body>
|
|
21
19
|
</article>
|
|
@@ -44,9 +44,7 @@
|
|
|
44
44
|
<p>Theorem text.</p>
|
|
45
45
|
<p>Emphasized <em>theorem</em> text.</p>
|
|
46
46
|
</figure>
|
|
47
|
-
<p>
|
|
48
|
-
<i>After theorem.</i>
|
|
49
|
-
</p>
|
|
47
|
+
<p><i>After theorem.</i></p>
|
|
50
48
|
<figure data-ams-style="thmplain" data-ams-content-type="theorem theorem" id="ltxid6" data-ams-doc="statement"><figcaption><span data-ams-doc="label">Theorem 1.2</span> <span data-ams-doc="title"><ams-x>(</ams-x>Note<ams-x>)</ams-x><ams-x>.</ams-x></span></figcaption>
|
|
51
49
|
|
|
52
50
|
|
|
@@ -22,9 +22,7 @@
|
|
|
22
22
|
<p>Theorem text.</p>
|
|
23
23
|
<p>Emphasized <italic toggle="yes">theorem</italic> text.</p>
|
|
24
24
|
</statement>
|
|
25
|
-
<p>
|
|
26
|
-
<italic>After theorem.</italic>
|
|
27
|
-
</p>
|
|
25
|
+
<p><italic>After theorem.</italic></p>
|
|
28
26
|
<statement content-type="theorem theorem" id="ltxid6" style="thmplain">
|
|
29
27
|
<label>Theorem 1.2</label>
|
|
30
28
|
<title><x>(</x>Note<x>)</x><x>.</x></title>
|
|
@@ -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="book-app" 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="book-app" 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="book-app" 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="null" data-ams-doc-level="5">
|
|
31
|
+
|
|
32
|
+
<h6><span data-ams-doc="label">Appendix A</span> <span data-ams-doc="title">Esoteric Secrets</span></h6>
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<p>Some text.</p>
|
|
36
|
+
<section data-ams-specific-use="section" id="ltxid10" data-ams-doc-level="1" role="doc-appendix"><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="null" data-ams-doc-level="5">
|
|
49
|
+
|
|
50
|
+
<h6><span data-ams-doc="label">Appendix</span> <span data-ams-doc="title">Esotericer Secrets</span></h6>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
<p>Some text.</p>
|
|
54
|
+
<section data-ams-specific-use="section" id="ltxid13" data-ams-doc-level="1" role="doc-appendix"><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="null" data-ams-doc-level="5">
|
|
62
|
+
|
|
63
|
+
<h6><span data-ams-doc="label">Appendix B</span> <span data-ams-doc="title">Esotericest Secrets</span></h6>
|
|
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>
|