← All templates

Contributions of the Astronomical Observatory Skalnaté Pleso (caosp310)

The CAOSP class (version 3.10) with ORCID links and the journal's BibTeX style; the demo manuscript documents the title block, sections, tables, figures and references.

Create an account to use this
Category
Journal
Document class
caosp310 (caosp310.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
Astronomical Institute, Slovak Academy of Sciences
Source
Astronomical Institute, Slovak Academy of Sciences
Licence
No licence is stated in the files. Astronomical Institute, Slovak Academy of Sciences distributes them for authors preparing a submission.

These are the publisher’s own files. This project starts from Astronomical Institute, Slovak Academy of Sciences’s package for this publication — their manuscript, their caosp310.cls, their bibliography style — so what compiles here is what they would have given you.

Astronomical Institute, Slovak Academy of Sciences serves this exact file to Contributions of the Astronomical Observatory Skalnaté Pleso. Check Astronomical Institute, Slovak Academy of Sciences’s author pages for the current instructions.

What you get

  • caosp310.bst · 34 KB
  • caosp310.cls · 58 KB
  • demo_caosp310.bib · 4 KB
  • demo_caosp310.tex — the file that is compiled · 47 KB
  • fig_sinus-eps-converted-to.pdf · 6 KB
  • fig_sinus.eps · 22 KB
  • logo_orcid.pdf · 12 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

Source

caosp310.bst · 34 KB
%% 20160718 - 20241129 RMK, ON
%% corrected by hand to get results for CAOSP, v 3.10
%%
%% 2001/06/10 EDP Sciences
%% APJ, corrected by hand to get results for A&A, using Natbib   

%% 1998/08/12  J Baker
%% Tweaked by hand to get correct results for ApJ.  Added functions from
%% astrobib.

%% $Log: apj.bst,v $
%% Revision 1.3  2000/04/20 22:17:50  jbaker
%% Fixed INBOOK bug, now works essentially like BOOK.
%%
%% Revision 1.2  1998/08/30 22:35:45  jbaker
%% Added RCS keywords.
%%

%%
%% This is file `apj.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs  (with options: `,ay,nat,nm-rev,nmdash,dt-beg,yr-per,note-yr,atit-u,jtit-x,jttl-rm,thtit-a,vnum-x,volp-com,jpg-1,pp-last,btit-rm,add-pub,pub-par,pre-edn,edby,edbyx,blk-com,fin-bare,ppx,ed,abr,ord,jabr,eprint,amper,em-x')
%% ----------------------------------------
%% *** Bibliographic Style for ApJ ***
%% 
 %-------------------------------------------------------------------
 % The original source file contains the following version information:
 % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)]
 %
 % NOTICE:
 % This file may be used for non-profit purposes.
 % It may not be distributed in exchange for money,
 %   other than distribution costs.
 %
 % The author provides it `as is' and does not guarantee it in any way.
 %
 % Copyright (C) 1994-98 Patrick W. Daly
 %-------------------------------------------------------------------
 %   For use with BibTeX version 0.99a or later
 %-------------------------------------------------------------------
 % This bibliography style file is intended for texts in ENGLISH
 % This is an author-year citation style bibliography. As such, it is
 % non-standard LaTeX, and requires a special package file to function properly.
 % Such a package is    natbib.sty   by Patrick W. Daly
 % The form of the \bibitem entries is
 %   \bibitem[Jones et al.(1990)]{key}...
 %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
 % The essential feature is that the label (the part in brackets) consists
 % of the author names, as they should appear in the citation, with the year
 % in parentheses following. There must be no space before the opening
 % parenthesis!
 % With natbib v5.3, a full list of authors may also follow the year.
 % In natbib.sty, it is possible to define the type of enclosures that is
 % really wanted (brackets or parentheses), but in either case, there must
 % be parentheses in the label.
 % The \cite command functions as follows:
 %   \citet{key} ==>>                Jones et al. (1990)
 %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
 %   \citep{key} ==>>                (Jones et al., 1990)
 %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
 %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
 %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
 %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
 %   \citeauthor{key} ==>>           Jones et al.
 %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
 %   \citeyear{key} ==>>             1990
 %---------------------------------------------------------------------

ENTRY
  { address
    archiveprefix                   %EDP Sciences le 30/11/2014
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    eprint                    %EDP Sciences le 30/11/2014
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    doi
    isbn
  }
  {}
  { label extra.label sort.label short.list }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

%EDP Sciences le 30/11/2014
FUNCTION {output.eprint}
{ 's :=
  output.state mid.sentence =
    { " " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

%EDP Sciences le 30/11/2014
FUNCTION {outputeprint}
{ duplicate$ empty$
    'pop$
    'output.eprint
  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {fin.entry}
{ duplicate$ empty$
    'pop$
    'write$
  if$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}

FUNCTION {date.block}
{
  skip$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {boldface}
{ duplicate$ empty$
    { pop$ "" }
    { "{\bf " swap$ * "}" * }
  if$
}

FUNCTION {italics}
{ duplicate$ empty$
    { pop$ "" }
    { "{\it " swap$ * "}" * }
  if$
}

FUNCTION {emphasize}
{ skip$ }

FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }

FUNCTION {space.word}
{ " " swap$ * " " * }

 % Here are the language-specific definitions for explicit words.
 % Each function has a name bbl.xxx where xxx is the English word.
 % The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}

FUNCTION {bbl.editors}
{ "eds." }

FUNCTION {bbl.editor}
{ "ed." }

FUNCTION {bbl.edby}
{ "edited by" }

FUNCTION {bbl.edition}
{ "edn." }

FUNCTION {bbl.volume}
{ "Vol." }

FUNCTION {bbl.doi}
{ "DOI: " }

FUNCTION {bbl.isbn}
{ "ISBN:" }

FUNCTION {bbl.of}
{ "of" }

FUNCTION {bbl.number}
{ "no." }

FUNCTION {bbl.nr}
{ "no." }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.pages}
{ "" }

FUNCTION {bbl.page}
{ "" }

FUNCTION {bbl.chapter}
{ "Ch." }
%{ "chap." }

FUNCTION {bbl.techrep}
{ "Tech. Rep." }

FUNCTION {bbl.mthesis}
{ "Master's thesis" }

FUNCTION {bbl.phdthesis}
{ "PhD thesis" }

FUNCTION {bbl.first}
{ "1st" }

FUNCTION {bbl.second}
{ "2nd" }

FUNCTION {bbl.third}
{ "3rd" }

FUNCTION {bbl.fourth}
{ "4th" }

FUNCTION {bbl.fifth}
{ "5th" }

FUNCTION {bbl.st}
{ "st" }

FUNCTION {bbl.nd}
{ "nd" }

FUNCTION {bbl.rd}
{ "rd" }

FUNCTION {bbl.th}
{ "th" }

MACRO {jan} {"Jan."}

MACRO {feb} {"Feb."}

MACRO {mar} {"Mar."}

MACRO {apr} {"Apr."}

MACRO {may} {"May"}

MACRO {jun} {"Jun."}

MACRO {jul} {"Jul."}

MACRO {aug} {"Aug."}

MACRO {sep} {"Sep."}

MACRO {oct} {"Oct."}

MACRO {nov} {"Nov."}

MACRO {dec} {"Dec."}

%% https://ctan.org/tex-archive/bibliography/bibtex/contrib/urlbst/
STRINGS {   eprinturl doiurl }
INTEGERS { hrefform doiform }
FUNCTION {init.urlbst.variables}
{
  % The following constants may be adjusted by hand, if desired

  % The first set allow you to enable or disable certain functionality.
  #0 'doiform :=	% 0=with href; 1=with \doi{}
  #2 'hrefform :=	% 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
  % String constants, which you _might_ want to tweak.
  "https://arxiv.org/abs/" 'eprinturl :=	% prefix to make URL from eprint ref
  "https://doi.org/" 'doiurl :=	% prefix to make URL from DOI
}
% Minimal DOI parsing.
% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
FUNCTION {parse.doi}
{
  #1 doiurl text.length$ substring$
  doiurl =
    { doi
      doi doiurl text.length$ #1 + #999 substring$ }
    { doiurl doi *
      doi }
  if$
}
% Functions for making hypertext links.
% In all cases, the stack has (link-text href-url)
%
% make 'null' specials
FUNCTION {make.href.null}
{
  pop$
}
% make hypertex specials
FUNCTION {make.href.hypertex}
{
  "\special {html:<a href=" quote$ *
  swap$ * quote$ * "> }" * swap$ *
  "\special {html:</a>}" *
}
% make hyperref specials
FUNCTION {make.href.hyperref}
{
  "\href{" swap$ * "}{\path{" * swap$ * "}}" *
}
FUNCTION {make.href}
{ hrefform #2 =
    'make.href.hyperref      % hrefform = 2
    { hrefform #1 =
        'make.href.hypertex  % hrefform = 1
        'make.href.null      % hrefform = 0 (or anything else)
      if$
    }
  if$
}
FUNCTION {format.doi}
{ doi empty$
    { "" }
    { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
      's := 't :=
      doiform #1 =
        { "\doi{" s * "}" * }  % command \doi must be defined in documentclass caosp*.cls
        { bbl.doi s * t make.href  }
      if$
    }
  if$
}
%%%original
%FUNCTION {format.doi}
%{ doi empty$
%    { "" }
%    { bbl.doi doi tie.or.space.connect }
%  if$
%}

FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
  #-2 #1 substring$ "1" =
     { bbl.th * }
     { duplicate$ #-1 #1 substring$
       duplicate$ "1" =
         { pop$ bbl.st * }
         { duplicate$ "2" =
             { pop$ bbl.nd * }
             { "3" =
                 { bbl.rd * }
                 { bbl.th * }
               if$
             }
           if$
          }
       if$
     }
   if$
}

MACRO {acmcs} {"ACM Comput. Surv."}

MACRO {acta} {"Acta Inf."}

MACRO {cacm} {"Commun. ACM"}

MACRO {ibmjrd} {"IBM J. Res. Dev."}

MACRO {ibmsj} {"IBM Syst.~J."}

MACRO {ieeese} {"IEEE Trans. Softw. Eng."}

MACRO {ieeetc} {"IEEE Trans. Comput."}

MACRO {ieeetcad}
 {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}

MACRO {ipl} {"Inf. Process. Lett."}

MACRO {jacm} {"J.~ACM"}

MACRO {jcss} {"J.~Comput. Syst. Sci."}

MACRO {scp} {"Sci. Comput. Programming"}

MACRO {sicomp} {"SIAM J. Comput."}

MACRO {tocs} {"ACM Trans. Comput. Syst."}

MACRO {tods} {"ACM Trans. Database Syst."}

MACRO {tog} {"ACM Trans. Gr."}

MACRO {toms} {"ACM Trans. Math. Softw."}

MACRO {toois} {"ACM Trans. Office Inf. Syst."}

MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}

MACRO {tcs} {"Theoretical Comput. Sci."}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f.}" format.name$
    't :=

numnames #5 >
	{
      nameptr #1 >
        {
	      nameptr #4 =
                {
                  ", {et~al.}" *
                }
				{
      				nameptr #4 >
					{ "" * }
					{ ", " * t * }
					if$
				}
				if$

        }
        't
      if$
	}
	{
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " {et~al.}" *
                }
                { " \& " * t * }
              if$
            }
          if$
        }
        't
      if$
	} if$

      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.names.ed}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{f.~}{vv~}{ll}{, jj}"
      format.name$
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " {et~al.}" *
                }
                { " \& " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.key}
{ empty$
    { key field.or.null }
    { "" }
  if$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
        { ", " * bbl.editors * }
        { ", " * bbl.editor * }
      if$
    }
  if$
}

FUNCTION {format.in.editors}
{ editor empty$
    { "" }
    { editor format.names.ed
    }
  if$
}

FUNCTION {format.note}
{ note empty$
    { "" }
    { note #1 #1 substring$
      duplicate$ "{" =
        'skip$
        { output.state mid.sentence =
          { "l" }
          { "u" }
        if$
        change.case$
        }
      if$
      note #2 global.max$ substring$ *
    }
  if$
}

%EDP Sciences le 30/11/2014
FUNCTION {format.eprint}
{ eprint duplicate$ empty$
    'skip$
    { "[\eprint" 
      archiveprefix empty$
        'skip$
        { "[" * archiveprefix * "]" * }
      if$
      "{" * swap$ * "}]" *
    }
  if$
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

FUNCTION {format.title}
{ title empty$
    { "" }
    { title 
    }
  if$
}

FUNCTION {format.full.names}
{'s :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}" format.name$
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " {et~al.}" *
                }
                { " \& " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {author.editor.key.full}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.full.names }
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {author.key.full}
{ author empty$
    { key empty$
         { cite$ #1 #3 substring$ }
          'key
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {editor.key.full}
{ editor empty$
    { key empty$
         { cite$ #1 #3 substring$ }
          'key
      if$
    }
    { editor format.full.names }
  if$
}

FUNCTION {make.full.names}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.full
    { type$ "proceedings" =
        'editor.key.full
        'author.key.full
      if$
    }
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "%ADS_ID " write$
  cite$ write$
  newline$ 
  "\bibitem[{" write$
  label write$
  ")" make.full.names duplicate$ short.list =
     { pop$ }
     { * }
   if$
  "}]{" * write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {n.dashify}
{
  't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {word.in}
{ bbl.in
  " " * }

FUNCTION {format.date}
{ year duplicate$ empty$
    { "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????" }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  after.sentence 'output.state :=
}

FUNCTION {format.btitle}
{ title
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { bbl.volume volume tie.or.space.connect
      series empty$
        'skip$
        { bbl.of space.word * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}


FUNCTION {format.isbn}
{ isbn empty$
    { "" }
    { bbl.isbn isbn tie.or.space.connect }
  if$
}

FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { output.state mid.sentence =
            { bbl.number }
            { bbl.number capitalize }
          if$
          number tie.or.space.connect
          series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { bbl.in space.word * series * }
          if$
        }
      if$
    }
    { "" }
  if$
}

FUNCTION {is.num}
{ chr.to.int$
  duplicate$ "0" chr.to.int$ < not
  swap$ "9" chr.to.int$ > not and
}

FUNCTION {extract.num}
{ duplicate$ 't :=
  "" 's :=
  { t empty$ not }
  { t #1 #1 substring$
    t #2 global.max$ substring$ 't :=
    duplicate$ is.num
      { s swap$ * 's := }
      { pop$ "" 't := }
    if$
  }
  while$
  s empty$
    'skip$
    { pop$ s }
  if$
}

FUNCTION {convert.edition}
{ edition extract.num "l" change.case$ 's :=
  s "first" = s "1" = or
    { bbl.first 't := }
    { s "second" = s "2" = or
        { bbl.second 't := }
        { s "third" = s "3" = or
            { bbl.third 't := }
            { s "fourth" = s "4" = or
                { bbl.fourth 't := }
                { s "fifth" = s "5" = or
                    { bbl.fifth 't := }
                    { s #1 #1 substring$ is.num
                        { s eng.ord 't := }
                        { edition 't := }
                      if$
                    }
                  if$
                }
              if$
            }
          if$
        }
      if$
    }
  if$
  t
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
        { convert.edition "l" change.case$ " " * bbl.edition * }
        { convert.edition "t" change.case$ " " * bbl.edition * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
%        { bbl.pages pages n.dashify tie.or.space.connect }
%        { bbl.page pages tie.or.space.connect }
        { pages n.dashify }
        { pages }
      if$
    }
  if$
}

FUNCTION {first.page}
{ 't :=
  ""
    {  t empty$ not t #1 #1 substring$ "-" = not and }
    { t #1 #1 substring$ *
      t #2 global.max$ substring$ 't :=
    }
  while$
}

FUNCTION {format.journal.pages}
{ pages empty$
    { format.eprint outputeprint                   %EDP Sciences le 30/11/2014
    }
    { duplicate$ empty$
        { pop$ format.pages }
        {
          ", " *
          pages first.page *
        }
      if$
    }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume boldface field.or.null
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    { "" }
    { type empty$
        { bbl.chapter }
        { type "l" change.case$ }
      if$
      chapter tie.or.space.connect
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
        { word.in booktitle emphasize * }
        { word.in booktitle emphasize *
          ", " *
          editor num.names$ #1 >
            { bbl.editors }
            { bbl.editor }
          if$
          * " " *
          format.in.editors *
        }
      if$
    }
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { bbl.techrep }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{
  word.in
  " \cite{" * crossref * "}" *
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      word.in
    }
    { bbl.volume volume tie.or.space.connect
      bbl.of space.word *
    }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{
  word.in
  " \cite{" * crossref * "}" *
}

FUNCTION {format.publisher}
{ publisher empty$
    { "empty publisher in " cite$ * warning$ }
    'skip$
  if$
  ""
  address empty$ publisher empty$ and
    'skip$
    {
      add.blank "(" *
      address empty$
        'skip$
        { address * }
      if$
      publisher empty$
        'skip$
        { address empty$
            'skip$
            { ": " * }
          if$
          publisher *
        }
      if$
      ")" *
    }
  if$
  output
}

STRINGS {oldname}

%%%%%%%% To repeat the same authors

%FUNCTION {name.or.dash}
%{ 's :=
%   oldname empty$
%     { s 'oldname := s }
%     { s oldname =
%         { "---" }
%         { s 'oldname := s }
%       if$
%     }
%   if$
%}

%%%%%%%%  Functions added from astrobib

FUNCTION {format.edn.btitle} % Title should be on stack.
{ duplicate$ empty$ edition empty$ or
    'skip$
    { ", " * format.edition * }
  if$
}

FUNCTION {format.ed.booktitle} % The title should be on the stack.
{ duplicate$ empty$
  { "no book title in " cite$ * warning$ "" pop$ }
  { editor empty$
    author empty$ or  % Empty author means editor already given.
      { format.edn.btitle italics}
      { format.edn.btitle italics  ", " * bbl.editor * " " * format.in.editors * }
      if$
  }
  if$
}

FUNCTION {format.full.book.spec} % The title should be on the stack.
{ series empty$
    { format.ed.booktitle
      volume empty$
		{ number empty$
		    'skip$
		    { " there's a number but no series in " cite$ * warning$
		      " No." number tie.or.space.connect * }
		    if$
		}
		{ ", Vol. {\bf " volume tie.or.space.connect  "}" *
		  number empty$
		    'skip$
		    {"Both volume and number fields in " * cite$ * warning$ }
		    if$
		}
	  if$
      }
    { volume empty$
		{ format.ed.booktitle ", " * series *
		  number empty$
		    'skip$
		    { " No." number tie.or.space.connect * }
		    if$
		}
		{ series ", Vol. {\bf " volume  tie.or.space.connect * "}" *  
	          ", " * swap$ format.ed.booktitle *
		  number empty$
		    'skip$
		    {"Both volume and number fields in " * cite$ * warning$ }
		  if$
		}
	    if$
	 }
	 if$
}

%%%%%%%  End of functions from astrobib

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.title "title" output.check
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  crossref missing$
    { journal italics
      "journal" output.check
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.journal.pages
  format.doi output
  format.note output
  %format.eprint outputeprint                      %EDP Sciences le 30/11/2014
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
%%%%%      name.or.dash
    }
    { format.authors output.nonnull
%%%%%      name.or.dash
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.date "year" output.check
  date.block
  title format.full.book.spec output
%  format.btitle "title" output.check
%  crossref missing$
%    { format.bvolume output
%      format.number.series output
%      format.edition output
   format.publisher
%    }
%    {
%      format.book.crossref output.nonnull
%    }
%  if$
  format.pages output
  format.doi output
  format.isbn output
  format.note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.title "title" output.check
  howpublished output
  address output
  format.note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
%%%%%      name.or.dash
    }
    { format.authors output.nonnull
%%%%%      name.or.dash
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.date "year" output.check
  date.block
  title format.full.book.spec output
%  format.btitle "title" output.check
%  crossref missing$
%    {
%      format.bvolume output
%      format.chapter.pages "chapter and pages" output.check
%      format.number.series output
%      format.edition output
   format.publisher
%    }
%    {
%      format.chapter.pages "chapter and pages" output.check
%      format.book.crossref output.nonnull
%    }
%  if$
  format.pages "pages" output.check
  format.note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.title "title" output.check
%%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  bbl.in " " * booktitle format.full.book.spec  * output
%  crossref missing$
%    { format.in.ed.booktitle "booktitle" output.check
%      format.bvolume output
%      format.number.series output
%      format.edition output
%      format.chapter.pages output
  format.publisher
%    }
%    { format.incoll.inproc.crossref output.nonnull
%      format.chapter.pages output
%    }
%  if$
  format.pages "pages" output.check
  format.note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  author format.key output            % added
  format.title "title" output.check
  format.date "year" output.check
  date.block
  bbl.in " " * booktitle format.full.book.spec * output
%  crossref missing$
%    { format.in.ed.booktitle "booktitle" output.check
%      format.bvolume output
%      format.number.series output
  publisher empty$
    { organization output
      address output
    }
    { organization output
      format.publisher
    }
  if$
%    }
%    { format.incoll.inproc.crossref output.nonnull
%    }
%  if$
  format.pages output
  format.note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  format.authors output
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  format.edition output
  organization output
  address output
  format.note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.title "title" output.check
  bbl.mthesis format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.title output
  howpublished output
  format.note output
  fin.entry
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.title "title" output.check
  bbl.phdthesis format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization output
      organization format.key output }
    { format.editors output }
  if$
%  format.editors output
%  editor format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  title format.full.book.spec output
%  format.btitle "title" output.check
%  format.bvolume output
%  format.number.series output
  publisher empty$ not      % No need for warning if no pub.
    { format.publisher }
    { editor empty$         % For empty editor, organization was already given.
        'skip$
        { organization output }
      if$
      address output
    }
  if$
%  address output
%  organization output
%  publisher output
  format.pages output
  format.note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
  format.title "title" output.check
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
%%%%%  name.or.dash
  format.date "year" output.check
  date.block
%  format.title "title" output.check
  format.note "note" output.check
  fin.entry
}

FUNCTION {default.type} { misc }

READ

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

FUNCTION {format.lab.names}
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$
      " {et~al.}" *
    }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            {
              " {et~al.}" *
            }
            { " \& " * s #2 "{vv~}{ll}" format.name$
              * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.lab.names }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.label}
{ editor empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.label
        'author.key.label
      if$
    }
  if$
  'short.list :=
}

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
     { pop$ "????" }
     'skip$
  if$
  *
  'label :=
}

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
      format.name$ 't :=
      nameptr #1 >
        {
          "   "  *
          namesleft #1 = t "others" = and
            { "zzzzz" * }
            { t sortify * }
          if$
        }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}

FUNCTION {author.sort}
{ author empty$
    { key empty$
        { "to sort, need author or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
        { key empty$
            { "to sort, need author, editor, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {editor.sort}
{ editor empty$
    { key empty$
        { "to sort, need editor or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { editor sort.format.names }
  if$
}

FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.sort
        'author.sort
      if$
    }
  if$
  #1 entry.max$ substring$
  'sort.label :=
  sort.label
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

SORT

STRINGS { last.label next.extra }

INTEGERS { last.extra.num number.label }

FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'last.extra.num :=
  #0 'number.label :=
}

FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}

FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}

EXECUTE {initialize.extra.label.stuff}

ITERATE {forward.pass}

REVERSE {reverse.pass}

FUNCTION {bib.sort.order}
{ sort.label
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {bib.sort.order}

SORT

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
  write$ newline$
  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
  write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.urlbst.variables} % urlbst
EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `apj.bst'.

caosp310.cls · 58 KB

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

demo_caosp310.bib · 4 KB
@BOOK{1687pnpm.book.....N,
   author = {{Newton}, I.},
    title = "{Philosophiae Naturalis Principia Mathematica. Auctore Js. Newton}",
booktitle = {Philosophiae Naturalis Principia Mathematica.~Auctore Js.~Newton, by Newton, Isaac, 1687.},
     year = 1687,
      doi = {10.3931/e-rara-440},
   adsurl = {http://adsabs.harvard.edu/abs/1687pnpm.book.....N},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@BOOK{2014tsa..book.....H,
   author = {{Hubeny}, I. and {Mihalas}, D.},
    title = "{Theory of Stellar Atmospheres}",
booktitle = {Theory of Stellar Atmospheres, by I.~Hubeny and D.~Mihalas.~Princeton, NJ: Princeton University Press, 2014},
     year = 2014,
   adsurl = {http://adsabs.harvard.edu/abs/2014tsa..book.....H},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}


@ARTICLE{2005ApJ...623..411B,
   author = {{Budaj}, J. and {Richards}, M.~T. and {Miller}, B.},
    title = "{A Study of Synthetic and Observed H{$\alpha$} Spectra of TT Hydrae}",
  journal = {\apj},
   eprint = {astro-ph/0501108},
 keywords = {Accretion, Accretion Disks, Stars: Binaries: Close, Stars: Binaries: Eclipsing, Stars: Novae, Cataclysmic Variables, Radiative Transfer, Stars: Individual: Constellation Name: TT Hydrae},
     year = 2005,
    month = apr,
   volume = 623,
    pages = {411-424},
      doi = {10.1086/428662},
   adsurl = {http://adsabs.harvard.edu/abs/2005ApJ...623..411B},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@ARTICLE{2016IAUTA..29..474R,
   author = {{Richards}, M.~T. and {Pribulla}, T. and {Ribas}, I. and {Bradstreet}, D.~H. and 
	{Dreschsel}, H. and {Maceroni}, C. and {Mikolajewska}, J. and 
	{Munari}, U. and {Prsa}, A. and {Scharfe}, C. and {Southworth}, J. and 
	{Trimble}, V.},
    title = "{Division G Commission 42: Close Binary Stars}",
  journal = {Transactions of the International Astronomical Union, Series A},
     year = 2016,
    month = apr,
   volume = 29,
    pages = {474-489},
      doi = {10.1017/S1743921316000922},
   adsurl = {http://adsabs.harvard.edu/abs/2016IAUTA..29..474R},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@ARTICLE{2015AN....336..682P,
   author = {{Pribulla}, T. and {Garai}, Z. and {Hamb{\'a}lek}, L. and {Koll{\'a}r}, V. and 
	{Kom{\v z}{\'{\i}}k}, R. and {Kundra}, E. and {Nedoro{\v s}{\v c}{\'{\i}}k}, J. and 
	{Seker{\'a}{\v s}}, M. and {Va{\v n}ko}, M},
    title = "{Affordable {\'e}chelle spectroscopy with a 60 cm  telescope}",
  journal = {Astronomische Nachrichten},
 keywords = {binaries: spectroscopic, binaries: symbiotic, instrumentation: spectrographs,planetary systems},
     year = 2015,
    month = sep,
   volume = 336,
    pages = {682},
      doi = {10.1002/asna.201512202},
   adsurl = {http://adsabs.harvard.edu/abs/2015AN....336..682P},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@INPROCEEDINGS{2014IAUS..293..165K,
   author = {{Kundra}, E. and {Pribulla}, T. and {Va{\v n}ko}, M. and {Hamb{\'a}lek}, {\softL}.
	},
    title = "{Eclipsing Binaries: Precise Clocks to Detect Extrasolar Planets}",
 keywords = {stars: planetary systems, binaries: eclipsing, techniques: photometric},
booktitle = {Formation, Detection, and Characterization of Extrasolar Habitable Planets},
     year = 2014,
   series = {IAU Symposium},
   volume = 293,
   editor = {{Haghighipour}, N.},
    month = apr,
    pages = {165-167},
      doi = {10.1017/S174392131301274X},
   adsurl = {http://adsabs.harvard.edu/abs/2014IAUS..293..165K},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@ARTICLE{2008CoSka..38..538K,
   author = {{Kom{\v z}{\'{\i}}k}, R. and {Chochol}, D. and {Grygar}, J.},
    title = "{Asynchronous rotation of the mass gaining component in the Algol-type binary TXUMa}",
  journal = {Contributions of the Astronomical Observatory Skalnate Pleso},
 keywords = {stars: close binaries, rotational effect, asynchronous rotation, TX UMa},
     year = 2008,
    month = jun,
   volume = 38,
    pages = {538-544},
   adsurl = {http://adsabs.harvard.edu/abs/2008CoSka..38..538K},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

demo_caosp310.tex — the file that is compiled · 47 KB

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

fig_sinus-eps-converted-to.pdf — binary, 6 KB

fig_sinus.eps — binary, 22 KB

logo_orcid.pdf — binary, 12 KB

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