diff options
author | Norbert Preining <norbert@preining.info> | 2020-02-19 03:02:04 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-02-19 03:02:04 +0000 |
commit | c36a274c633c08115b6006622112f5609031001e (patch) | |
tree | e0935730aa90d6cd1427245dbb6e996fc331de94 /macros/luatex/optex/bib-iso690.opm | |
parent | bb5325dae4202b519b7210a338651301e048998d (diff) |
CTAN sync 202002190302
Diffstat (limited to 'macros/luatex/optex/bib-iso690.opm')
-rw-r--r-- | macros/luatex/optex/bib-iso690.opm | 922 |
1 files changed, 922 insertions, 0 deletions
diff --git a/macros/luatex/optex/bib-iso690.opm b/macros/luatex/optex/bib-iso690.opm new file mode 100644 index 0000000000..a104e58921 --- /dev/null +++ b/macros/luatex/optex/bib-iso690.opm @@ -0,0 +1,922 @@ +% opmac-bib-iso690 ... the OPmac bib style for reading .bib databases +% Petr Olsak, Apr. 2015 (beta) +% +% The bibliography printing from .bib files by ISO 690 standard is defied here. +% See the end of this file and the file opmac-bib.tex for more information. + +\ifx\opmacbibstyle\undefined \errmessage + {This file can be read by ``\string\usebib/? (simple) bibfiles'' command only} + \endinput \fi + +% misc: + +\def\maybedot{\ifnum\spacefactor=\sfcode`\.\relax\else.\fi} +\tmpnum=\sfcode`\. \advance\tmpnum by-2 \sfcode`\.=\tmpnum \sfcode`\?=\tmpnum \sfcode`\!=\tmpnum +\let\.=\maybedot % prevents from double periods + +\CreateField {option} +\def\isbiboption#1#2{\edef\tmp{\noexpand\isbiboptionA{#1}}\tmp} +\def\isbiboptionA#1{\def\tmp##1 #1 ##2\relax{% + \if^##2^\csname iffalse\expandafter\endcsname \else\csname iftrue\expandafter\endcsname \fi}% + \expandafter\tmp\biboptionsi #1 \relax} +\def\bibopt[#1]#2#3{\isbiboption{#1}\iftrue\def\tmp{#2}\else\def\tmp{#3}\fi\tmp} +\def\biboptionvalue#1#2{\def\tmp##1 #1:##2 ##3\relax{\def#2{##2}}% + \expandafter\tmp\biboptionsi #1: \relax} + +\def\readbiboptions{% + \RetrieveFieldIn{option}\biboptionsi + \toks1=\expandafter{\biboptionsi}% + \ifx\biboptions\undefined \toks2={}\else \toks2=\expandafter{\biboptions}\fi + \edef\biboptionsi{\space \the\toks1 \space \the\toks2 \space}% +} + +% Formating of Author/Editor lists: + +\def\firstauthorformat{% + \upper{\Lastname}\bprintc\Firstname{, *}\bprintc\Von{ *}\bprintc\Junior{, *}% +} +\def\otherauthorformat{% + \bprintc\Firstname{* }\bprintc\Von{* }\upper{\Lastname}\bprintc\Junior{, *}% +} +\def\commonname{% + \ifnum\NameCount=1 + \firstauthorformat + \ifx\dobibmark\undefined \edef\dobibmark{\Lastname}\fi + \else + \ifnum0\namecount=\NameCount + \ifx\maybeetal\empty \bibconjunctionand\else , \fi + \else , \fi + \otherauthorformat + \fi +} +\def\authorname{% + \ifnum\NameCount>0\namecount\relax\else \commonname \fi + \ifnum\NameCount=0\namecount\relax \maybeetal \fi +} +\let\editorname=\authorname + +\def\prepareauedoptions#1{% + \def\mabyetal{}\csname lb@abbreviatefalse\endcsname + \biboptionvalue{#1max}\authormax + \biboptionvalue{#1min}\authormin + \biboptionvalue{#1pre}\authorpre + \biboptionvalue{#1print}\authorprint + \isbiboption{#1etal}\iftrue \def\maybeetal{\Mtext{bib.etal}}\fi + \biboptionvalue{#1trim}\autrim + \let\namecountraw=\namecount + \ifx\authormax\empty \else + \ifnum 0\authormax<0\namecount + \edef\namecount{\ifx\authormin\empty\authormax\else\authormin\fi}% + \def\maybeetal{\Mtext{bib.etal}}% + \fi\fi + \ifx\autrim\empty \def\autrim{10000}\fi + \ifnum\autrim=0 \def\autrim{10000}\fi + \ifnum 0\namecount<\autrim\relax \else \AbbreviateFirstname \fi +} +\def\maybeetal{} + +\ifx\upper\undefined + \ifx\sc\undefined \def\upper{\uppercase\expandafter}\else \def\upper#1{{\sc#1}}\fi +\fi + +% Preparing bib-mark (used when \nonumcitations is set): + +\def\setbibmark{% + \ifx\dobibmark\undefined \def\dobibmark{}\fi + \RetrieveFieldIn{bibmark}\tmp + \ifx\tmp\empty \RetrieveFieldIn{year}\tmp \edef\tmp{\dobibmark, \tmp}\fi + \bibmark=\expandafter{\tmp}% +} + +% Multilinguals: English Czech Slovak + +\mtdef{bib.and} {, and } { a } {} +\mtdef{bib.etal} { et al.} { a~kol.} {} +\mtdef{bib.edition} { ed.} { vyd.} {} +\mtdef{bib.bachthesis} {Bachelor's Thesis} {Bakalářská práce} {Bakalárska práca} +\mtdef{bib.masthesis} {Master's Thesis} {Diplomová práce} {Diplomová práca} +\mtdef{bib.phdthesis} {Ph.D. Thesis} {Disertační práce} {Dizertačná práca} +\mtdef{bib.available} {Available from } {Dostupné na } {} +\mtdef{bib.availablealso} {Available also from } {Dostupné též na } {Dotupné tiež na } +\mtdef{bib.citedate} {cit.~} {vid.~} {} +\mtdef{bib.volume} {Vol.~} {ročník~} {} +\mtdef{bib.number} {No.~} {č.~} {} +\mtdef{bib.prepages} {pp.~} {s.~} {} +\mtdef{bib.postpages} {~p.} {~s.} {} +\mtdef{bib.editor} {,~ed.} {,~editor} {} +\mtdef{bib.editors} {,~eds.} {,~editoři} {,~editori} + + +\def\bibconjunctionand{\Mtext{bib.and}} +\def\preurl{\Mtext{bib.available}} +\let\predoi=\preurl +\def\postedition{\mtext{bib.edition}} +\def\Inclause{In:~} +\def\prevolume{\mtext{bib.volume}} +\def\prenumber{\mtext{bib.number}} +\def\prepages{\mtext{bib.prepages}} +\def\posteditor{\ifnum0\namecountraw>1 \Mtext{bib.editors}\else\Mtext{bib.editor}\fi} + + +\chardef\documentlanguage=\language +\def\Mtext#1{\csname _mt:#1:\csname lan:\the\documentlanguage\endcsname\endcsname} + +\CreateField {lang} +\def\setlang#1{\ifx#1\empty \else + \expandafter \ifx \csname #1Patt\endcsname \relax + \opwarning{The language "#1" used in .bib file is unknown} + \else \language=\csname #1Patt\endcsname + \fi\fi +} +\ifx\USenglish\undefined \chardef\USenglish=0 \fi +\let\enPatt=\USenglish \let\usPatt=\USenglish +\ifx\csPatt \undefined \let\csPatt=\czPatt \else \let\czPatt=\csPatt \fi + +% Non-standard fieldnames: + +\CreateField {ednote} +\CreateField {citedate} +\CreateField {numbering} +\CreateField {isbn} +\CreateField {issn} +\CreateField {doi} +\CreateField {url} +\CreateField {bibmark} + +% Sorting: + +\SortingOrder{name,year}{lfvj} +\SpecialSort {key} + +% Misc: + +\def\bibwarninga{\bibwarning} +\def\bibwarningb{\bibwarning} + +\def\docitedate #1/#2/#3/#4\relax{[\Mtext{bib.citedate}% + \if^#2^#1\else + \if^#3^#1/#2\else + \docitedateA{#1}{#2}{#3}% + \fi\fi ]% +} +\def\docitedateA#1#2#3{% + \ifx\csPatt\undefined \mathchardef\csPatt=10000 \fi + \ifx\skPatt\undefined \mathchardef\skPatt=10000 \fi + \ifnum\documentlanguage=\csPatt \docitedateCS{#1}{#2}{#3}% + \else \ifnum\documentlanguage=\skPatt \docitedateSK{#1}{#2}{#3}% + \else \docitedateEN{#1}{#2}{#3}% + \fi\fi +} +\def\docitedateEN#1#2#3{#1-#2-#3} +\def\docitedateCS#1#2#3{\hbox{\tmpnum=#3 \the\tmpnum. \tmpnum=#2 \the\tmpnum. #1}} +\let\docitedateSK=\docitedateCS + +\def\doyear#1{ + \biboptionvalue{yearprint}\yearprint + \ifx\yearprint\empty#1\else\def\YEAR{#1}\yearprint\fi +} +\def\preparenumbering{% + \def\VOL{\RetrieveField{volume}}% + \def\NO{\RetrieveField{number}}% + \def\PP{\RetrieveField{pages}}% +} +\def\prepareednote{% + \def\EDN{\RetrieveField{edition}}% + \def\ADDR{\RetrieveField{address}}% + \def\PUBL{\RetrieveField{publisher}}% + \def\YEAR{\RetrieveField{year}}% + \def\AU{\bprintb[!author]{\doauthor0{####1}}{}}% + \def\ED{\bprintb[!editor]{\doeditor0{####1}}{}}% + \preparenumbering +} +\def\doedition#1{% + \biboptionvalue{editionprint}\editionprint + \ifx\editionprint\empty#1\postedition\else\def\ED{#1}\editionprint\fi +} +\def\doauthor#1#2{\prepareauedoptions{au}\let\iseditorlist=\undefined + \if1#1\def\AU{#2}\else\let\authorprint=\empty\fi + \ifx\authorprint\empty #2\else \authorprint\fi +} +\def\doeditor#1#2{\prepareauedoptions{ed}\let\firstauthorformat=\otherauthorformat + \if1#1\def\ED{#2}\else\let\authorprint=\empty\fi + \ifx\authorprint\empty #2\posteditor\else \authorprint\fi +} + +% Entry types: + +\sdef{print:BEGIN}{% + \readbiboptions + \biboptionvalue{titlepost}\titlepost + \isbiboption{unpublished}\iftrue \let\bibwarninga=\relax \let\bibwarningb=\relax \fi + \isbiboption{nowarn}\iftrue \let\bibwarning=\relax \fi + \isbiboption{urlalso}\iftrue \def\preurl{\Mtext{bib.availablealso}}\fi + \RetrieveFieldIn{lang}\langentry \setlang\langentry +} +\sdef{print:END}{% + \bprinta [note] {*.}{}% + \setbibmark +} +\def\bookgeneric#1{% + \bprinta [howpublished] {[*].\ }{}% + \bprintb [edition] {\doedition{##1}\.\ }{}% + \bprinta [ednote] {*.\ }{}% + \bprinta [address] {*\bprintv[publisher]{:}{\bprintv[year]{,}{.}}\ }{\bibwarninga}% + \bprinta [publisher] {*\bprintv[year]{,}{.}\ }{\bibwarninga}% + \bprintb [year] {\doyear{##1}\bprintv[citedate]{\bprintv[numbering]{.}{}}{.}\ }{\bibwarning}% + \bprinta [numbering] {\preparenumbering*\bprintv[citedate]{}{\.}\ }{}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + #1% + \bprinta [series] {*.\ }{}% + \bprinta [isbn] {ISBN~*.\ }{\bibwarningb}% + \bprinta [issn] {ISSN~*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:book}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bookgeneric{}% +} +\sdef{print:article}{% + \biboptionvalue{journalpost}\journalpost + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprinta [title] {*.\ \bprintc\titlepost{*.\ }}{\bibwarning}% + \bprintb [journal] {{\em##1}\bprintc\journalpost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarninga}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [address] {*\bprintb[publisher]{:}{,}\ }{}% + \bprinta [publisher] {*, }{}% + \bprinta [month] {*, }{}% + \bprintb [year] {\doyear{##1}\bprintv[volume,number,pages]{,}{\.}\ }{}% + \bprinta [numbering] {\preparenumbering*\bprintv[citedate]{}{\.}\ } + {\bprinta [volume] {\prevolume*\bprintv[number,pages]{,}{\.}\ }{}% + \bprinta [number] {\prenumber*\bprintv[pages]{,}{\.}\ }{}% + \bprintb [pages] {\prepages\hbox{##1}\bprintv[citedate]{}{\.}\ }{\bibwarninga}}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprinta [issn] {ISSN~*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:inbook}{% + \let\bibwarningb=\relax + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprinta [title] {*.\ }{\bibwarning}% + \Inclause + \bprintb [!editor] {\doeditor1{##1}\.\ }{}% + \bprintb [booktitle] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bookgeneric{\bprintb [pages] {\prepages\hbox{##1}. }{}}% +} +\slet{print:inproceedings}{print:inbook} +\slet{print:conference}{print:inbook} + +\sdef{print:thesis}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [address] {*\bprintv[school]{:}{\bprintv[year]{,}{.}}\ }{\bibwarning}% + \bprinta [school] {*\bprintv[year]{,}{.}\ }{\bibwarning}% + \bprinta [month] {*, }{}% + \bprintb [year] {\doyear{##1}\bprintv[citedate]{}{.}\ }{\bibwarninga}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprinta [type] {*\bprintv[ednote]{,}{.}\ }% + {\ifx\thesistype\undefined\bibwarning\else\thesistype\bprintv[ednote]{,}{.}\ \fi}% + \bprinta [ednote] {*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:phdthesis}{\def\thesistype{\Mtext{bib.phdthesis}}\csname print:thesis\endcsname} +\sdef{print:mastershesis}{\def\thesistype{\Mtext{bib.masthesis}}\csname print:thesis\endcsname} +\sdef{print:bachelorsthesis}{\def\thesistype{\Mtext{bib.bachthesis}}\csname print:thesis\endcsname} + +\sdef{print:generic}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [ednote] {\prepareednote*\bprintv[citedate]{}{.}\ }{\bibwarning}% + \bprinta [year] {}{\bibwarning}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\slet{print:booklet}{print:generic} +\slet{print:incolleciton}{print:generic} +\slet{print:manual}{print:generic} +\slet{print:proceedings}{print:generic} +\slet{print:techreport}{print:generic} +\slet{print:unpublished}{print:generic} + +\sdef{print:misc}{\let\bibwarning=\relax \csname print:generic\endcsname} + +\endinput + + +opmac-bib-iso690.tex +==================== + +This is the iso690 bibliographic style used by opmac-bib.tex package. + +See op-example.bib for an example of the .bib input. You can try it by: + +\input opmac-bib +\nocite[*] +\usebib/s (iso690) op-example +\end + + +Common rules in .bib files: +-------------------------- + +There are entries of type @FOO{...} in the .bib file. Each entry consists of +fields in the form name = "value", or name = {value}. No matter which form is +used. If the value is pure numeric then you can say simply name = value. +Warning: the comma after each field value is mandatory! If it is missing then the +next field is ignored or bad interpreted. + +The entry names and field names are case insensitive. If there exist a data +field no mentioned here then it is simply ignored. You can use it to store +more information (abstract, for example). + +There are ``standard fields'' used in ancient bibTeX (author, title, editor, edition, +etc., see http://en.wikipedia.org/wiki/BibTeX). The iso690 style introduces +several ``non-standard'' fields: ednote, numbering, isbn, issn, doi, url, +citedate, key, bibmark. They are documented here. + +Moreover, there are two optional special fields: + +lang = language of the entry. The hyphenation plus autogenerated phrases and + abbreviations will be typeset by this language. +option = options by which you can control special printing of vairous fields. + +There can be only one option field per each entry with (may be) more options +separated by spaces. You can declare the global option(s) in your document +applied for each entry by \def\biboptions{...}. + + +The author field +---------------- + +All names in the author list have to be separated by " and ". Each author +can be written by various formats (the ``von'' part is typically missing): + + Firstname(s) von Lastname + or + von Lastname, Firstname(s) + or + von Lastname, After, Firstname(s) + +Only the Lastname part is mandatory. Examples: + + Petr Olšák + or + Olšák, Petr + + Leonardo Piero da Vinci + or + da Vinci, Leonardo Piero + or + da Vinci, painter, Leonardo Piero + +The separator " and " between authors will be converted to comma during +printing, but between semifinal and final author the word "and" (or something +different depending on current language) is printed. + +The first author is printed in reverse order: ``LASTNAME, Firstname(s) von, +After'' and the others author are printed in normal order: ``Firstname(s) +von LASTNAME, After''. This feature follows the ISO 690 norm. The Lastname +is capitalised using uppercase letters, but if the \sc command is defined, +then it is used as an font switcher in the form {\sc Lastname}. You can +declare the ``Caps and small caps'' font here. + +You can specify the option "aumax:<number>". The <number> denotes the +maximum authors to be printed. The rest of authors are ignored and the +"et~al." is appended to the list of printed authors. This text is +printed only if the "aumax" value is less than the real number of authors. +If you have the same number of authors in the .bib file as you need to print +but you want to append "et~al." then you can use "auetal" option. + +There is a "aumin:<number>" option which denotes the definitive number of +printed authors if the author list is not fully printed due to "aumax". +If "aumin" is unused then "aumax" authors is printed in such case. + +All authors are printed if "aumax:<number>" option isn't given. +There is no internal limit. But you can set the global options in +your document by setting the \biboptions macro. For example: + + \def\biboptions {aumax:7 aumin:1} + % if there is 8 or more authors then only first author is printed. + +Examples: + + author = "John Green and Bob Brown and Alice Black", + +output: GREEN, John, Bob BROWN, and Alice BLACK. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:1", + +output: GREEN, John~et~al. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:2", + +output: GREEN, John, Bob BROWN~et~al. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:3", + +output: GREEN, John, Bob BROWN, and Alice BLACK. + + author = "John Green and Bob Brown and Alice Black", + option = "auetal", + +output: GREEN, John, Bob BROWN, Alice BLACK~et~al. + +If you need to add a text before or after authors list, you can use +the "auprint:{<value>}" option. The <value> will be printed instead of the +authors list. The <value> can include \AU macro which expands to the authors +list. Example: + + author = "Robert Calbraith", + option = "auprint:{\AU\space [pseudonym of J. K. Rowling]}", + +output: CALBRAITH Robert [pseudonym of J. K. Rowling]. + +You can use the "autrim:<number>" option. All Firstnames of all authors +are trimmed (i. e. reduced to initials) iff the number of authors in the +author field is greater than or equal to <number>. There is an exception: +"autrim:0" means that no Firstnames are trimmed. This is default behavior. +Another example: "autrim:1" means that all Firstnames are trimmed. + + author = "John Green and Bob Brown and Alice Black", + option = "auetal autrim:1", + +output: GREEN, J., B. BROWN, A. BLACK~et~al. + +If you need to write a team name or institution instead authors, replace all +spaces by \<space> in this name. Such text is interpreted as Lastname. You +can add the secondary name (interpreted as Firstname) after comma. Example: + + author = "Czech\ Technical\ University\ in\ Prague, Faculty\ of\ Electrical\ Engeneering", + +output: CZECH TECHNICAL UNIVERSITY IN PRAGUE, Faculty of Electrical Engeneering. + + +The editor field +---------------- + +The editor field is used for list of the authors of the collection. The +analogous rules as in author field are used here. It means that the +authors are separated by " and ", the Firstnames, Lastnames etc. are +interpreted and you can use the options "edmax:<number>", "edmin:<number>", +"edetal", "edtrim:<number>" and "edprint:<value>" (with \ED macro). +Example: + + editor = "Jan Tomek and Petr Karas", + option = "edprint:{\ED, editors.} edtrim:1", + +Output: J. TOMEK and P. KARAS, editors. + +If edprint option is not set then {\ED, eds.} or {\ED, ed.} is used +depending on the entry language and on the singular or plural of +the editor(s). + + +The ednote field +---------------- + +The ednote is used as the secondary authors and more editional info. The +value is read as raw data without any interpretation of Lastname, Firstname +etc. + + ednote = "Illustrations by Robert \upper{Agarwal}, edited by Tom \upper{Nowak}", + +output: Illustrations by Robert AGARWAL, edited by Tom NOWAK. + +The \upper command have to be used for Lastnames in ednote field. + + +The title field +--------------- + +This is the title of the work. It will be printed (in common entry types) by +italics. The ISO 690 norm declares, that the title plus optional subtitle +are in italics and they are separated by colon. Next, the optional secondary +title have to be printed in upright font. This can be added by +"titlepost:{<value>}". Example: + + title = "The Simple Title of The Work", +or + title = "Main Title: Subtitle", +or + title = "Main Title: Subtitle", + option = "titlepost:{Secondary title}", + +The output of the last example: + +{\it Main Title: Subtitle}. Secondary title. + + +The edition field +----------------- + +This field is used only for second or more edition of cited work. Write +only the number without the word "edition". The shortcut "ed." (or something +else depending on current language) is added automatically. Examples: + + edition = "Second", + edition = "2nd", + edition = "2$^{\rm nd}$", + edition = "2.", + +Output of the last example: 2. ed. + + edition = "2." + lang = "cs", + +Output: 2. vyd. + +Note, that the example edition = "Second" may cause problems. If you are +using language "cs" then the output is bad: Second vyd. So, you need to +say: + + edition = "Second", + lang = "en", + +You can use "ednprint:{<value>}" option. The the <value> is printed +instead of edition field and shortcut. The edition field must be set. Example: + + edition = "whatever", + option = "ednprint:{Second full revised edition}", + +Output: Second full revised edition. + +You can use \EDN macro in "ednprint" value. This macro is expanded +to the edition value. Example: + + edition = "Second", + option = "ednprint:{\EDN\space full revised edition}", + +or + + edition = "Second full revised edition", + option = "ednprint:{\EDN}", + + +The address, publisher, year fields +----------------------------------- + +This is an anachronism from ancient BibTeX (unfortunately no exclusive) that +the address field includes only the city of the publisher residence. No more +data are here. The publisher field includes the name of the publisher. + + address = "Berlin", + publisher = "Springer Verlag", + year = 2012, + +Output: Berlin: Springer Verlag, 2012. + +Note, that the year needn't to be inserted into quotes because it is pure +numeric. + +The letter a, b etc. are appended to the year automatically, if two or more +subsequent entries in the bibliography list are not distinct by the first +author and year fields. If you needn't this feature, you can use the +"noautoletters" option. + +You can use "yearprint:{<value>}" option. If it is set then the <value> +is used for printing year instead the real field value. The reason: year is +sort sensitive, may be you need to print something else than sorting key. +Example: + + year = 2000, + option = "yearpint:{\copyright 2000}", + +Output: \copyright 2000, sorted by: 2000. + + year = "2012a", + option = "yearprint:{2012}", + +Output: 2012, sorted by: 2012a. + +The address, publisher and year are typically mandatory fields. If they are +missing then the OPmac warning occurs. But you can set "unpublished" +option. Then this warning is suppressed. There is no difference in the +printed output. + + +The url field +------------- + +Use it without \url macro, but with http:// prefix. Example: + + url = "http://petr.olsak.net/opmac.html", + +The ISO 690 norm recommends to add the text ``Available from'' (or +something else if different current language is used) before URL. +It means, that the output of previous example is: + +Available from \url{http://petr.olsak.net/opmac.html}. + +If the "cs" language is the current one than the output is: + +Dostupné z: \url{http://petr.olsak.net/opmac.html}. + +If the "urlalso" option is used, then the added text has the form +``Available also from'' or ``Dostupné také z:'' (if "cs" language is +current). + + +The citedate field +------------------ + +This is the citation date. The field must be in the form year/month/day. It +means, that the two slashes must be written here. The output depends on the +current language. Example: + + citedate = "2004/05/21", + +Output when "en" is current: [cit. 2004-05-21]. +Output when "cs" is current: [vid. 21.~5.~2004]. + + +The howpublished field +---------------------- + +This declares the available medium for cited document if it is not in printed +form. Alternatives: online, CD, DVD, etc. Example: + + howpublished = "online", + +Output: [online]. + + +The volume, number, pages and numbering fields +---------------------------------------------- + +The volume is the ``big mark'' of the journal issue and the number is the +``small mark'' of the journal issue and pages includes the page range of +the cited article in the journal. The volume is prefixed by Vol.~, +the number by No.~ and the pages by pp.~. But these prefixes depends on the +language of the entry. + +Example: + + volume = 31, + number = 3, + pages = "37--42", + +Output: Vol.~31, No.~3, pp.~37--42. + + volume = 31, + number = 3, + pages = "37--42", + lang = "cs", + +Output: ročník~31, č.~3, s.~37--42. + +If you disagree with the default prefixes, you can use the numbering field. +When it is set then it is is used instead of volume, number, pages fields +and instead of any mentioned prefixes. The numbering can include macros \VOL, +\NO, \PP, which are expanded to the respective values of fields. Example: + + volume = 31, + number = 3, + pages = "37--42" + numbering = "Issue~\VOL/\NO, pages~\PP", + +Output: Issue~31/3, pages~37--42 + +Note: The volume, numbers and pages fields are printed without numbering +filed only in the @ARTICLE entry. It means, that if you need to visible them +in the @INBOOK, @INPROCEEDINGS etc. fields, then you must to use numbering field. + + +Common notes about entries +-------------------------- + +The order of the fields in the entry is irrelevant. We use the printed order +in this manual. The exclamation mark (!) denotes the mandatory field. If +such field is missing then the warning occurs during processing. + +If the "unpublished" option is set then the fields address, publisher, year, +isbn and pages are not mandatory. If the "nowarn" option is set then no +warnings about missing mandatory fields occurs. + +If the field is used but not mentioned in the entry documentation below then +it is silently ignored. + +The @BOOK entry +--------------- + +This is used for book-like entries. + +Fields: author(!), title(!), howpublished, edition, ednote, address(!), +publisher(!), year(!), citedate, series, isbn(!), doi, url, note. + +The ednote field here means the secondary authors (illustrator, cover design +etc.). + + +The @ARTICLE entry +------------------ + +This is used for articles published in a journal. + +Fields: author(!), title(!), journal(!), howpublished, address, publisher, +month, year, [numbering or volume, number, pages(!)], citedate, issn, +doi, url, note. + +If the numbering is used then it is used instead volume, number, pages. + + +The @INBOOK entry +----------------- + +This is used for the part of a book. + +Fields: author(!), title(!), booktitle(!), howpublished, edition, ednote, +address(!), publisher(!), year(!), numbering, citedate, series, isbn or +issn, doi, url, note. + +The author field is used for author(s) of the part, the editor field +includes author(s) or editor(s) of whole document. The pages field specifies +the page range of the part. The series field can include more information +about the part (chapter numbers etc.). + +The @INPROCEEDINGS and @CONFERENCE entries are equivalent to @INBOOK entry. + + +The @THESIS entry +----------------- + +This is used for student's thesis. + +Fields: author(!), title(!), howpublished, address(!), school(!), +month, year(!), citedate, type(!), ednote, doi, url, note. + +The type field must include the text "Master's Thesis" or something +similar (depending on the language of the outer document). + +There are nearly equivalent entries: @BACHELORSTHESIS, @MASTERSTHESIS and +@PHDTHESIS. These entries sets the type field to an appropriate value +automatically. The type field is optional in such case. If it is used then +it has a precedence before default setting. + + +The @MISC entry +--------------- + +It is intended for various usage. + +Fields: author, title, howpublished, ednote, citedate, doi, url, note. + +You can use \AU, \ED, \EDN, \VOL, \NO, \PP, \ADDR, \PUBL, \YEAR +macros in ednote field. These macros print authors list, editors list, +edition, volume, number, pages, address, publisher and year field values +respecitively. If they are are missing then the appropriate macro is empty. + +The reason of this entry is to give to you the possibility to set the format of +entry by your own decision. The most of data are concentrated in ednote +field. + + +The @BOOKLET, @INCOLLECION, @MANUAL, @PROCEEDINGS, @TECHREPORT, @UNPUBLISHED entries +------------------------------------------------------------------------------------- + +These entries are equivalent to @MICS entry because we need to save the +simplicity. They are implemented only for (almost) backward compatibility +with the ancient BibTeX. But the ednote is mandatory field here, so you +cannot use these entries from the old databases without warnings and without +some additional work in the .bib file. + + +The cite-marks (bibmark) used when \nonumcitations is set +--------------------------------------------------------- + +When \nonumcitations is set then \cite prints the cite-marks (called +bibmark) instead numbers. This style file autogenerates these marks in the +form "Lastname of the first author, comma, space, the year" if bibmark field +isn't declared. If you need to set an exception from this common format, +then you can use bibmark field. + +The OPmac trick http://petr.olsak.net/opmac-tricks-e.html#bibmark +describes how to redefine the algorithm for bibmark auto-generating when you +need the short form of the type [Au13]. + + +Sorting +------- + +If \usebib/c is used then entries are sorted by citation order in the text. +If \usebib/s is used then entries are sorted by ``Lastname, Firstname(s)'' of +the first author and if more entries have this value equal, then the year is +used (from older to newer). This feature follows the recommendation of the +ISO 690 norm. + +If you have the same authors and the same year, you can control the sorting +by setting years as 2013, 2013a, 2013b, etc. You can print something +different to the list using "yearprint{<value>}" option, see the section about +address, publisher and year above. The real value of year field (ie. not +yearprint value) is also used in citations when \nonumcitations is set. + +If you have some problems with name sorting, you can use the hidden field +"key", which is used for sorting instead of the ``Lastname Firstname(s)'' +of authors. If the "key" field is unset then the ``Lastname Firstname(s)'' +is used for sorting normally. Example: + + author = "Světla Čmejrková", + key = "Czzmejrkova Svetla", + +This entry is now sorted between C and D. + +The norm recommends to place the autocitations to the top of the list of +references. You can do this by setting key = "@", to each entry with your +name because the "@" character is sorted before A. + + +Languages +--------- + +There is the language of the outer document and the languages of each entry. +The ISO 690 norm recommends that the technical notes (the prefix before URL, +the media type, the ``and'' conjunction between semifinal and final author) +may be printed in the language of the outer document. The data of the entry +have to be printed in the entry language (edition ed./vyd., Vol./ročník, +No./č. etc.). Finally there are the phrases independent on the language +(for example In:). Unfortunately, the bibTeX supposes that the entry data +are not fully included in value parts of the fields (see edition, volume +etc. fields) so the automaton have to add some text during processing. +But what language have to be chosen? + +The current value of the \language register at the start of the .bib +processing is decided as the language of the outer document. This language +is used for technical notes regardless of the entry language. Each entry can +have the lang field with the two-letter mark of the entry language. This +language is used for ed./vyd., vol./ročník etc. and it is used for +hyphenation too. If the entry language is not set then the outer document +language is used. + +If the outer document language is know before creating of the .bib file, you +can store some language-dependent phrases into it. On the other hand, if the +main document language is unknown, you can use the \Mtext macro to +create the text multilingual. Example: + + howpublished = "\Mtext{bue-ray}" + +Now, you can set the variants of blue-ray into your macros: + + \mtdef {blue-ray} {Blue-ray disc} {Blue-ray disk} {} + + +Tips for using more languages +----------------------------- + +OPmac prefers English, Czech and Slovak languages. However, you can add +more languages. If you are using csplain, you can download the +hyphen-patterns for many languages, see the hyphen.lan file. For example, +you have had \dePatt and \plPatt downloaded (for German and Polish +languages). Now, you can do + +\sdef{lan:21}{de} \sdef{lan:121}{de} +\sdef{lan:23}{pl} \sdef{lan:123}{pl} +\def\mtdefx#1#2#3{\sdef{_mt:#1:de}{#2}\sdef{_mt:#1:pl}{#3}} + + % German % Polish +\mtdefx {bib.and} { und } { a } +\mtdefx {bib.phdthesis} {Ph.D. Dissertation} {Praca doktorska} +... + + +Summary of non-standard fields +------------------------------ + +This style uses the following fields unkown by bibTeX: + +option ... options separated by spaces +lang ... the language two-letter code of one entry +ednote ... editional info (secondary authors etc.) or + global data in @MISC-like entries +citedate ... the date of the citation in year/month/day format +numbering ... format for volume, number, pages +isbn ... ISBN +issn ... ISSN +doi ... DOI +url ... URL + + +Summary of options +------------------ + +aumax:<number> ... maximum number of printed authors +aumin:<number> ... number of printed authors if aumax exceedes +autrim:<number> ... full Firstnames iff number of authors are less than this +auprint:{<value>} ... text instead auhors list (\AU macro may be used) +edmax, edmin, edtrim ... similar as above for editors list +edprint:{<value>} ... text instead editors list (\ED macro may be used) +titlepost:{<value>} ... text after title +yearprint:{<value>} ... text instead real year (\YEAR macro may be used) +ednprint:{<value>} ... text instead real edition (\EDN macro may be used) +urlalso ... the ``available also from'' is used instead ``available from'' +unpublished ... the publisher etc. fields are not mandatory +nowarn ... no mandatory fields + +Another options in the option field are silently ignored. |