Initial commit
This commit is contained in:
373 files changed
+16704
No files matched your search
@@ -0,0 +1,19 @@
|
||||
# Fixture sources
|
||||
|
||||
Each source describes a document as first read, errors included, in a shorthand that `tools/build.py` expands; the build mints IDs, applies the listed corrections, lays out synthetic geometry, signs the listed receipts and writes the package.
|
||||
The shorthand is tooling, not a format.
|
||||
|
||||
| Shorthand | Becomes |
|
||||
| --- | --- |
|
||||
| `{"p": [...]}` | A paragraph of the listed sentences. |
|
||||
| `{"s": [...]}` | A sentence; a string part is a text run. |
|
||||
| `{"sup": t}`, `{"sub": t}`, `{"em": t}` | A styled text run. |
|
||||
| `{"m": src}`, `{"t": src}` | A TeX or Typst math run. |
|
||||
| `{"cite": [...], "text": t}`, `{"xref": target, "text": t}`, `{"fn": name, "text": t}` | Citation, cross-reference and footnote-mark runs. |
|
||||
| `{"eq": {...}}` | A display equation inside the sentence. |
|
||||
| `{"row": [...]}`, `{"c": [...]}` | A table row, and a cell with `role`, `rowspan`, `colspan` and `col`. |
|
||||
| `"name": "@x"` | A local name, replaced by the minted ID; `ext:<doc>:@x` names a node of another source. |
|
||||
| `"page": n` | The page the node and its descendants are laid out on. |
|
||||
|
||||
`corrections` lists the operations in order, naming nodes by local name; `crop` names the node whose crop is the evidence.
|
||||
`anchors_at_rev0` lists the anchors whose resolution `vectors/resolve.jsonl` records, and `receipts` the receipts, spot-checks and revocations to sign.
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"comment": "A synthetic chemistry paper, as first read, with the reading errors its corrections fix. Text written for this fixture; CC0-1.0.",
|
||||
"document": {
|
||||
"key": "hale2026harmonic",
|
||||
"store": "smithlab",
|
||||
"kind": "article",
|
||||
"work": {"key": "hale2026harmonic", "same_as": ["doi:10.5555/example.hale.2026"]},
|
||||
"version": {"type": "version-of-record", "date": "2026-03-02"},
|
||||
"relations": [],
|
||||
"meta": {"type": "article-journal", "title": "Harmonic bond parameters for small organic molecules from a two-step fit", "author": [{"family": "Hale", "given": "R."}, {"family": "Osei", "given": "M."}], "container-title": "Journal of Example Chemistry", "volume": "14", "page": "101-109", "issued": {"date-parts": [[2026, 3, 2]]}, "DOI": "10.5555/example.hale.2026"},
|
||||
"language": "en",
|
||||
"license": {"text": "All rights reserved by the publisher (fictional)."},
|
||||
"policy": "full"
|
||||
},
|
||||
"legacy_aliases": {"b-p01-text-003": "@s3", "b-p02-table-001": "@tab1"},
|
||||
"tree": {"kind": "document", "children": [
|
||||
{"kind": "front", "page": 1, "children": [
|
||||
{"kind": "title", "children": [{"s": ["Harmonic bond parameters for small organic molecules from a two-step fit"], "fidelity": "F2"}]},
|
||||
{"kind": "authors", "runs": ["R. Hale and M. Osei"], "fidelity": "F2"},
|
||||
{"kind": "abstract", "children": [{"p": [
|
||||
{"s": ["We fit harmonic bond constants for twelve bonds in two steps, first to a scan and then to vibrational frequencies."], "fidelity": "F2"},
|
||||
{"s": ["The two parameter sets agree to within 2% for every bond."], "fidelity": "F2"}
|
||||
]}]}
|
||||
]},
|
||||
{"kind": "section", "name": "@sec1", "label": "1", "level": 1, "page": 1, "title": "Introduction", "children": [
|
||||
{"p": [
|
||||
{"name": "@s1", "s": ["Harmonic bond terms remain the most common description of covalent stretching in classical force fields.", {"cite": ["@r1"], "text": "1"}], "fidelity": "F2"},
|
||||
{"name": "@s2", "s": ["The bond energy is given by ", {"eq": {"name": "@eq1", "label": "(l)", "tex": "E_{\\mathrm{bond}} = \\frac{1}{2} K_r (r - r_{\\mathrm{eq}})^2", "fidelity": "F1"}}, " where ", {"m": "K_r"}, " is the bond force constant and ", {"m": "r_\\mathrm{eq}"}, " the equilibrium bond length."], "fidelity": "F2"},
|
||||
{"name": "@s3", "s": ["Water, H", {"m": "_2"}, "O, served as the first test case, with a bending band near 1595 cm⁻¹.", {"cite": ["@r2"], "text": "2"}], "fidelity": "F2"}
|
||||
]},
|
||||
{"p": [
|
||||
{"name": "@s4", "s": ["Values below 10-3 kcal mol⁻¹ were treated as zero. ", {"xref": "@tab1", "text": "Table 1"}, " lists the fitted constants for both parameter sets."], "fidelity": "F0"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "section", "name": "@sec2", "label": "2", "level": 1, "page": 2, "title": "Methods", "children": [
|
||||
{"name": "@para6", "p": [
|
||||
{"name": "@s6a", "s": ["Each bond was scanned in steps of 0.01 Å around its minimum, and the energies were"], "fidelity": "F0"},
|
||||
{"name": "@s6b", "s": ["fitted by least squares."], "fidelity": "F0"}
|
||||
]},
|
||||
{"name": "@para7", "p": [
|
||||
{"name": "@s7", "s": [{"xref": "@fig1", "text": "Figure 1"}, " shows the scan for the C–C bond of ethane.", {"fn": "@fn1", "text": "a"}], "fidelity": "F2"}
|
||||
]},
|
||||
{"name": "@head2", "p": [{"name": "@rh", "s": ["J. Example Chem. 2026, 14, 101–109"], "fidelity": "F0"}]},
|
||||
{"kind": "footnote", "name": "@fn1", "label": "a", "children": [{"name": "@fns", "s": ["Scans held every other coordinate fixed."], "fidelity": "F2"}]},
|
||||
{"kind": "figure", "name": "@fig1", "label": "Figure l", "children": [
|
||||
{"kind": "panel", "name": "@pa", "label": "a", "figure_text": [
|
||||
{"text": "r (Å)", "role": "axis-label", "name": "@ft_x"},
|
||||
{"text": "E (kcal mol⁻¹)", "role": "axis-label", "name": "@ft_y"},
|
||||
{"text": "1.4", "role": "tick-label"}, {"text": "1.5", "role": "tick-label"}, {"text": "1.6", "role": "tick-label"}
|
||||
]},
|
||||
{"kind": "panel", "name": "@pb", "label": "b"},
|
||||
{"kind": "caption", "children": [
|
||||
{"name": "@cap1", "s": ["Bond energy along the C–C stretch of ethane."], "fidelity": "F2"},
|
||||
{"name": "@cap2", "s": ["(a) The scan."], "fidelity": "F2"},
|
||||
{"name": "@cap3", "s": ["(b) The residual of the fit."], "fidelity": "F2"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "table", "name": "@tab1", "label": "Table 1",
|
||||
"columns": [
|
||||
{"name": "@col_bond", "header_path": ["@h_bond"]},
|
||||
{"name": "@col_ak", "header_path": ["@h_a", "@h_ak"]},
|
||||
{"name": "@col_ar", "header_path": ["@h_a", "@h_ar"]},
|
||||
{"name": "@col_bk", "header_path": ["@h_b", "@h_bk"]},
|
||||
{"name": "@col_br", "header_path": ["@h_b", "@h_br"]}
|
||||
],
|
||||
"children": [
|
||||
{"kind": "caption", "children": [{"s": ["Fitted harmonic bond parameters."], "fidelity": "F2"}]},
|
||||
{"kind": "table-head", "children": [
|
||||
{"row": [
|
||||
{"name": "@h_bond", "c": ["Bond"], "role": "column-header", "rowspan": 2, "col": "@col_bond"},
|
||||
{"name": "@h_a", "c": ["Set A"], "role": "column-header", "colspan": 2, "col": "@col_ak"},
|
||||
{"name": "@h_b", "c": ["Set B"], "role": "column-header", "colspan": 1, "col": "@col_bk"}
|
||||
]},
|
||||
{"row": [
|
||||
{"name": "@h_ak", "c": [{"m": "K_r"}, " (kcal mol⁻¹ Å⁻²)"], "role": "column-header", "col": "@col_ak"},
|
||||
{"name": "@h_ar", "c": [{"m": "r_\\mathrm{eq}"}, " (Å)"], "role": "column-header", "col": "@col_ar"},
|
||||
{"name": "@h_bk", "c": [{"m": "K_r"}, " (kcal mol⁻¹ Å⁻²)"], "role": "column-header", "col": "@col_bk"},
|
||||
{"name": "@h_br", "c": [{"m": "r_\\mathrm{eq}"}, " (Å)"], "role": "column-header", "col": "@col_br"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "table-body", "name": "@body", "children": [
|
||||
{"row": [{"name": "@grp", "c": ["Bond parameters"], "role": "row-group-header", "colspan": 5, "col": "@col_bond"}]},
|
||||
{"name": "@row_cc", "header_path": ["@grp", "@cc"], "row": [
|
||||
{"name": "@cc", "c": ["CT–CT"], "role": "row-header", "col": "@col_bond"},
|
||||
{"name": "@cc_ak", "c": ["3l0.0"], "col": "@col_ak", "fidelity": "F0"},
|
||||
{"name": "@cc_ar", "c": ["1.526"], "col": "@col_ar"},
|
||||
{"name": "@cc_bk", "c": ["305.2"], "col": "@col_bk"},
|
||||
{"name": "@cc_br", "c": ["1.5260"], "col": "@col_br"}
|
||||
]},
|
||||
{"name": "@row_ch", "header_path": ["@grp", "@ch"], "row": [
|
||||
{"name": "@ch", "c": ["CT–HC"], "role": "row-header", "col": "@col_bond"},
|
||||
{"name": "@ch_ak", "c": ["340.0"], "col": "@col_ak"},
|
||||
{"name": "@ch_ar", "c": ["1.090"], "col": "@col_ar"},
|
||||
{"name": "@ch_bk", "c": ["338.7 1.0900"], "col": "@col_bk", "fidelity": "F0"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "table-note", "children": [{"s": ["Set B was refitted with half the step size."], "fidelity": "F2"}]}
|
||||
]}
|
||||
]},
|
||||
{"kind": "back", "page": 2, "children": [
|
||||
{"kind": "references", "children": [
|
||||
{"kind": "reference", "name": "@r1", "label": "1", "runs": ["(1) A. Author and B. Author, J. Example Chem. 2001, 12, 345–350."], "fidelity": "F2",
|
||||
"csl": {"type": "article-journal", "author": [{"family": "Author", "given": "A."}, {"family": "Author", "given": "B."}], "container-title": "J. Example Chem.", "volume": "12", "page": "345-350", "issued": {"date-parts": [[2001]]}, "DOI": "10.5555/example.ref1"},
|
||||
"resolution": {"type": "doi", "doi": "10.5555/example.ref1"}},
|
||||
{"kind": "reference", "name": "@r2", "label": "2", "runs": ["(2) C. Writer, Example Spectroscopy 2010, 7, 89–97."], "fidelity": "F2",
|
||||
"csl": {"type": "article-journal", "author": [{"family": "Writer", "given": "C."}], "container-title": "Example Spectroscopy", "volume": "7", "page": "89-97", "issued": {"date-parts": [[2010]]}},
|
||||
"resolution": {"type": "none"}}
|
||||
]}
|
||||
]}
|
||||
]},
|
||||
"corrections": [
|
||||
{"op": "replace", "target": "@cc_ak", "find": "3l0.0", "replace": "310.0", "crop": "@cc_ak", "reason": "OCR read the digit 1 as the letter l.", "at": "2026-10-02T10:00:00Z"},
|
||||
{"op": "replace", "target": "@s4", "find": "10-3", "replace": [{"kind": "text", "text": "10"}, {"kind": "text", "text": "−3", "style": ["sup"]}], "crop": "@s4", "reason": "The reading lost the superscript.", "at": "2026-10-02T10:01:00Z"},
|
||||
{"op": "split", "target": "@s4", "before": "Table 1", "new_name": "@s5", "reason": "A missed sentence boundary.", "at": "2026-10-02T10:02:00Z"},
|
||||
{"op": "merge", "target": "@s6a", "with": "@s6b", "joiner": " ", "reason": "A false boundary at a line break.", "at": "2026-10-02T10:03:00Z"},
|
||||
{"op": "merge", "target": "@para6", "with": "@para7", "reason": "A paragraph split at a column break.", "at": "2026-10-02T10:03:30Z"},
|
||||
{"op": "delete", "target": "@head2", "crop": "@rh", "reason": "A running head read as text.", "at": "2026-10-02T10:04:00Z"},
|
||||
{"op": "relabel", "target": "@eq1", "label": "(1)", "crop": "@eq1", "reason": "OCR read the equation number 1 as the letter l.", "at": "2026-10-02T10:05:00Z"},
|
||||
{"op": "delete", "target": "@row_ch", "crop": "@ch", "reason": "Two cells were read as one; the row is replaced.", "at": "2026-10-02T10:06:00Z"},
|
||||
{"op": "insert", "parent": "@body", "place_after": "@row_cc", "crop": "@body", "reason": "The CT–HC row, read again from the page.", "at": "2026-10-02T10:07:00Z",
|
||||
"node": {"name": "@row_ch2", "header_path": ["@grp", "@ch2"], "row": [
|
||||
{"name": "@ch2", "c": ["CT–HC"], "role": "row-header", "col": "@col_bond"},
|
||||
{"name": "@ch2_ak", "c": ["340.0"], "col": "@col_ak"},
|
||||
{"name": "@ch2_ar", "c": ["1.090"], "col": "@col_ar"},
|
||||
{"name": "@ch2_bk", "c": ["338.7"], "col": "@col_bk"},
|
||||
{"name": "@ch2_br", "c": ["1.0900"], "col": "@col_br"}]}},
|
||||
{"op": "insert", "parent": "@body", "place_after": "@row_ch2", "crop": "@body", "reason": "The reading dropped the OW–HW row.", "at": "2026-10-02T10:08:00Z",
|
||||
"node": {"name": "@row_ow", "header_path": ["@grp", "@ow"], "row": [
|
||||
{"name": "@ow", "c": ["OW–HW"], "role": "row-header", "col": "@col_bond"},
|
||||
{"name": "@ow_ak", "c": ["553.0"], "col": "@col_ak"},
|
||||
{"name": "@ow_ar", "c": ["0.9572"], "col": "@col_ar"},
|
||||
{"name": "@ow_bk", "c": ["548.1"], "col": "@col_bk"},
|
||||
{"name": "@ow_br", "c": ["0.9570"], "col": "@col_br"}]}},
|
||||
{"op": "set", "target": "@h_b", "attr": "colspan", "value": 2, "crop": "@h_b", "reason": "Set B spans two columns.", "at": "2026-10-02T10:09:00Z"},
|
||||
{"op": "relabel", "target": "@fig1", "label": "Figure 1", "crop": "@fig1", "reason": "OCR read the figure number 1 as the letter l.", "at": "2026-10-02T10:10:00Z"}
|
||||
],
|
||||
"anchors_at_rev0": {
|
||||
"span-current": {"node": "@s3", "quote": "H$_2$O"},
|
||||
"leaf-stale": {"node": "@cc_ak"},
|
||||
"leaf-current": {"node": "@cc_br"},
|
||||
"body-drift-high": {"node": "@body"},
|
||||
"table-changed-below": {"node": "@tab1"},
|
||||
"section-changed-below": {"node": "@sec2"},
|
||||
"span-reattached": {"node": "@s4", "quote": "treated as zero"},
|
||||
"span-stale-after-split": {"node": "@s4", "quote": "fitted constants"},
|
||||
"span-moved-by-merge": {"node": "@s6b", "quote": "least squares"},
|
||||
"leaf-deleted": {"node": "@rh"},
|
||||
"equation-reattached": {"node": "@eq1"},
|
||||
"figure-relabel": {"node": "@fig1"},
|
||||
"cell-header-paths": {"node": "@ch_ar"},
|
||||
"via-alias": {"alias": "b-p01-text-003", "node": "@s3", "quote": "first test case"},
|
||||
"paragraph-changed-below": {"node": "@para6"},
|
||||
"row-drift-low": {"node": "@row_cc"},
|
||||
"paragraph-moved": {"node": "@para7"}
|
||||
},
|
||||
"receipts": [
|
||||
{"name": "r0", "by": "ana", "level": "F3", "scope": "targeted:lode", "at": "2026-10-01T16:00:00Z", "rev": 0, "nodes": ["@cc_ak", "@cc_br", "@cc_ar"], "crops": true},
|
||||
{"name": "r1", "by": "ana", "level": "F3", "scope": "targeted:lode", "at": "2026-10-11T15:02:11Z", "nodes": ["@cc", "@cc_ak", "@cc_ar", "@cc_bk", "@cc_br", "@ch2", "@ch2_ak", "@ch2_ar", "@ch2_bk", "@ch2_br", "@ow", "@ow_ak", "@ow_ar", "@ow_bk", "@ow_br", "@h_ak", "@h_ar", "@h_bk", "@h_br", "@s2", "@eq1", "@s3", "@s4"], "crops": true},
|
||||
{"name": "q1", "qa_of": "r1", "by": "ben", "key": "ben-spot", "at": "2026-10-12T09:00:00Z", "errors": []},
|
||||
{"name": "r2", "by": "ana", "level": "F3", "scope": "section:@sec1", "at": "2026-10-11T16:30:00Z", "nodes": ["@s1", "@s5"], "crops": true},
|
||||
{"name": "r3", "by": "cara", "level": "F3", "scope": "page:2", "at": "2026-10-11T17:00:00Z", "nodes": ["@s6a", "@s7", "@fns"], "crops": true},
|
||||
{"name": "v1", "revoke": "r3", "by": "cara", "at": "2026-10-11T17:20:00Z", "reason": "Signed against the crops of another paper."},
|
||||
{"name": "r4", "by": "ana", "level": "F3", "scope": "targeted:captions", "at": "2026-10-11T18:00:00Z", "nodes": ["@cap1", "@cap2", "@cap3"], "crops": true},
|
||||
{"name": "q2", "qa_of": "r4", "by": "ben", "key": "ben-spot", "at": "2026-10-12T09:30:00Z", "errors": [{"node": "@cap2", "kind": "word", "note": "The page prints a period the reading lacks."}]}
|
||||
],
|
||||
"pages": {
|
||||
"witness": {"sha_seed": "hale2026harmonic: publisher PDF, download 1 (synthetic)", "size": 482113},
|
||||
"size": [612, 792],
|
||||
"labels": ["101", "102"],
|
||||
"stamp": "Downloaded via UNIVERSITY OF EXAMPLE on October 11, 2026 at 15:02:11 (UTC).",
|
||||
"stamp2": "See https://pubs.acs.org/sharingguidelines for options on how to legitimately share published articles.",
|
||||
"running_head": {"2": "J. Example Chem. 2026, 14, 101–109"}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"comment": "A synthetic open-access paper with a JATS witness and a PDF witness. Text written for this fixture; CC0-1.0. The license fields describe the fictional work.",
|
||||
"document": {
|
||||
"key": "okafor2025open",
|
||||
"kind": "article",
|
||||
"work": {"key": "okafor2025open", "same_as": ["doi:10.5555/example.okafor.2025"]},
|
||||
"version": {"type": "version-of-record", "date": "2025-11-20"},
|
||||
"relations": [],
|
||||
"meta": {"type": "article-journal", "title": "Solvent shifts of a model carbonyl stretch", "author": [{"family": "Okafor", "given": "N."}, {"family": "Lindqvist", "given": "E."}], "container-title": "Open Example Letters", "volume": "3", "page": "e17", "issued": {"date-parts": [[2025, 11, 20]]}, "DOI": "10.5555/example.okafor.2025"},
|
||||
"language": "en",
|
||||
"license": {"spdx": "CC-BY-4.0", "url": "https://creativecommons.org/licenses/by/4.0/"},
|
||||
"policy": "full"
|
||||
},
|
||||
"tree": {"kind": "document", "children": [
|
||||
{"kind": "front", "page": 1, "children": [
|
||||
{"kind": "title", "children": [{"s": ["Solvent shifts of a model carbonyl stretch"], "fidelity": "F2"}]},
|
||||
{"kind": "authors", "runs": ["N. Okafor and E. Lindqvist"], "fidelity": "F2"}
|
||||
]},
|
||||
{"kind": "section", "label": "1", "level": 1, "page": 1, "title": "Results", "children": [
|
||||
{"p": [
|
||||
{"name": "@o1", "s": ["The carbonyl band of the model ketone moves from 1718 cm⁻¹ in hexane to 1702 cm⁻¹ in methanol.", {"cite": ["@or1"], "text": "1"}], "fidelity": "F2"},
|
||||
{"name": "@o2", "s": ["The shift scales with the solvent's hydrogen-bond donor strength, ", {"m": "\\alpha"}, ", with a slope of ", {"m": "-17 \\pm 2"}, " cm⁻¹."], "fidelity": "F2"},
|
||||
{"name": "@o3", "s": ["Two outliers, both fluorinated alcohols, fall below the line by about 4 cm⁻¹."], "fidelity": "F2"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "back", "page": 1, "children": [
|
||||
{"kind": "references", "children": [
|
||||
{"kind": "reference", "name": "@or1", "label": "1", "runs": ["1. P. Example and Q. Example, Spectrochim. Example 2019, 30, 11–19."], "fidelity": "F2",
|
||||
"csl": {"type": "article-journal", "author": [{"family": "Example", "given": "P."}, {"family": "Example", "given": "Q."}], "container-title": "Spectrochim. Example", "volume": "30", "page": "11-19", "issued": {"date-parts": [[2019]]}, "DOI": "10.5555/example.ref3"},
|
||||
"resolution": {"type": "doi", "doi": "10.5555/example.ref3"}}
|
||||
]}
|
||||
]}
|
||||
]},
|
||||
"pages": {
|
||||
"witness": {"sha_seed": "okafor2025open: publisher PDF (synthetic)", "size": 201977},
|
||||
"jats": {"sha_seed": "okafor2025open: JATS XML from the repository (synthetic)", "size": 38211},
|
||||
"size": [595.28, 841.89],
|
||||
"labels": ["e17-1"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"comment": "A short synthetic Typst draft that cites sentences of hale2026harmonic by address. Text written for this fixture; CC0-1.0.",
|
||||
"document": {
|
||||
"key": "smithlab2027charges",
|
||||
"store": "smithlab",
|
||||
"kind": "draft",
|
||||
"work": {"key": "smithlab2027charges", "same_as": []},
|
||||
"version": {"type": "draft", "seq": 3},
|
||||
"relations": [],
|
||||
"meta": {"type": "report", "title": "Fixed charges in biomolecular force fields", "author": [{"family": "Writer", "given": "A."}]},
|
||||
"language": "en",
|
||||
"license": {"spdx": "CC-BY-4.0"},
|
||||
"policy": "full"
|
||||
},
|
||||
"tree": {"kind": "document", "children": [
|
||||
{"kind": "front", "children": [
|
||||
{"kind": "title", "children": [{"s": ["Fixed charges in biomolecular force fields"], "fidelity": "F2"}]},
|
||||
{"kind": "authors", "runs": ["A. Writer"], "fidelity": "F2"}
|
||||
]},
|
||||
{"kind": "section", "label": "1", "level": 1, "title": "Introduction", "children": [
|
||||
{"p": [
|
||||
{"name": "@d1", "s": ["The bond term is harmonic in the bond length."], "fidelity": "F2"},
|
||||
{"name": "@d2", "s": ["Its constants come from a two-step fit ", {"xref": "ext:hale2026harmonic:@s5", "text": "(Hale and Osei, Table 1)"}, ".", {"cite": ["@dr1"], "text": "1"}], "fidelity": "F2"},
|
||||
{"name": "@d3", "s": ["In that fit the energy is ", {"t": "E = K_r (r - r_\"eq\")^2"}, ", up to a constant factor."], "fidelity": "F2"}
|
||||
]}
|
||||
]},
|
||||
{"kind": "back", "children": [
|
||||
{"kind": "references", "children": [
|
||||
{"kind": "reference", "name": "@dr1", "label": "1", "runs": ["1. R. Hale and M. Osei, J. Example Chem. 2026, 14, 101–109."], "fidelity": "F2",
|
||||
"csl": {"type": "article-journal", "author": [{"family": "Hale", "given": "R."}, {"family": "Osei", "given": "M."}], "container-title": "J. Example Chem.", "volume": "14", "page": "101-109", "issued": {"date-parts": [[2026]]}, "DOI": "10.5555/example.hale.2026"},
|
||||
"resolution": {"type": "document", "doc": "smithlab/hale2026harmonic"}}
|
||||
]}
|
||||
]}
|
||||
]},
|
||||
"typst": {"sha_seed": "smithlab2027charges: Typst project, revision 3 (synthetic)", "size": 4211}
|
||||
}
|
||||
Reference in new issue
Block a user