Skip to content

Add sn-jnl.cls (official Springer Nature) LaTeX variant #3

Description

@medewitt

Motivation

The ptmp latex command now emits a modern, Nature-styled single-column manuscript built on the standard article class (natbib + unsrtnat, superscript numeric citations). This compiles everywhere and needs no bundled class file.

That is a look-alike, not a submission-ready template. For actual Nature Portfolio submissions, the current official route is Springer Nature's sn-jnl.cls (the sn-article template). It provides the real journal layout, \author[1]{}/\affil[1]{} markup, and journal-specific bibliography styles (sn-nature, sn-mathphys, etc.).

Proposal

Add a way to emit the official Springer Nature template as an alternative to the current styled article, e.g.:

ptmp latex --class sn-jnl     # official Springer Nature (sn-jnl.cls)
ptmp latex                    # current Nature-styled article (default)

Scope / open questions

  • Bundling the class: sn-jnl.cls is a large file (~2k lines) plus its .bst styles and sn-jnl.bib sample. Decide whether to bundle it via extra_text/extra_binary (self-contained, but a big vendored blob to maintain) or document a tlmgr/download step. sn-jnl is not in a base TeX Live install.
  • Front matter differs: sn-jnl uses \author[1]{Name} + \affil[1]{...} rather than the \author{...\thanks{}} block in the current template, so the field-to-Tera mapping needs its own template file, not a tweak of main.tex.
  • Bibliography style: default to sn-nature; expose the journal family (sn-nature, sn-mathphys, sn-vancouver, etc.) as a prompt or flag.
  • CLI plumbing: add the --class option to the Latex subcommand in cli.rs and branch the component/template selection in components.rs.

Context

Follow-up from the LaTeX template modernization (Nature-styled article). See src/templates/main.tex, src/components.rs (latex component), and CLAUDE.md notes on extra_text not being Tera-rendered.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions