diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/gammas |
Initial commit
Diffstat (limited to 'macros/latex/contrib/gammas')
-rw-r--r-- | macros/latex/contrib/gammas/README | 16 | ||||
-rw-r--r-- | macros/latex/contrib/gammas/example_bibliography.bib | 31 | ||||
-rw-r--r-- | macros/latex/contrib/gammas/gammas.bst | 1436 | ||||
-rw-r--r-- | macros/latex/contrib/gammas/gammas.cls | 441 | ||||
-rw-r--r-- | macros/latex/contrib/gammas/gammas_template.tex | 136 |
5 files changed, 2060 insertions, 0 deletions
diff --git a/macros/latex/contrib/gammas/README b/macros/latex/contrib/gammas/README new file mode 100644 index 0000000000..0bf325af8d --- /dev/null +++ b/macros/latex/contrib/gammas/README @@ -0,0 +1,16 @@ + This directory contains the LaTeX2e class `gammas'. + Version: 1.0; February 11, 2019 + +This is the official document class for typesetting journal articles +for GAMM Archive for Students (GAMMAS), the open-access online yournal +run by the GAMM Juniors. + +A small template (gammas_template.tex) is provided to show the usage +of the documentclass. For more details we refer to the educational +sample article 'How to write an article for GAMMAS and a longer title' +available at the journal webpage under + + https://doi.org/10.14464/gammas.v1i1.417 + +Copyright 2019, GAMM Juniors. This material is subject to the LaTeX +Project Public License 1.3c. diff --git a/macros/latex/contrib/gammas/example_bibliography.bib b/macros/latex/contrib/gammas/example_bibliography.bib new file mode 100644 index 0000000000..0ceaaed622 --- /dev/null +++ b/macros/latex/contrib/gammas/example_bibliography.bib @@ -0,0 +1,31 @@ +@book{higham1998handbook, + title={Handbook of Writing for the Mathematical Sciences}, + author={Higham, N.J.}, + isbn={978-0-898714-20-3}, + series={Miscellaneous Titles in Applied Mathematics Series}, + year={1998}, + publisher={Society for Industrial and Applied Mathematics}, + doi={10.1137/1.9780898719550} +} + +@article{fehr2016best, + title={Best practices for replicability, reproducibility and reusability of computer-based experiments exemplified by model reduction software}, + author={Fehr, J. and Heiland, J. and Himpe, C. and Saak, J.}, + journal={AIMS Mathematics}, + year={2016}, + volume={1}, + number={3}, + pages={261-281}, + doi={10.3934/Math.2016.3.261} +} + +@article{kern2019gammas, + title = {How to write an article for {GAMMAS} and a longer title}, + author = {Kern, D. and Bartelt, M. and Unger, B.}, + journal = {GAMM Archive for Students}, + doi = {10.14464/gammas.v1i1.417}, + year = {2019}, + volume = {1}, + issue = {1}, + pages = {1-6} +} diff --git a/macros/latex/contrib/gammas/gammas.bst b/macros/latex/contrib/gammas/gammas.bst new file mode 100644 index 0000000000..9e1f7230dd --- /dev/null +++ b/macros/latex/contrib/gammas/gammas.bst @@ -0,0 +1,1436 @@ +%% File 'sammer.bst' derived from 'plainnat.bst' (only format.url disabled) +%% A modification of `plain.bst' for use with natbib package +%% +%% Copyright 1993-2007 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % citation key, to preserve any natural sequence. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { 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 +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * 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 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "" } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + 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$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ 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 {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " 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 + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +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." * } + { " and " * 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + cite$ + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #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.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label '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$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/macros/latex/contrib/gammas/gammas.cls b/macros/latex/contrib/gammas/gammas.cls new file mode 100644 index 0000000000..1da7df12d1 --- /dev/null +++ b/macros/latex/contrib/gammas/gammas.cls @@ -0,0 +1,441 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Copyright of Matthias Bartelt, Benjamin Unger and Dominik Kern % +% email: dominik.kern@mb.tu-chemnitz.de % +% This work may be distributed and/or modified under the % +% conditions of the LaTeX Project Public License version 1.3c % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% identification % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{gammas}[2019/02/11 v1.0 class definition for GAMM Archiv for Students] +\LoadClass[11pt, twoside, numbers=noenddot]{scrartcl} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% packages loaded by default % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% language and font packages +\RequirePackage[latin1,utf8]{inputenc} +\RequirePackage[T1]{fontenc} +\RequirePackage{lmodern} \normalfont %to load T1lmr.fd +\DeclareFontShape{T1}{lmr}{bx}{sc} { <-> ssub * cmr/bx/sc }{} +\RequirePackage{fourier} +\RequirePackage[english]{babel} +\RequirePackage{microtype} % for improved spacing +\RequirePackage{anyfontsize} + +% math packages and symbols +\RequirePackage{amssymb} +\RequirePackage[intlimits]{amsmath} +\RequirePackage{amsthm} +\RequirePackage{mathtools} +\RequirePackage{mathrsfs} + +% graphics/color packages +\RequirePackage{graphicx} +\RequirePackage{xcolor} +\definecolor{GAMMgreen}{RGB}{14,123,44} +\RequirePackage{tikz} +\RequirePackage{pgfplots} +\pgfplotsset{compat=1.10} + +% layout/formatting packages +\RequirePackage{geometry} +\geometry{a4paper, left=5cm, right=1.5cm, top=2cm, bottom=2.5cm, headheight=3cm} +\RequirePackage[automark,draft=false]{scrlayer-scrpage} % for headers and footers +\RequirePackage{booktabs} % for nice tables +\RequirePackage{enumitem} +\setitemize{parsep=0pt,itemsep=0pt} +\setenumerate{parsep=0pt,itemsep=0pt} +\setdescription{parsep=0pt,itemsep=0pt,labelindent=1em,font=\textit} +\RequirePackage{lastpage} + +% Packages for units +\RequirePackage[binary-units=true]{siunitx} +\sisetup{% + list-units = brackets, + range-units = brackets, + range-phrase = {-}, + per-mode=symbol +} + +% Packages for reviewing purposes +\RequirePackage[left,pagewise,switch]{lineno} + +% Program codes and algorithms +\RequirePackage{listings} + +% packages for conditional options +\RequirePackage{ifthen} + +% linking packages +\RequirePackage[colorlinks,linkcolor=GAMMgreen,citecolor=GAMMgreen,urlcolor=black]{hyperref} +\RequirePackage[nameinlink]{cleveref} +\RequirePackage[babel]{csquotes} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% fix for linenumbers with ams environments % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% from http://phaseportrait.blogspot.de/2007/08/lineno-and-amsmath-compatibility.html +\newcommand*\patchAmsMathEnvironmentForLineno[1]{% + \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname + \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname + \renewenvironment{#1}% + {\linenomath\csname old#1\endcsname}% + {\csname oldend#1\endcsname\endlinenomath}}% +\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{% + \patchAmsMathEnvironmentForLineno{#1}% + \patchAmsMathEnvironmentForLineno{#1*}}% +\AtBeginDocument{% +\patchBothAmsMathEnvironmentsForLineno{equation}% +\patchBothAmsMathEnvironmentsForLineno{align}% +\patchBothAmsMathEnvironmentsForLineno{flalign}% +\patchBothAmsMathEnvironmentsForLineno{alignat}% +\patchBothAmsMathEnvironmentsForLineno{gather}% +\patchBothAmsMathEnvironmentsForLineno{multline}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% settings for the listing package % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definecolor{lstbackground}{RGB}{235,235,235} +\definecolor{lstcommand}{RGB}{0,100,0} +\AtBeginDocument{% + \lstset{% + basicstyle = \ttfamily\fontsize{9.5pt}{9.5pt}\selectfont, + morecomment = [s][\color{green}]{\#}, + keywordstyle = \color{blue}\bfseries, % Schluesselwoerte (if,int,...) + commentstyle = \color{lstcommand}\emph, % Kommentare + stringstyle = \color{red}, % Strings + %captionpos = bottom (b), % Beschriftung bottom (b) + backgroundcolor = \color{lstbackground}, + frame = tblr, % Rahmen top (t), + numberstyle = \tiny, + stepnumber = 1, % Schritweite + numbersep = 5pt, + breaklines = true, % automatischer Zeilenumbruch + tabsize = 3, + showstringspaces = false, + escapeinside = {(*@}{@*)}, + comment=[l]{\*}, % Einleitendes zeichen fuer Kommentare + } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% compression of the bibliography % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\AtBeginDocument{ + \let\oldbibliography\thebibliography + \renewcommand{\thebibliography}[1]{% + \footnotesize + \oldbibliography{#1}% + \setlength{\itemsep}{0pt}% + } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% definitions of global variables % +% the definition with 'def' is a little bit tricky % +% but this is necessary % +% the small name is the command for the tex-file with one argument % +% the capital name after the next 'def' is the argument defined in the tex-file % +% the last 'def' is the default ( simple empty ) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\gammauthora#1{\def\GAMMAUTHORA{#1}} \def\GAMMAUTHORA{} +\def\gammauthorb#1{\def\GAMMAUTHORB{#1}} \def\GAMMAUTHORB{} +\def\gammauthorc#1{\def\GAMMAUTHORC{#1}} \def\GAMMAUTHORC{} +\def\gammauthord#1{\def\GAMMAUTHORD{#1}} \def\GAMMAUTHORD{} +\def\gammauthore#1{\def\GAMMAUTHORE{#1}} \def\GAMMAUTHORE{} +\def\gammauthorf#1{\def\GAMMAUTHORF{#1}} \def\GAMMAUTHORF{} + +\def\gammaddressa#1{\def\GAMMADDRESSA{#1}} \def\GAMMADDRESSA{} +\def\gammaddressb#1{\def\GAMMADDRESSB{#1}} \def\GAMMADDRESSB{} +\def\gammaddressc#1{\def\GAMMADDRESSC{#1}} \def\GAMMADDRESSC{} +\def\gammaddressd#1{\def\GAMMADDRESSD{#1}} \def\GAMMADDRESSD{} +\def\gammaddresse#1{\def\GAMMADDRESSE{#1}} \def\GAMMADDRESSE{} +\def\gammaddressf#1{\def\GAMMADDRESSF{#1}} \def\GAMMADDRESSF{} + +\newcommand{\inst}[1]{\textsuperscript{\textit{#1}}} +\newcommand{\corauth}{\textsuperscript{,$\star$}} + + +\def\gammauthorhead#1{\def\GAMMAUTHORHEAD{#1}} \def\GAMMAUTHORHEAD{} +\def\gammcorrespondence#1{\def\GAMMCORRESPONDENCE{#1}} \def\GAMMCORRESPONDENCE{} +\def\gammsupervisor#1{\def\GAMMSUPERVISOR{#1}} \def\GAMMSUPERVISOR{} +\def\gammotherpublication#1{\def\GAMMOTHERPUBLICATION{#1}} \def\GAMMOTHERPUBLICATION{} + +\def\gammbibfilename#1{\def\GAMMBIBFILENAME{#1}} \def\GAMMBIBFILENAME{mybibfile} +\def\gammloadoptbiber#1{\def\GAMMLOADOPTBIBER{#1}} \def\GAMMLOADOPTBIBER{} +\def\gammbiberopt#1{\def\GAMMBIBEROPT{#1}} \def\GAMMBIBEROPT{} +\def\gammloadoptbibtex#1{\def\GAMMLOADOPTBIBTEX{#1}} \def\GAMMLOADOPTBIBTEX{} +\def\gammfinalmode#1{\def\GAMMFINALMODE{#1}} \def\GAMMFINALMODE{} +\def\gammtwocolumnmode#1{\def\GAMMTWOCOLUMNMODE{#1}} \def\GAMMTWOCOLUMNMODE{} + +% definition for title this option must be set +\newcommand*{\gammtitle}[1]{\def\gammtitle{#1}} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% definitions of global environments % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newenvironment{gammabstract}{\indent\textbf{Abstract:}\begin{itshape}}{\end{itshape}\par} +\newenvironment{gammkeywords}{\indent\textbf{Keywords:}}{\par} +\newenvironment{gammacknowledgement}{\bigskip\indent\textbf{Acknowledgements:}}{\par} +\newenvironment{gammacode}{\bigskip\indent\textbf{Code Availability:}}{\par} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% definitions of the documentclass options % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@productionMode{false} +\def\@biber{false} +\def\@biberBackref{false} +\def\@bibtex{false} +\def\@twocolumn{true} + + +% bibtex vs biber +\gammloadoptbiber{true} % default, will be deleted for usebibtex +\DeclareOption{usebiber}{ + \def\@biber{true} + \gammloadoptbiber{true} % evaluation happens after arguments are passed (near eof) +} +% if bibtex is set biber will be deleted +\DeclareOption{usebibtex}{ + \def\@bibtex{true} + \gammloadoptbibtex{true} % evaluation happens after arguments are passed (near eof) + \gammloadoptbiber{} % evaluation happens after arguments are passed (near eof) +} + + +% option correction more space around the the text +% this does not scale the text it changes the papersize +% this options sets also the backref option for biblatex +% and the linenumbers will be shown +% In additions, it marks badboxes +\gammbiberopt{true} +\gammfinalmode{} % evaluation happens after arguments are passed (near eof) +\overfullrule=5pt +\AtBeginDocument{% + \linenumbers% + \switchlinenumbers +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% pass options to class % +% - now auxilary macros (gammloadoptbiber, gammfinalmode) can be evaluated % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% definitions of the title page % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\gammasHeader}{% + \begin{center}% + \ifthenelse{\equal{\@productionMode}{true}}{% + % logo GAMMAS + \parbox{2.5cm}{\includegraphics[width=\linewidth]{\gammalogo}} + \hfill + % title of the journal + \parbox{10cm}{% + \centering \textbf{International Association}\\ + \textbf{of Applied Mathematics and Mechanics}\\ + \textbf{-- Archive for Students --}% + } + % logo GAMM juniors + \hfill + \parbox{2.5cm}{\includegraphics[width=\linewidth]{\gjlogo}} + % set correct page number + \setcounter{page}{\@gammpagenum} + }{} + \vspace*{3em} + + \begin{minipage}{.75\textwidth}% + \begin{center}% + {\LARGE \textbf{\gammtitle{}}\par}% + \vspace{1cm}% + \GAMMAUTHORA{}% + \ifx\GAMMAUTHORB\empty% + \else% + , \GAMMAUTHORB{}% + \fi% + \ifx\GAMMAUTHORC\empty% + \else% + , \GAMMAUTHORC{}% + \fi% + \ifx\GAMMAUTHORD\empty% + \else% + , \GAMMAUTHORD{}% + \fi% + \ifx\GAMMAUTHORE\empty% + \else% + , \GAMMAUTHORE{}% + \fi% + \ifx\GAMMAUTHORF\empty% + \else% + , \GAMMAUTHORF{}% + \fi% + \\\vspace{0.5cm}\par% + \ifx\GAMMADDRESSA\empty% + \else% + $^a$ \GAMMADDRESSA{}\\% + \fi% + \ifx\GAMMADDRESSB\empty% + \else% + $^b$ \GAMMADDRESSB{}\\% + \fi% + \ifx\GAMMADDRESSC\empty% + \else% + $^c$ \GAMMADDRESSC{}\\% + \fi% + \ifx\GAMMADDRESSD\empty% + \else% + $^d$ \GAMMADDRESSD{}\\% + \fi% + \ifx\GAMMADDRESSE\empty% + \else% + $^e$ \GAMMADDRESSE{}\\% + \fi% + \ifx\GAMMADDRESSF\empty% + \else% + $^f$ \GAMMADDRESSF{}\\% + \fi% + \vspace{0.5cm}\par% + \ifthenelse{\equal{\@productionMode}{true}}{% + received \@receiveddate, accepted \@accepteddate, published \@publisheddate \par% + }{} + \end{center}% + \rule{0.5\textwidth}{.4pt}\par% + {\footnotesize * corresponding author: \GAMMCORRESPONDENCE}\par% + \ifx\GAMMSUPERVISOR\empty% + \else% + {\footnotesize supervisor: \GAMMSUPERVISOR}\par% + \fi% + \ifx\GAMMOTHERPUBLICATION\empty% + \else% + {\footnotesize \GAMMOTHERPUBLICATION}\par% + \fi% + \end{minipage}% + %\vspace{\baselineskip}% + \end{center}% + \rule{1\textwidth}{.4pt}\par% + \vspace{1cm}% +} + +\newcommand{\makegammhead}{% + \setlength{\columnsep}{15pt} + \ifthenelse{\equal{\@twocolumn}{true}}{% + \twocolumn[\gammasHeader] + }{% + \gammasHeader + } + \thispagestyle{scrplain}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% redefine maketitle to show the new gammhead % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter + \def\@maketitle{% + \makegammhead + } +\makeatother + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% set geometry of the manuscript % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx\GAMMFINALMODE\empty% if final mode off + \geometry{paperheight=35.7cm, paperwidth=27cm, left=4.5cm, right=4.5cm, top=5cm, bottom=5.5cm, headheight=6cm} +\else% + \geometry{paperheight=29.7cm, paperwidth=21cm, left=1.5cm, right=1.5cm, top=2cm, bottom=2.5cm, headheight=3cm} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% definitions of header and footer % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagestyle{scrheadings} +\renewcommand*{\titlepagestyle}{scrplain} +\clearscrheadfoot + +\makeatletter + \ihead[\href{http://www.gammas.gamm-juniors.de}{\texttt{www.gammas.gamm-juniors.de}}]{\today} + \chead{\GAMMAUTHORHEAD{}} + \ohead[\today]{\thepage} + \ifoot[Preprint submitted to GAMM archive for students]{Preprint submitted to GAMMAS} +\makeatother + +\AtBeginDocument{\pagestyle{scrheadings}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% conditions for biber and bibtex % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx\GAMMLOADOPTBIBER\empty% +\else% for biber + \emergencystretch=1em + \RequirePackage[style=numeric, backend=biber,url=false, isbn=true, bibencoding=utf8]{biblatex} % block=ragged + \newcommand{\setbib}[1]{\printbibliography} + \newcommand{\setbiber}[1]{\bibliography{#1}} + \ifx\GAMMBIBEROPT\empty% + \else% + \ExecuteBibliographyOptions{% + backref = true,% + backrefstyle=all+% + }% + \fi% +\fi + +\ifx\GAMMLOADOPTBIBTEX\empty% +\else% for bibtex + \RequirePackage[numbers,sort]{natbib} + \newcommand{\setbib}[1]{\bibliographystyle{gammas}\begingroup \hbadness 10000\relax\bibliography{#1}\endgroup}% + \newcommand{\setbiber}[1]{}% +\fi% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% end % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/gammas/gammas_template.tex b/macros/latex/contrib/gammas/gammas_template.tex new file mode 100644 index 0000000000..7e8aebaa43 --- /dev/null +++ b/macros/latex/contrib/gammas/gammas_template.tex @@ -0,0 +1,136 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% class options % +% options can be modified % +% % +% % +% -> usebiber - default option: uses the biblatex package % +% -> usebibtex - use the classical bibtex with plain format % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[usebibtex]{gammas} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% author settings % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gammtitle{Article Template for GAMM Archive for Students} + +% Please provide for each author the name and address (the full postal address must be provided in the online form but not on the paper) + +% authors (there is a maximum of six authors possible) +% please mark the corresponding author with the command \coraauth after the institute (see the example below) +\gammauthora{Author one\inst{a}\corauth} +\gammauthorb{Author two\inst{a}} +\gammauthorc{Author three\inst{b}} + +% Use the short forms of the author names for the header +\gammauthorhead{O.~Author, T.~Author, T.~Author} + +% author affiliations (full postal adress must be provided in the online form but not on the manuscript) +\gammaddressb{Technische Universität Berlin, Berlin, Germany} +\gammaddressa{Technische Universität Chemnitz, Chemnitz, Germany} % + +% additional information of the corresponding author +\gammcorrespondence{email@example.com} + +% Supervisor +\gammsupervisor{FirstName LastName, TU Gammburg, Asymtopia} % optional, if supervisor wants to be mentioned + +% name of the bibfile without '.bib' +\gammbibfilename{example_bibliography} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% newcommands % +% this is optional but it makes live very easy % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Theorem-like environments +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}[theorem]{Lemma} + +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% begindocument start % +% do not modify this % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setbiber{\GAMMBIBFILENAME} +% +\begin{document} +\maketitle + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% begindocument end % +% do not modify this % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abstract % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{gammabstract} + This is the abstract (max.\ 250 words for research papers and tutorials, max.\ 150 words for technical briefs) +\end{gammabstract} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% keywords % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{gammkeywords} + mathematics, mechanics, \LaTeX \\ (max. 5 keywords) +\end{gammkeywords} + +\section{Introduction} +This is the introduction. + +\section{Contents} +This is some scientific content. Make sure to use the commands from the \texttt{siunitx} package for all numbers. For instance, we have +\begin{gather*} + \SI{1.2345e6}{\metre\per\second}, \qquad \SI{20}{\percent},\\ + {\sisetup{fixed-exponent=-9,scientific-notation=fixed}\SIrange{80e-9}{120e-9}{\kilogram}}, \qquad \num{5.4321e-9}. +\end{gather*} +For more details about the typesetting in GAMMAS, we refer to \cite{kern2019gammas}. For a concise introduction to scientific writing +in mathematics we refer to the excellent monograph \cite{higham1998handbook}. Consult the documentation of the \texttt{amsmath}\footnote{\url{https://ctan.org/pkg/amsmath}} package for useful hints on typesetting equations in \LaTeX{}. + +\section{Summary} +This is a great summary. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% code availability block (not optional) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Every accepted article for GAMMAS must contain a code availability statement. +% You can modify the following example to account for your requirements. +\begin{gammacode} + The source code of the implementations used to compute the presented results is available as supplementary material and can be obtained under the + \begin{center} + \href{https://doi.org/10.14464/gammas.v1i1.417}{doi:~10.14464/gammas.v1i1.417}. + \end{center} + % If you want to attach the code as supplementary material, then this doi will be the same as the doi for your article and inserted by the copyeditor. Otherwise you can use another stable location. + % + If the source code is not shared, a simple statement should be given for explanation, e.g.\ for license issues, non-disclosure agreements or trade secrets. For \emph{best practices} for code we refer to \cite{fehr2016best}. +\end{gammacode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% acknowledgment block (optional) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{gammacknowledgement} + If you received any funding for carrying out the reported research, you should list the funding agencies and (if applicable) the project and project number. +\end{gammacknowledgement} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% appendix (optional) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\appendix + +\section{Appendix} +This is an (optional) appendix + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% enddocument start % +% do not modify this % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setbib{\GAMMBIBFILENAME} +\end{document}
\ No newline at end of file |