← All templates

Journal of Quantum Science, JQuant (jsty3-author)

SISSA Medialab's jsty3-author package for submissions to JQuant, the Journal of Quantum Science: article class with the package's journal and stage options, affiliation keys, ORCID links, notes, collaboration blocks and numbered references with the shipped jsty3-author.bst; the sample is the publisher's skeleton manuscript.

Create an account to use this
Category
Journal
Document class
article (article.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
SISSA Medialab
Source
SISSA Medialab
Licence
article.cls: LaTeX Project Public License (installed with TeX). The sample text is SISSA Medialab's, provided for authors preparing a submission.

These are the publisher’s own files. This project starts from SISSA Medialab’s package for this publication — their manuscript, their article.cls, their bibliography style — so what compiles here is what they would have given you.

SISSA Medialab serves this exact file to Journal of Quantum Science (JQuant). Check SISSA Medialab’s author pages for the current instructions.

What you get

  • example.tex — the file that is compiled · 3 KB
  • jsty3-author.bst · 22 KB
  • jsty3-author.sty · 44 KB

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Journals using this template

2 venues use this class

Manulyx keeps one template per document class and relates every venue to it, rather than one near-identical card per journal. Searching the gallery for any of these names finds this template.

Journal of Machine Learning Research, Transactions on Machine Learning Research
  • Journal of Machine Learning Research
  • Transactions on Machine Learning Research

Source

example.tex — the file that is compiled · 3 KB
% ============================================================
%  example.tex - Author submission template for SISSA Medialab
%  journals using jsty3-author.sty
%
%  Lines marked [REQUIRED] must be filled in before submission.
%  Lines marked [OPTIONAL] can be removed if not needed.
% ============================================================

\documentclass[11pt]{article}
\usepackage[journal=jquant,stage=submission,logging=stdout]{jsty3-author}

% ------------------------------------------------------------
%  Title                                              [REQUIRED]
%
\title{Your paper}

% ------------------------------------------------------------
%  Version date (remove if not needed, in YYYY-MM-DD) [OPTIONAL]
%
\history{ver}{2026-06-01}

% ------------------------------------------------------------
%  Authors                                            [REQUIRED]
%
%  \author{affiliation keys}{Name}{email}
%  \author*{...}{...}{...}{...}   corresponding author, if needed (adds *)
%  \author{...}{...}{...}{orcid}  with ORCID identifier
%  \author{...}{...}{}{}          no email, no orcid
% ------------------------------------------------------------
\author*{a,b}{A. First-Author}{[email protected]}{0000-0000-0000-0000}
\author{a}{B. Second-Author}{[email protected]}{}
\author{b,c}{C. Third-Author}{}{0000-0000-0000-0000}
\author{c,1}{D. Fourth-Author}{[email protected]}{}

% ------------------------------------------------------------
%  Affiliations                                       [REQUIRED]
%
%  \affiliation{key}{Full name, City, Country}
\affiliation{a}{Department of Physics, University of Somewhere, City, Country}
\affiliation{b}{Institute for Theoretical Studies, Another City, Country}
\affiliation{c}{National Laboratory, Research Centre, City, Country}

% ------------------------------------------------------------
%  Notes                                              [OPTIONAL]
%
%  \note{key}{Text of the note.}
\note{1}{On leave from: ....}

% ------------------------------------------------------------
%  Logos (optional, must comply with journal style)   [OPTIONAL]
%
% \logoAdd{logo.pdf}

% ------------------------------------------------------------
%  Large collaborations                               [OPTIONAL]
%
%  \collaboration{Name}{email}
%  \collaborationList{forthe|behalf|author|regular|empty}

% ------------------------------------------------------------
%  Abstract                                           [REQUIRED]
%
\abstract{...}


\begin{document}
% Note: \maketitle is NOT used, the front matter is printed automatically by the package at \begin{document}.

\section{Introduction}
\label{sec:intro}

...

% --------------------------------------------x----------------
%  Bibliography                                       [REQUIRED]
%
% Option 1 (suggested): use a bib file (here refs.bib) and the provided jsty3-author.bst file
%\bibliographystyle{jsty3-author}
%\bibliography{refs}

% Option 2: a generated bbl by other means can be included as is
\begin{thebibliography}{99}

\bibitem{ref:key1}
  A.~Author and B.~Author,
  \textit{Title of the first reference},
  Journal \textbf{1} (2020) 100,
  \href{https://doi.org/10.1000/example}{doi:10.1000/example}.

\bibitem{ref:key2}
  C.~Author,
  \textit{Title of the second reference},
  arXiv:2001.00000 [hep-th].

\bibitem{ref:key3}
  D.~Author, E.~Author and F.~Author,
  \textit{Title of the third reference},
  Journal \textbf{5} (2023) 042.

\end{thebibliography}

\end{document}
jsty3-author.bst · 22 KB
% Bibliography style for SISSA Medialab S.r.l. Journals ver. 3.0
%
% Intended for SISSA Medialab S.r.l. publications.
% The bibtex output produced by inSPIRE is suitable for use with this
% style; indeed, this style was designed with inSPIRE in mind.
%
% Copyright 2026 SISSA Medialab S.r.l.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This work has the LPPL maintenance status `author-maintained'.
%
% This work consists of the file jsty3-author.bst.

ENTRY
  { 
    address
    archive
    author
    booktitle
    collaboration
    doi
    edition
    editor
    eid
    eprint
    howpublished
    institution
    isbn
    journal
    number
    organization
    pages
    publisher
    report
    reportNumber
    school
    series
    desc
    title
    type
    url
    volume
    year
  }
  {}
  { label }

INTEGERS
{
  curr_state
  sep_none
  sep_space
  sep_comma
  label_number
  longest_label_width
  name_index
  names_left
  name_count
  is_optional
  is_mandatory
  is_needed
  is_check
  is_ok
  is_err
  brace_depth
}

STRINGS
  {
    tmp_s
    tmp_t
    tmp_z
    inserted_char
    longest_label
  }

% region [Initialization]

FUNCTION {init_cond_consts}
{
  #0 'is_needed :=
  #0 'is_optional :=
  #1 'is_mandatory :=
}

FUNCTION {init_error_consts}
{
  #0 'is_check :=
  #0 'is_ok :=
  #1 'is_err :=
}

FUNCTION {init_state_consts}
{
  #0 'sep_none  :=
  #1 'sep_space :=
  #2 'sep_comma :=
}

FUNCTION {init_label_consts}
{ "" 'longest_label :=
  #1 'label_number :=
  #0 'longest_label_width :=
}

% endregion

% region [Bibliography]

FUNCTION {find_longest_label}
{ label_number INT.TO.STR$ 'label :=
  label_number #1 + 'label_number :=
  label WIDTH$ longest_label_width >
    { label 'longest_label :=
      label WIDTH$ 'longest_label_width :=
    }
    { SKIP$ }
  IF$
}

FUNCTION {begin_bib}
{ PREAMBLE$ EMPTY$
    { SKIP$ }
    { PREAMBLE$ WRITE$ NEWLINE$ }
  IF$
  NEWLINE$
  "\begin{thebibliography}{" longest_label * "}" * 
  WRITE$
  NEWLINE$
}

FUNCTION {start_bibitem}
{
  is_ok 'is_check :=
  NEWLINE$
  "\bibitem{" CITE$ * "}" *
  WRITE$
  NEWLINE$
  desc EMPTY$
    { SKIP$ }
    { "% [DESC] " desc * 
      WRITE$
      NEWLINE$
    }
  IF$
  "" 'inserted_char :=
  sep_none 'curr_state :=
}

FUNCTION {end_bibitem}
{ inserted_char ADD.PERIOD$ WRITE$
  NEWLINE$
}

FUNCTION {end_bib}
{ NEWLINE$
  "\end{thebibliography}"
  WRITE$
  NEWLINE$
}

% endregion

% region [Utilities]

FUNCTION {output}
{ DUPLICATE$ EMPTY$
    { POP$ }
    { curr_state sep_none =
        { inserted_char WRITE$
          sep_comma 'curr_state := }
        { curr_state sep_space =
            { inserted_char " " * WRITE$
              sep_comma 'curr_state := }
            { inserted_char ", " * WRITE$ }
          IF$
        }
      IF$
      'inserted_char :=
    }
  IF$
}

FUNCTION {put_space}
{ sep_space 'curr_state := }

FUNCTION {put_newline}
{ curr_state sep_none =
    { inserted_char WRITE$ }
    { inserted_char ", " * WRITE$ }
  IF$
  NEWLINE$
  "" 'inserted_char :=
  sep_none 'curr_state :=
}

FUNCTION {NOT}
{   { #0 }
    { #1 }
  IF$
}

FUNCTION {AND}
{   { SKIP$ }
    { POP$ #0 }
  IF$
}

FUNCTION {OR}
{   { POP$ #1 }
    { SKIP$ }
  IF$
}


FUNCTION {remove_spaces}
{ 'tmp_z :=
  ""
  { tmp_z EMPTY$ NOT }
  { tmp_z #1 #1 SUBSTRING$
    tmp_z #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_z :=
    DUPLICATE$ "~" =
      'POP$
      { DUPLICATE$ " " =
          'POP$
          { * }
        IF$
      }
    IF$
  }
  WHILE$
}

FUNCTION {fix_n_dash}
{ 'tmp_t :=
  ""
  { tmp_t EMPTY$ NOT }
  { tmp_t #1 #1 SUBSTRING$ "-" =
      { tmp_t #1 #2 SUBSTRING$ "--" = NOT
          { "--" *
            tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
          }
          { { tmp_t #1 #1 SUBSTRING$ "-" = }
              { tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
              }
            WHILE$
            "--" *
          }
        IF$
      }
      { tmp_t #1 #1 SUBSTRING$ *
        tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
      }
    IF$
  }
  WHILE$
}

FUNCTION {strip_outer_braces}
{ DUPLICATE$ 'tmp_z :=
  'tmp_t :=
  tmp_t #1 #1 SUBSTRING$ "{" =
    {
      tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
      #1 'brace_depth :=
      ""
      { brace_depth #0 > tmp_t EMPTY$ NOT AND }
      { tmp_t #1 #1 SUBSTRING$
        tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
        DUPLICATE$ "{" =
          { brace_depth #1 + 'brace_depth := * }
          { DUPLICATE$ "}" =
              { brace_depth #1 - 'brace_depth :=
                brace_depth #0 =
                  { POP$ }
                  { * }
                IF$
              }
              { * }
            IF$
          }
        IF$
      }
      WHILE$
      brace_depth #0 =
        { tmp_t EMPTY$
            { SKIP$ }
            { POP$ tmp_z }
          IF$
        }
        { POP$ tmp_z }
      IF$
    }
    { tmp_z }
  IF$
}

% endregion

% region [URLs and links]

FUNCTION {fmt_doi}
{ 
  doi EMPTY$
    { "" }
    { 
      "\href{https://doi.org/" doi *
      "}{DOI}" *
    }
  IF$
}

FUNCTION {fmt_url}
{
  url EMPTY$
    { "" }
    { 
      "\href{" url * 
      "}{URL}" * 
    }
  IF$
}

FUNCTION {format_link}
{
  'is_needed :=
  doi EMPTY$
    { 
      url EMPTY$
        { 
          is_needed
            {
              is_err 'is_check :=
              "[WARNING] Missing link (doi/url) for " TYPE$ *
              " in " *
              CITE$ *
              WARNING$
            }
            { SKIP$ }
          IF$
        }
        { fmt_url output }
      IF$
    }
    { fmt_doi output }
  IF$
}

% endregion

% region [Authorship]

FUNCTION {fmt_initials}
{ "{f.}" }

FUNCTION {fmt_surname}
{ "{vv~}{ll}" }

FUNCTION {fmt_junior}
{ "{, jj}" }

FUNCTION {format_name_list}
{ 'tmp_s :=
  #1 'name_index :=
  tmp_s NUM.NAMES$ 'name_count :=
  name_count 'names_left :=
  { names_left #0 > }
  {
    name_index #7 =
      { 
        %% Truncate: if we have passed the 6th name, stop and emit et al.
        " et~al." *
        #0 'names_left :=
      }
      {
        %% Add name: initials + surname + junior suffix
        tmp_s name_index fmt_initials FORMAT.NAME$ remove_spaces
        DUPLICATE$ EMPTY$
          { SKIP$ }
          { "~" * } 
        IF$
        tmp_s name_index fmt_surname FORMAT.NAME$ strip_outer_braces *
        tmp_s name_index fmt_junior FORMAT.NAME$ *
        'tmp_t :=
        name_index #1 >
          { names_left #1 >
              { ", " * tmp_t * }
              { 
                tmp_t "others" =
                  { " et~al." * }
                  { 
                    name_count #2 > 
                      { "" * } 
                      { SKIP$ }
                    IF$
                    " and " * 
                    tmp_t *
                  }
                IF$
              }
            IF$
          }
          { tmp_t }
        IF$
        name_index #1 + 'name_index :=
        names_left #1 - 'names_left :=
      }
    IF$
  }
  WHILE$
}

FUNCTION {fmt_authors} 
{ 
  author EMPTY$
    { "" }
    { author format_name_list }
  IF$
}

FUNCTION {fmt_editors}
{
  editor EMPTY$
    { "" }
    {
      editor format_name_list
      editor NUM.NAMES$ #1 >
        { " eds." * }
        { " ed." * }
      IF$
    }
  IF$
}

FUNCTION {fmt_collaboration}
{ 
  collaboration EMPTY$
    { "" }
    {
      "\textsc{" collaboration * "} " * "collaboration" * 
    }
  IF$
}

FUNCTION {format_authorship}
{
  'is_needed :=
  collaboration EMPTY$
    { author EMPTY$
      { 
        is_needed
          { 
            is_err 'is_check :=
            "[ERROR  ] Unknown authorship for " TYPE$ *
            " in " *
            CITE$ *
            WARNING$
          }
          { SKIP$ }
        IF$
      }
      { fmt_authors output }
      IF$
    }
    { fmt_collaboration output }
  IF$
}

FUNCTION {format_authorship_book}
{
  'is_needed :=
  collaboration EMPTY$
    { author EMPTY$
        { editor EMPTY$
            { 
              is_needed
                { 
                  is_err 'is_check :=
                  "[ERROR  ] Unknown authorship for " TYPE$ *
                  " in " *
                  CITE$ *
                  WARNING$
                }
                { SKIP$ }
              IF$
            }
            { fmt_editors output }
          IF$
        }
        { fmt_authors output }
      IF$
    }
    { fmt_collaboration output }
  IF$
}

FUNCTION {format_editorship}
{
  'is_needed :=
  editor EMPTY$
    { 
      is_needed
        { 
          is_err 'is_check :=
          "[ERROR  ] Unknown editor for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { fmt_editors output }
  IF$
}

FUNCTION {format_publisher}
{
  'is_needed :=
  publisher EMPTY$
    {
      organization EMPTY$
        {
          is_needed
            { 
              is_err 'is_check :=
              "[WARNING] Unknown publisher or organization for " TYPE$ *
              " in " *
              CITE$ *
              WARNING$
            }
            { SKIP$ }
          IF$
        }
        { organization output }
      IF$
    }
    { publisher output }
  IF$
}

% endregion

% region [School and institution]

FUNCTION {format_institute}
{
  'is_needed :=
  school EMPTY$
    {
      institution EMPTY$
        {
          is_needed
            { 
              is_err 'is_check :=
              "[ERROR  ] School or institution required for " TYPE$ *
              " in " *
              CITE$ *
              WARNING$
            }
            { SKIP$ }
          IF$
        }
        { institution output }
      IF$
    }
    { school output }
  IF$
}

%

% region [Preprints]

FUNCTION {format_arxiv}
{ 
  'is_needed :=
  eprint EMPTY$
    { 
      is_needed
        { 
          is_err 'is_check :=
          "[WARNING] A preprint number is expected for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { archive EMPTY$
        { eprint #1 #4 SUBSTRING$ "http" =
            { "[\href{" eprint * "}" *
              "{online eprint}]" *
              output
            }
            { "[\href{https://arxiv.org/abs/" eprint * "}" *
              "{\texttt{" * eprint * "}}]" *
              output
            }
          IF$
        }
        { archive #1 #4 SUBSTRING$ "http" =
            { "[\href{" archive * "/" * eprint * "}" *
              "{\texttt{" * archive * "/" * eprint * "}}]" *
              output
            }
            { "[\href{https://arxiv.org/abs/" archive * "/" * eprint * "}" *
              "{\texttt{" * archive * "/" * eprint * "}}]" *
              output
            }
          IF$
        }
      IF$
    }
  IF$
}

FUNCTION {format_report_number}
{ 
  'is_needed :=
  report EMPTY$
    { 
      reportNumber EMPTY$
        {
          is_needed
            { 
              is_err 'is_check :=
              "[WARNING] Missing report number for " TYPE$ *
              " in " *
              CITE$ *
              WARNING$
            }
            { SKIP$ }
          IF$
        }
        { "[" reportNumber * "]" *
          output
        }
      IF$
    }
    { "[" report * "]" *
      output
    }
  IF$
}

% endregion

% region [Title]

FUNCTION {format_title}
{ 
  'is_needed :=
  title EMPTY$
    { 
      is_needed
        { 
          is_err 'is_check :=
          "[ERROR  ] Missing title for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { "\emph{" title strip_outer_braces * "}" * 
      output
    }
  IF$
}

FUNCTION {format_inner_title}
{ 
  'is_needed :=
  booktitle EMPTY$
    { 
      is_needed
        { 
          is_err 'is_check :=
          "[ERROR  ] Missing a title collection for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { "in the \emph{" booktitle strip_outer_braces * "}" * 
      output
    }
  IF$
}

% endregion

% region [Specific cases]

FUNCTION {format_thesis}
{ 
  type EMPTY$
    { output }
    { POP$
      type "l" CHANGE.CASE$
      output
    }
  IF$
}

FUNCTION {format_year}
{ 
  'is_needed :=
  year EMPTY$
    { 
      is_needed
        { 
          is_err 'is_check :=
          "[ERROR  ] Missing a year for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { "(" year * ")" * 
      output
    }
  IF$
}

FUNCTION {format_volume_series}
{ 'is_needed :=
  volume EMPTY$
    { number EMPTY$
        { series EMPTY$
            { is_needed
                { is_err 'is_check :=
                  "[WARNING] No volume, number, or series for " TYPE$ * " in " * CITE$ * WARNING$
                }
                'SKIP$
              IF$
            }
            { " in " series * output }
          IF$
        }
        { "no.~" number *
          series EMPTY$
            { is_err 'is_check :=
              "[WARNING] Number without series for " TYPE$ * " in " * CITE$ * WARNING$
            }
            { " in " * series * }
          IF$
          output
        }
      IF$
    }
    { "vol.~" volume *
      series EMPTY$
        { is_needed
            { is_err 'is_check :=
              "[WARNING] Volume without series for " TYPE$ * " in " * CITE$ * WARNING$
            }
            'SKIP$
          IF$
        }
        { " of \emph{" * series * "}" * }
      IF$
      output
    }
  IF$
}

FUNCTION {format_isbn}
{
  'is_needed :=
  isbn EMPTY$
    { is_needed
        { is_err 'is_check :=
          "[ERROR  ] Missing ISBN for " TYPE$ * " in " * CITE$ * WARNING$
        }
        { SKIP$ }
      IF$
    }
    { "[ISBN " isbn * "]" * 
      output
    }
  IF$
}

FUNCTION {format_edition}
{ 
  'is_needed :=
  edition EMPTY$
    { is_needed
        { is_err 'is_check :=
          "[WARNING] Missing edition for " TYPE$ * " in " * CITE$ * WARNING$
        }
        { SKIP$ }
      IF$
    }
    { edition "l" CHANGE.CASE$ "~edition" * 
      output
    }
  IF$
}

FUNCTION {format_how_published}
{ 
  'is_needed :=
  howpublished EMPTY$
    { is_needed
        { is_err 'is_check :=
          "[WARNING] Missing how published for " TYPE$ * " in " * CITE$ * WARNING$
        }
        { SKIP$ }
      IF$
    }
    { howpublished output }
  IF$
}


INTEGERS { range_found }

FUNCTION {has_range}
{ 'tmp_t :=
  #0 'range_found :=
    { range_found NOT tmp_t EMPTY$ NOT AND }
    { tmp_t #1 #1 SUBSTRING$
      DUPLICATE$ "-" =
      SWAP$ DUPLICATE$ "," =
      SWAP$ "+" =
      OR OR
        { #1 'range_found := }
        { tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t := }
      IF$
    }
  WHILE$
  range_found
}

FUNCTION {format_pages}
{ 
  'is_needed :=
  pages EMPTY$
    {
      is_needed
        { 
          is_err 'is_check :=
          "[WARNING] Missing page (or range) for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { 
      pages has_range
        { "pp.~" pages fix_n_dash * }
        { "p.~" pages * }
      IF$
      output
    }
  IF$
}

FUNCTION {format_pages_journal}
{ 
  'is_needed :=
  pages EMPTY$
    {
      eid EMPTY$
        {
          is_needed
            { 
              is_err 'is_check :=
              "[WARNING] Missing page number or eID for " TYPE$ *
              " in " *
              CITE$ *
              WARNING$
            }
            { SKIP$ }
          IF$
        }
        { eid output }
      IF$
    }
    { pages 'tmp_t :=
      ""
      { tmp_t EMPTY$ NOT tmp_t #1 #1 SUBSTRING$ "-" = NOT AND }
      { tmp_t #1 #1 SUBSTRING$ *
        tmp_t #2 GLOBAL.MAX$ SUBSTRING$ 'tmp_t :=
      }
      WHILE$
      output
    }
  IF$
}

FUNCTION {format_volume}
{ 
  'is_needed :=
  volume EMPTY$
    {
      is_needed
        { 
          is_err 'is_check :=
          "[WARNING] Missing volume for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { "\textbf{" volume * "}" * 
      output
    }
  IF$
}

FUNCTION {format_address}
{ 'is_needed :=
  address EMPTY$
    {
      is_needed
        { 
          is_err 'is_check :=
          "[WARNING] Missing city or country for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    { address output }
  IF$
}


FUNCTION {format_journal}
{ 
  'is_needed :=
  journal EMPTY$
    {
      is_needed
        { 
          is_err 'is_check :=
          "[WARNING] Missing journal name for " TYPE$ *
          " in " *
          CITE$ *
          WARNING$
        }
        { SKIP$ }
      IF$
    }
    {
      "\emph{" journal * "}" *
      output
    }
  IF$
}

% region [Bibliographical types]

FUNCTION {article}
{
  start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  journal EMPTY$
    { is_mandatory format_arxiv }
    { 
      is_mandatory format_journal
      put_space
      is_mandatory format_volume
      put_space
      is_mandatory format_year
      put_space
      is_mandatory format_pages_journal
      is_mandatory format_link
      put_space
      is_optional format_arxiv
    }
  IF$
  journal EMPTY$ eprint EMPTY$ AND archive EMPTY$ AND
    { is_optional format_report_number }
    { SKIP$ }
  IF$
  end_bibitem
}

FUNCTION {book}
{ start_bibitem
  is_mandatory format_authorship_book
  is_mandatory format_title
  is_optional format_volume_series
  is_mandatory format_publisher
  is_optional format_address
  is_optional format_edition
  put_space
  is_mandatory format_year
  is_mandatory format_isbn
  is_optional format_link
  is_optional format_arxiv
  end_bibitem
}

FUNCTION {booklet}
{ start_bibitem
  is_mandatory format_authorship_book
  is_mandatory format_title
  is_optional format_how_published
  is_optional format_address
  is_mandatory format_year
  put_space
  is_optional format_link
  end_bibitem
}

FUNCTION {incollection}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  is_mandatory format_inner_title
  is_mandatory format_editorship
  is_optional format_volume_series
  is_optional format_pages
  is_optional format_publisher
  is_optional format_address
  put_space
  is_mandatory format_year
  is_optional format_link
  put_space
  is_optional format_arxiv
  end_bibitem
}

FUNCTION {inbook} 
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  is_mandatory format_inner_title
  is_optional format_editorship
  is_optional format_volume_series
  is_optional format_pages
  is_optional format_publisher
  is_optional format_address
  put_space
  is_mandatory format_year
  is_optional format_link
  put_space
  is_optional format_arxiv
  end_bibitem
}

FUNCTION {inproceedings}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  is_mandatory format_inner_title
  is_optional format_editorship
  is_optional format_volume_series
  is_optional format_pages
  is_optional format_publisher
  is_optional format_address
  is_mandatory format_year
  is_optional format_link
  put_space
  is_optional format_arxiv
  put_space
  is_optional format_report_number
  end_bibitem
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ start_bibitem
  collaboration EMPTY$ author EMPTY$ AND editor EMPTY$ AND
    {
      is_optional format_publisher
      is_mandatory format_title
    }
    {
      is_optional format_authorship_book
      is_mandatory format_title
      is_optional format_publisher
    }
  IF$
  is_optional format_address
  is_optional format_edition
  is_mandatory format_year
  put_space
  is_optional format_link
  end_bibitem
}

FUNCTION {electronic} { manual }

FUNCTION {mastersthesis}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  "Master's thesis" format_thesis
  is_mandatory format_institute
  is_optional format_address
  is_mandatory format_year
  is_optional format_link
  is_optional format_arxiv
  end_bibitem
}

FUNCTION {phdthesis}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  "Ph.D. thesis" format_thesis
  is_mandatory format_institute
  is_optional format_address
  is_mandatory format_year
  put_space
  is_optional format_arxiv
  put_space
  is_optional format_link
  end_bibitem
}

FUNCTION {thesis}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  "Thesis" format_thesis
  is_mandatory format_institute
  is_optional format_address
  is_mandatory format_year
  put_space
  is_optional format_arxiv
  put_space
  is_optional format_link
  end_bibitem
}


FUNCTION {misc}
{ start_bibitem
  is_optional format_authorship
  is_optional format_title
  is_optional format_how_published
  is_optional format_year
  put_space
  is_optional format_link
  howpublished EMPTY$
    { put_space
      is_optional format_arxiv
    }
    { SKIP$ }
  IF$
  end_bibitem
}

FUNCTION {proceedings}
{ start_bibitem
  is_mandatory format_authorship_book
  is_mandatory format_title
  is_optional format_volume_series
  is_optional format_publisher
  is_optional format_address
  is_mandatory format_year
  put_space
  is_optional format_link
  end_bibitem
}

FUNCTION {techreport}
{
  start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  is_mandatory format_institute
  is_optional format_address
  put_space
  is_mandatory format_report_number
  is_mandatory format_year
  is_optional format_link
  end_bibitem
}

FUNCTION {unpublished}
{ start_bibitem
  is_mandatory format_authorship
  is_mandatory format_title
  put_space
  is_optional format_year
  end_bibitem
}

FUNCTION {default.type} { misc }

% endregion

MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sept."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}

% region [Loop]

READ

EXECUTE {init_label_consts}

ITERATE {find_longest_label}

EXECUTE {begin_bib}

EXECUTE {init_error_consts}

EXECUTE {init_cond_consts}

EXECUTE {init_state_consts}

ITERATE {call.TYPE$}

EXECUTE {end_bib}

% endregion
jsty3-author.sty · 44 KB

44 KB — too long to show here. It arrives with the project.

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗