Enscribe
Enscribe and JATS The Enscribe Project

If you write for journals, the question that matters about any authoring tool is narrow and concrete: can I submit what I produce? For a growing share of scholarly publishing, “what I produce” has to become JATS XML at some point in the pipeline. This article explains what JATS is, how Enscribe relates to it, and exactly what Enscribe’s JATS export does today — confident about what works, honest about what does not yet.

What JATS is, and why it matters

JATS — the Journal Article Tag Suite — is a NISO standard (ANSI/NISO Z39.96) that defines an XML vocabulary for scholarly articles: title and authors, affiliations, abstract, sections, figures, tables, math, references, and the rest of the apparatus a research article carries. It is the lingua franca of the publishing back end. PubMed Central (U.S. National Library of Medicine, 2024) ingests and archives articles as JATS; publishers, aggregators, and institutional repositories exchange them as JATS; preservation systems store them as JATS. If your work ends up in any of those places, it ends up as JATS XML.

The crucial thing to understand is what JATS is for. It is an archival and interchange format, not an authoring one. A JATS document is not something a person writes by hand — it is verbose, attribute-heavy XML that a machine emits and another machine reads. It also has no native display: a JATS file needs a stylesheet or a viewer to become a readable page. JATS answers “how do we deposit, exchange, and preserve this article?” — never “how do I write it?”

JATS is also vast. Two decades of refinement have given it well over two hundred elements, many for cases a given article never touches, and it is built for completeness rather than for writing or display. Enscribe does not try to mirror all of it. eHTML — Enscribe’s canonical form — is a small, displayable, authorable HTML vocabulary, on the order of thirty elements covering what most articles actually use, chosen so that what is present translates cleanly outward. That is the trade that makes a direct export possible: a smaller, HTML-shaped vocabulary that maps cleanly to JATS at every point of contact, with the export carrying the translation.

That gap is the whole point of contact with Enscribe. Enscribe is an authoring layer; JATS is a deposit target. The interesting question is how cleanly the one reaches the other.

What Enscribe’s JATS export does

Enscribe’s canonical form — eHTML, the semantic-HTML representation every Enscribe document compiles to — is deliberately shaped to be JATS-aligned (see the Design article for why). Because the vocabulary was designed against the JATS tag set, the export is mostly a set of one-to-one element renames rather than a lossy transformation. The exporter emits JATS 1.3 Archiving XML, with the correct DOCTYPE and dtd-version="1.3". That correctness is checked, not assumed: the export’s test fixtures are validated against the JATS (and BITS) DTD with xmllint, so the exporter is held to valid JATS — measured against the schema, not merely plausible to the eye.

What maps cleanly — that is, structure-for-structure, no information lost:

Table 1. How Enscribe’s eHTML elements map to JATS.
Enscribe (eHTML) JATS
sections / sub-sections nested <sec> with <title>
bold / italic / inline code <bold> / <italic> / <monospace>
title / subtitle / authors <article-title> / <subtitle> / <contrib><string-name>
figures <fig> with <caption> and <graphic>
tables <table-wrap>
inline and display math <inline-formula> / <disp-formula> (TeX preserved)
footnotes <fn> in a <fn-group>
cross-references <xref> with the right ref-type
citations <xref ref-type=”bibr”> plus a <ref-list> of <element-citation>

The table is a sample, not the full scope: the export also carries links (<a><ext-link>), inline <svg> (→ a self-contained <graphic>), and the theorem family, the external-DSL blocks, and code listings.

The one place that maps with a caveat is embedded DSL blocks — Mermaid diagrams, ABC music. JATS has no element for “a Mermaid diagram,” so Enscribe preserves the source rather than inventing a rendering: a <mermaid> block exports as a <fig> carrying a <preformat content-type="mermaid-source"> with the verbatim diagram source and a specific-use="enscribe-dsl-mermaid" marker. Nothing is lost — a downstream consumer that understands the marker can render it — but the diagram travels as source, not as a finished image.1

Finally, Enscribe draws the same article-versus-book line the standard does. An article exports to JATS 1.3; a book<meta type=book>, with chapters and parts — exports to BITS 2.0 (U.S. National Library of Medicine, 2016), the Book Interchange Tag Suite, with <book>, <book-meta>, and <book-part> wrappers and the BITS DOCTYPE. Same authoring surface, the correct deposit format for each shape.

The round-trip vision

Export is the half that lets an Enscribe document reach a journal. The other half is the round trip — write in Enscribe, export to JATS for submission, and import JATS from the published corpus back into Enscribe for re-use, correction, or re-display. Both directions now exist: the enscribe import-jats command brings a JATS article into Enscribe — rendered HTML, or canonical .emd source.

Import is deliberately the weaker direction: JATS’s vocabulary is far larger than eHTML’s, so it is acknowledged-lossy — a one-way conversion that applies necessary simplifications, useful as an on-ramp from the existing literature, not a faithful reconstruction. (The only lossless round trip in Enscribe is between its shorthand and eHTML, which are the same document in two notations.) The importer maps what maps — structure, inline formatting, math, citations, figures, tables, cross-references, footnotes, and the theorem family — preserves reader-facing apparatus such as abstracts, keywords, and acknowledgments, and drops pure publishing metadata, warning about anything it does not recognize.

Import lets a published article — otherwise locked in JATS at a publisher or an archive — be pulled back into editable Enscribe source: to correct an erratum, to re-display it on the open web without a JATS viewer, or to build on it. For a live demonstration, see the demo papers — real published articles from a spread of publishers, converted into Enscribe automatically by enscribe import-jats.

A worked example

Concrete beats abstract. Here is a short Enscribe fragment:

<meta type=article>
  <title | Calibrating Predicted Probabilities>
  <author | Dana Okonkwo>
</meta>

<# #sec:method | Method #>

We minimise the loss $\mathcal{L}(\theta)$ on a held-out
split.<note | The split is stratified by class.> The procedure
is summarised in <ref @fig:flow>.

<fig #fig:flow src="flow.svg" | The calibration workflow.>

And here is the JATS the exporter produces from it — the <front> generated from <meta>, the body and back from the content:

<article article-type="research-article" xml:lang="en" dtd-version="1.3">
  <front>
    <article-meta>
      <title-group><article-title>Calibrating Predicted Probabilities</article-title></title-group>
      <contrib-group>
        <contrib contrib-type="author"><string-name>Dana Okonkwo</string-name></contrib>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec>
      <title>Method</title>
      <p>We minimise the loss <inline-formula><tex-math><![CDATA[\mathcal{L}(\theta)]]></tex-math></inline-formula>
      on a held-out split.<xref ref-type="fn" rid="note-1">1</xref> The procedure
      is summarised in <xref ref-type="fig" rid="fig:flow">figure 1</xref>.</p>
      <fig id="fig:flow">
        <label>1</label>
        <caption><p>The calibration workflow.</p></caption>
        <graphic xlink:href="flow.svg"/>
      </fig>
    </sec>
  </body>
  <back>
    <fn-group content-type="endnotes">
      <fn id="note-1"><label>1</label><p>The split is stratified by class.</p></fn>
    </fn-group>
  </back>
</article>

Read the two side by side. <meta> became the <front>. The <#> section became a <sec> with a <title>. The inline math became an <inline-formula> carrying the TeX verbatim. The <note> split into two pieces the way JATS expects — an <xref ref-type="fn"> marker where it was written, and the note body collected into a <fn-group> in the <back>. The <ref> resolved to an <xref> that points at the figure and renders as “figure 1”; the figure itself became a <fig> with a <label>, a <caption>, and a <graphic>. Nothing in the source had to know it would become JATS, and nothing in the JATS had to be written by hand.

Compared to other JATS workflows

Most routes to JATS go through a conversion you do not control:

Table 2. Three routes from authoring to JATS.
Route How JATS is reached Who controls the mapping
LaTeX → JATS A converter (Pandoc) or a publisher’s in-house pipeline The tool / the publisher
Word → JATS A publisher’s conversion service The publisher
Enscribe → JATS A direct export from the canonical form You

With LaTeX, the structure JATS needs has to be recovered from typesetting commands — a lossy inference, often finished by hand at the publisher. With Word, the document is visually rich but structurally inert, so the conversion is someone else’s interpretation of your formatting.2 Enscribe is different in kind: the structure is declared in the source, the canonical form already carries it, and the export is a deterministic rename you run yourself. You see the JATS, you control the JATS, and it is the same every time. Because the mapping is a small, inspectable rename rather than a heuristic, you can predict the output before you run it, diff two exports to see exactly what a source edit changed, and correct a mapping at its source rather than patching XML after the fact. That predictability is the practical difference: an author-controlled export you can reason about, instead of a conversion you submit to and hope for.

So, can I submit?

Yes. If a venue accepts JATS 1.3 (or BITS 2.0 for books) — and the major archives and a growing list of publishers do — an Enscribe document exports to a valid, structure-faithful deposit, with the apparatus a real article needs intact. And the reverse direction now works too: enscribe import-jats brings published JATS back into Enscribe (lossily, as an on-ramp from the literature). Both halves of the bridge — your work into the scholarly record, and the record back into Enscribe — work today.

For how eHTML is shaped to make this possible, read the Design article; to write your first document, start with the Quickstart.

  1. 1

    This is the honest choice. The alternative, rasterising every diagram at export time, would bake one rendering into the archival record and discard the source that produced it; preserving the source keeps the document re-renderable.

  2. 2

    This is why “submit a Word file and we will convert it” so often produces proofs that do not match what the author intended: the structure was guessed, not declared.

References

National Information Standards Organization. (2021). JATS: Journal Article Tag Suite, version 1.3 (Techreport ANSI/NISO Z39.96-2021). NISO. https://www.niso.org/standards-committees/jats
U.S. National Library of Medicine. (2016). Book Interchange Tag Suite (BITS), version 2.0 [Techreport]. National Center for Biotechnology Information. https://jats.nlm.nih.gov/extensions/bits/
U.S. National Library of Medicine. (2024). PubMed Central (PMC). https://www.ncbi.nlm.nih.gov/pmc/