diff options
Diffstat (limited to 'Master/texmf-dist/source/bibtex/gost/gost.dtx')
-rw-r--r-- | Master/texmf-dist/source/bibtex/gost/gost.dtx | 483 |
1 files changed, 341 insertions, 142 deletions
diff --git a/Master/texmf-dist/source/bibtex/gost/gost.dtx b/Master/texmf-dist/source/bibtex/gost/gost.dtx index 3fe0b225434..ba678e3abd6 100644 --- a/Master/texmf-dist/source/bibtex/gost/gost.dtx +++ b/Master/texmf-dist/source/bibtex/gost/gost.dtx @@ -7,8 +7,8 @@ % attempt to format the bibliography according to % GOST R 7.0.5-2008 with some conventional modifications. % -% Copyright 2012-2016 Igor A. Kotelnikov. -% Version 1.2g +% Copyright 2012-2017 Igor A. Kotelnikov. +% Version 1.2i % % Copyright 1996-2005 Maksym Polyakov. % Version 2005.08.12 @@ -35,11 +35,12 @@ % To unpack run % latex gost.ins % -% To produce documentation run +% To produce the documentation run % pdflatex gost.dtx % makeindex -r -s gind.ist gost % makeindex -r -s gglo.ist -o gost.gls gost.glo % pdflatex gost.dtx +% pdflatex gost.dtx % % TeX Directory Structure % @@ -48,11 +49,11 @@ % Move all *.pdf files to TDS:doc/bibtex/gost % Move gost.dtx and gost.ins to TDS:source/bibtex/gost/ % -% $Id: gost.dtx, v.2012/08/31 kia999 $ +% $Id: gost.dtx, v.2017/01/12 kia999 $ % %<*driver> \ProvidesFile{gost.dtx}% - [2016/09/21 v.1.2h Bibliography styles for GOST R 7.0.5-2008.] + [2017/01/12 v.1.2i Bibliography styles for GOST R 7.0.5-2008.] \documentclass{ltxdoc} @@ -62,7 +63,8 @@ \usepackage[pdftex,hyperindex,unicode]{hyperref} \usepackage{cmap} \else - \usepackage[hypertex]{hyperref} + %\usepackage[hypertex]{hyperref} + \usepackage{hyperref} \fi \usepackage{color} \definecolor{darkblue}{rgb}{0,0,.6} @@ -126,44 +128,29 @@ %</driver> % \fi % -% \CheckSum{548} -% -% \changes{v1.2h}{21 Sep 2016}{minor changes in documentation} -% \changes{v1.2g}{25 Jul 2016}{minor changes in documentation} -% \changes{v1.2f}{12 Jul 2016}{patent entry added} -% \changes{v1.2e}{07 Jul 2016}{bbl.url added to replace URL string} -% \changes{v1.2d}{18 Feb 2016}{\cs{bbljan} e.t.c. macros removed} -% \changes{v1.2c}{18 Jan 2015}{langid field added} -% \changes{v1.2c}{18 Jan 2015}{eid field added} -% \changes{v1.2c}{17 Jan 2015}{fix Gost2003: "--- replaced by \cs{BibDash}} -% \changes{v1.2b}{19 Jan 2014}{numpages renamed to pagetotal} -% \changes{v1.2a}{31 Aug 2012}{Default for \cs{cyrdash} added} -% \changes{v1.2}{20 Feb 2012}{Support for natbib package} -% \changes{v1.2}{13 Feb 2012}{Fix bbl.urldate for ukrainian (Andrey Shvajkoy)} -% \changes{v1.2}{02 Feb 2012}{Thesis entry, report entry} -% \changes{v1.2}{01 Feb 2012}{Medium field} -% \changes{v1.2}{30 Jan 2012}{Strict option} -% \changes{v1.2}{29 Jan 2012}{Refactoring, Documentation} -% \changes{v1.2}{26 Jan 2012}{Entries eprint, eprintclass, eprinttype} -% \changes{v1.2}{26 Jan 2012}{Options modern, long, eprint} -% \changes{v1.1}{25 Jan 2012}{Gost705.dtx borrowed from Disser pkg} -% \changes{v1.1}{21 Jan 2012}{Upload to CTAN} -% \changes{v1.1}{15 Jan 2012}{Added German, French, Italian languages} -% \changes{v1.1}{15 Jan 2012}{Entry ONLINE} -% \changes{v1.0}{12 Aug 2005}{Bug fix (long annote)} -% \changes{v0.9}{07 Oct 2003}{Bug fix in names and date formatting} -% \changes{v0.9}{07 Oct 2003}{Bug fix in INPROCEEDINGS} -% \changes{v0.8}{10 Aug 2003}{\cs{BibEmph} added} -% \changes{v0.8}{06 Jun 2003}{Entry ANNOTE added} -% \changes{v0.8}{06 Jun 2003}{\cs{BibUrl} added} -% \changes{v0.8}{06 Jun 2003}{\cs{BibAnnote} added} +% \CheckSum{592} % % \DoNotIndex{\cyra,\cyrb,\cyrv,\cyrg,\cyrd,\cyre} % \DoNotIndex{\CYRP,\cyrii,\cyrr,\cyre,\cyro,\CYRU,\cyrk,\cyrl,\CYRS,\cyrs|} % \DoNotIndex{\cyrt,\cyri,\cyrz,\CYRT,\cyrm} % \DoNotIndex{\cyr,\cyrc,\CYRD,\cyrery,\cyrh,\CYRK,\CYRM,\CYRN,\cyrn} % \DoNotIndex{\cyrp,\cyrs,\cyrshch,\cyru,\CYRV,\cyrya} +% \DoNotIndex{\CYRA,\CYRB,\cyrch,\CYRE,\CYREREV,\CYRF,\cyrf,\CYRI,\cyrishrt} +% \DoNotIndex{\CYRO,\CYRR,\cyrsftsn,\CYRYA,\cyryu,\cyrzh} % \DoNotIndex{\z@skip,\z@} +% \DoNotIndex{\|,\~,\ } +% \DoNotIndex{\\&,\',\(,\),\`,\\,\/,\.} +% \DoNotIndex{\begin,\DeclareUTFcharacter} +% \DoNotIndex{\csname,\def} +% \DoNotIndex{\else,\endcsname,\end} +% \DoNotIndex{\expandafter,\fi} +% \DoNotIndex{\hbox,\hss} +% \DoNotIndex{\iffalse,\ifx,\ignorespaces,\iflanguage} +% \DoNotIndex{\language,\lastskip,\ldots,\let,\natexlab,\newblock,\nobreak} +% \DoNotIndex{\providecommand,\ProvideTextCommandDefault,\relax,\renewcommand} +% \DoNotIndex{\selectlanguage,\selectlanguageifdefined,\small,\textemdash} +% \DoNotIndex{\textnumero,\unskip,\url,\UTFencname} +% \DoNotIndex{\,,\catcode,\cite,\citeauthor,\citet,\citeyear,\href,\hskip,\ifdim} % % \begin{abstract} % @@ -432,7 +419,36 @@ % \end{enumerate} % % -% \subsection{What's new in version 1.2h (2016.08.21)} +% \subsection{Version history} +% +% \subsubsection*{Version 1.2i (2017.01.12)} +% +% \begin{enumerate} +% \item +% Documentation and examples update (thanks to Leonid Sinev). +% +% \item +% Restored |@MastersThesis| instead of |@MasterThesis| (thanks to Leonid Sinev). +% +% \item +% |media="eresource"| is introduced in addition to |media="online"| and +% |media="text"|; if present, the |media| field is not ignored any more in +% modern bst-styles compiled without the |strict| option. +% +% \item +% |location| field is introduced as an alias of |address| field. +% +% \item +% |@DSCISTHESIS| entry renamed to |@DOCTHESIS|. +% +% \item +% |school| field in |@THESIS| and similar entries is replaced by +% |institution| to comply with |biblatex-gost| style. +% +% \end{enumerate} +% +% +% \subsubsection*{Version 1.2h (2016.08.21)} % % \begin{enumerate} % \item @@ -441,7 +457,7 @@ % \end{enumerate} % % -% \subsection{What's new in version 1.2g (2016.07.25)} +% \subsubsection*{Version 1.2g (2016.07.25)} % % \begin{enumerate} % \item @@ -450,18 +466,18 @@ % \end{enumerate} % % -% \subsection{What's new in version 1.2f (2016.07.12)} +% \subsubsection*{Version 1.2f (2016.07.12)} % % \begin{enumerate} % \item % Support for patent entry added (thanks to Stanislav Kruchinin). % % \item -% medium field renamed to media field. +% |medium| field renamed to |media| field for compatibility with biblatex. % \end{enumerate} % -% \subsection{What's new in version 1.2e (2016.07.07)} +% \subsubsection*{Version 1.2e (2016.07.07)} % % \begin{enumerate} % \item @@ -470,17 +486,17 @@ % % \end{enumerate} % -% \subsection{What's new in version 1.2d (2015.02.18)} +% \subsubsection*{Version 1.2d (2015.02.18)} % % \begin{enumerate} % \item -% jan, feb, e.t.c. macros fixed. +% jan, feb, etc. macros fixed. % % \item % New macro format.month. % \end{enumerate} % -% \subsection{What's new in version 1.2c (2015.01.10)} +% \subsubsection*{Version 1.2c (2015.01.10)} % % \begin{enumerate} % \item @@ -500,7 +516,7 @@ % Spacing around |\BibDash| has been improved. % % \item -% |\BibDash| now typesets short em-dash (|\cyrdahs|) only for |russian| and +% |\BibDash| now typesets short em-dash (|\cyrdash|) only for |russian| and % |ukrainian| languages. In earlier versions, it produces short em-dash for % all languages. % @@ -508,7 +524,7 @@ % % \end{enumerate} % -% \subsection{What's new in version 1.2a (2012.08.31)} +% \subsubsection*{Version 1.2a (2012.08.31)} % % \begin{enumerate} % @@ -518,14 +534,14 @@ % % \end{enumerate} % -% \subsection{What's new in version 1.2 (2012.02.22)} +% \subsubsection*{Version 1.2 (2012.02.22)} % % \begin{enumerate} % \item % Code refactoring. All styles are now generated from single source file. % % \item -% Support for GOST-7.1-2003. The field |medium| is added to reflect type +% Support for GOST 7.1-2003. The field |medium| is added to reflect type % of material. For most entry types |medium| defaults to |text|. % % \item @@ -537,7 +553,7 @@ % \end{enumerate} % % -% \subsection{What's new in version 1.1 (2012.01.21)} +% \subsubsection*{Version 1.1 (2012.01.21)} % % \begin{enumerate} % \item @@ -553,13 +569,13 @@ % \item % |@DSciThesis| entry is added to format a reference to doctor of % sciences thesis. - +% % \item % |Urldate|, |eprint|, |eprintclass|, |eprinttype| fields are added. % % \end{enumerate} % -% \subsection{Version history} +% \subsubsection{Older versions} % % \begin{enumerate} % \item[2012.02.22] Support for |natbib| package. @@ -574,6 +590,7 @@ % entry is described; numbers in black roman refer to the code lines where % the entry is used. % } +% \GlossaryPrologue{\section{Change History}} % \PrintChanges % \PrintIndex % } @@ -590,7 +607,7 @@ %<*bst> %% %% This bibstyle attempts to format bibliography according to -%<!modern>%% GOST 7.80-2000 for bibliographic records. +%<!modern>%% GOST 7.1-2003 for bibliographic records. %<modern>%% GOST 7.0.5-2008 for bibliographic reference. %<*natbib>%% %%------------------------------------------------------------------- @@ -626,6 +643,11 @@ % % Enlist all entry types allowed in a bibliographic database. % Most entries are common for many standard bst styles. +% \changes{v1.2f}{12 Jul 2016}{entry \texttt{patent} added} +% \changes{v1.2c}{18 Jan 2015}{entry field \texttt{langid} added} +% \changes{v1.2c}{18 Jan 2015}{entry field \texttt{eid} added} +% \changes{v1.2}{01 Feb 2012}{entry field \texttt{medium} added} +% \changes{v0.8}{06 Jun 2003}{entry field \texttt{annote} added} % \begin{macrocode} ENTRY { address @@ -641,50 +663,52 @@ ENTRY institution journal key + %major % new in v.1.2i, alias for speciality, not implemented + majorcode % new in v.1.2i, alias for specialitycode month note number organization pages - eid % new in v1.2c + eid % new in v1.2c publisher - school + school % alias for institution series + %speciality % new in v.1.2i, eqv. to major in biblatex-gost, not implemented yet... + specialitycode % new in v.1.2i, alias of number, eqv. to majorcode in biblatex-gost title - %medium % new in v1.2; renamed to media. - media % new in v1.2f + %medium % new in v1.2; renamed to media. + media % new in v1.2f type volume year language - langid % new in v1.2c + langid % new in v1.2c booklanguage % \end{macrocode} % Entries borrowed from biblatex. +% \changes{v1.2b}{19 Jan 2014}{entry field \texttt{numpages} renamed to \texttt{pagetotal}} +% \changes{v1.2}{26 Jan 2012}{entry fields \texttt{eprint}, \texttt{eprintclass}, \texttt{eprinttype} added} % \begin{macrocode} - date % new in v1.2f; not implemented yet... + %date % not implemented yet... pagetotal url urldate isbn doi -% archive - eprinttype % = archivePrefix - eprintclass % = primaryClass + eprinttype % = archivePrefix + eprintclass % = primaryClass eprint -% \end{macrocode} -% Entries borrowed from disser.bst by S.Kruchinin. -% \begin{macrocode} % new in v1.2f: % appear in biblatex: - addendum - holder - location - subtitle - titleaddon - version - % Appear in biblatex-gost: - authorcountry % ?? + %addendum % not implemented yet... + holder % see patent + location % new in v.1.2i, alias of address + %subtitle % not implemented yet... + titleaddon % new in v.1.2i, see @thesis + %version % not implemented yet... + % Appear in biblatex-gost for @patent entry: + authorcountry % country of the patent authors credits % statement of responsibility, other than provided in Biblatex ipc % Code of the International Patent Classification %media % General material designation NOTE: medium in the above @@ -746,6 +770,9 @@ FUNCTION {change.language} % % Declare functions to output various parts of bibliographic record. % \DescribeFunction{output.nonnull} +% Function |output.nonnull| writes to output buffer the last literal in the stack +% assuming that it is not empty and adds an appropriate punctuation symbol. +% \changes{v1.2c}{17 Jan 2015}{fix Gost2003: \texttt{"}\texttt{-}\texttt{-}\texttt{-} replaced by macro \cs{BibDash}} % \begin{macrocode} FUNCTION {output.nonnull} { @@ -790,6 +817,10 @@ FUNCTION {output.nonnull} % \end{macrocode} % % \DescribeFunction{output} +% Function |output| calls |output.nonnul| is the last literal string in the stack +% if it is not empty; otherwise it discards the literal. +% Function |output.check| do the same but also warns if the indicated field is +% empty. % \DescribeFunction{output.check} % \begin{macrocode} FUNCTION {output} @@ -998,6 +1029,7 @@ FUNCTION {new.sentence.checkb} % \end{macrocode} % \DescribeFunction{new.dblslash.checka} % For |online| entry. +% \changes{v1.1}{15 Jan 2012}{entry type \texttt{@online} added} % \begin{macrocode} FUNCTION {new.dblslash.checka} { empty$ @@ -1020,6 +1052,7 @@ FUNCTION {field.or.null} % % \DescribeFunction{emphasize} % Declare function to emphasize last string in stack. +% \changes{v0.8}{10 Aug 2003}{macro \cs{BibEmph} added} % \begin{macrocode} FUNCTION {emphasize} { duplicate$ empty$ @@ -1436,6 +1469,7 @@ if$} % \end{macrocode} % Next function was added in version 2016.07.07. % \DescribeFunction{bbl.url} +% \changes{v1.2e}{07 Jul 2016}{\texttt{bbl.url} added to replace URL string} % \begin{macrocode} FUNCTION {bbl.url} { curlanguage "english" = @@ -1456,6 +1490,7 @@ if$} % \end{macrocode} % Next function was added in version 2012.01.15. % \DescribeFunction{bbl.urldate} +% \changes{v1.2}{13 Feb 2012}{fix \texttt{bbl.urldate} for ukrainian (Andrey Shvajkoy)} % \begin{macrocode} FUNCTION {bbl.urldate} { curlanguage "english" = @@ -1491,9 +1526,9 @@ FUNCTION {bbl.techreport} % rename to bbl.techreport if$} % \end{macrocode} -% \DescribeFunction{bbl.mthesis} +% \DescribeFunction{bbl.mathesis} % \begin{macrocode} -FUNCTION {bbl.mthesis} +FUNCTION {bbl.mathesis} { curlanguage "english" = { "Master's thesis" } { curlanguage "german" = @@ -1510,6 +1545,7 @@ if$} % \end{macrocode} % \DescribeFunction{bbl.phdthesis} +% \changes{v1.2i}{04 Jan 2017}{corrected bbl.phdthesis and bbl.docthesis to comply GOST} % \begin{macrocode} FUNCTION {bbl.phdthesis} { curlanguage "english" = @@ -1517,9 +1553,9 @@ FUNCTION {bbl.phdthesis} { curlanguage "german" = { "Diss.~Ph.\,D." } { curlanguage "russian" = -%<!utf8> { "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrk\cyra\cyrn\cyrd\cyri" -%<!utf8> "\cyrd\cyra\cyrt\cyra\ \cyrn\cyra\cyru\cyrk}" * } -%<utf8> { "{Дисс\ldots\ кандидата наук}" } +%<!utf8> { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrk\cyra\cyrn\cyrd. " +%<!utf8> "\cyrn\cyra\cyru\cyrk}" * } +%<utf8> { "{дис.\ \ldots\ канд. наук}" } { curlanguage "french" = { "Th\`{e}se de doctorat" } { "language is not defined: " language "phdthesis" * * warning$ "Ph.\,D. thesis" } @@ -1529,23 +1565,40 @@ FUNCTION {bbl.phdthesis} if$} % \end{macrocode} -% \DescribeFunction{bbl.dscithesis} +% \DescribeFunction{bbl.docthesis} % \begin{macrocode} -FUNCTION {bbl.dscithesis} +FUNCTION {bbl.docthesis} { curlanguage "english" = { "Dr.\,Sci. dissertation" } { curlanguage "german" = { "Diss.~Dr." } { curlanguage "russian" = -%<!utf8> { "{\cyr\CYRD\cyri\cyrs\cyrs\ldots\ \cyrd\cyro\cyrk\cyrt\cyro" -%<!utf8> "\cyrr\cyra\ \cyrn\cyra\cyru\cyrk}" * } -%<utf8> { "{Дисс\ldots\ доктора наук}" } - { "language is not defined: " language "dscithesis" * * warning$ "Dr.\,Sci. dissertation" } +%<!utf8> { "{\cyr\cyrd\cyri\cyrs.\ \ldots\ \cyrd-\cyrr\cyra\ " +%<!utf8> "\cyrn\cyra\cyru\cyrk}" * } +%<utf8> { "{дис.\ \ldots\ д-ра наук}" } + { "language is not defined: " language "docthesis" * * warning$ "Dr.\,Sci. dissertation" } if$} if$} if$} % \end{macrocode} +% \DescribeFunction{bbl.thesis.type`} +% \begin{macrocode} +FUNCTION {bbl.thesis.type} +{ type "mathesis" = + { bbl.mathesis } + { type "phdthesis" = + { bbl.phdthesis } + { type "docthesis" = + { bbl.docthesis } + %%{ "!!!" type * "t" change.case$ } +%<!utf8> { type "t" change.case$ } +%<utf8> { type } + if$} + if$} +if$} + +% \end{macrocode} % \DescribeFunction{bbl.nnoaddress} % \begin{macrocode} FUNCTION {bbl.nnoaddress} @@ -1598,16 +1651,18 @@ FUNCTION {bbl.media.text} if$} % \end{macrocode} -% \DescribeFunction{bbl.media.elres} +% \DescribeFunction{bbl.media.eresource} % \begin{macrocode} -FUNCTION {bbl.media.elres} +FUNCTION {bbl.media.eresource} { curlanguage "english" = { "Electronic resource" } { curlanguage "russian" = -%<!utf8> { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } +%<!utf8> { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ " +%<!utf8> "\cyrr\cyre\cyrs\cyru\cyrr\cyrs}" * } %<utf8> { "{Электронный ресурс}" } { curlanguage "ukrainian" = -%<!utf8> { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ \cyrr\cyre\cyrs\cyru\cyrr\cyrs}" } +%<!utf8> { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " +%<!utf8> "\cyrr\cyre\cyrs\cyru\cyrr\cyrs}" * } %<utf8> { "{Електронний ресурс}" } { "language is not defined: " language "media" * * warning$ "Electronic resource" } if$} @@ -1615,6 +1670,26 @@ FUNCTION {bbl.media.elres} if$} % \end{macrocode} +% \DescribeFunction{bbl.media.online} +% \changes{v1.2i}{02 Jan 2017}{\texttt{media} field normalised} +% \begin{macrocode} +FUNCTION {bbl.media.online} +{ curlanguage "english" = + { "Electronic resource online" } + { curlanguage "russian" = +%<!utf8> { "{\cyr\CYREREV\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyrery\cyrishrt\ " +%<!utf8> "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyrn}" * } +%<utf8> { "{Электронный ресурс онлайн}" } + { curlanguage "ukrainian" = +%<!utf8> { "{\cyr\CYRE\cyrl\cyre\cyrk\cyrt\cyrr\cyro\cyrn\cyrn\cyri\cyrishrt\ " +%<!utf8> "\cyrr\cyre\cyrs\cyru\cyrr\cyrs\ \cyro\cyrn\cyrl\cyra\cyrishrt\cyr}" * } +%<utf8> { "{Електронний ресурс онлайн}" } + { "language is not defined: " language "media" * * warning$ "Electronic resource" } + if$} + if$} +if$} + +% \end{macrocode} % \DescribeFunction{bbl.chief} % \begin{macrocode} FUNCTION {bbl.chief} @@ -1651,10 +1726,18 @@ if$} % \end{macrocode} % \DescribeFunction{bbl.media} % \begin{macrocode} +%FUNCTION {bbl.media} +%{ type$ "online" = +% { bbl.media.eresource } +% { bbl.media.text } +%if$} FUNCTION {bbl.media} -{ type$ "online" = - { bbl.media.elres } - { bbl.media.text } +{ media "online" = + { bbl.media.online } + { media "eresource" = + { bbl.media.eresource } + { bbl.media.text } + if$} if$} % \end{macrocode} @@ -2081,6 +2164,7 @@ FUNCTION {format.title} % \DescribeFunction{format.month} % New in version 1.2d. This macro reads month field and translate English names % of months to Russian if current language is Russian. +% \changes{v1.2i}{29 Dec 2016}{typo fix in \texttt{format.month}} % \begin{macrocode} FUNCTION {format.month} { month empty$ @@ -2111,7 +2195,7 @@ FUNCTION {format.month} %<!utf8> { "\CYRA\cyrv\cyrg\." } %<utf8> { "Авг." } { month "Sep." = -%<!utf8> { "\CYRS\cyre\cyn\cyrt." } +%<!utf8> { "\CYRS\cyre\cyrn\cyrt." } %<utf8> { "Сент." } { month "Oct." = %<!utf8> { "\CYRO\cyrk\cyrt." } @@ -2130,6 +2214,7 @@ FUNCTION {format.month} } % \end{macrocode} % \DescribeFunction{format.date} +% \changes{v1.2c}{17 Jan 2015}{fix Gost2003: \texttt{"}\texttt{-}\texttt{-}\texttt{-} replaced by macro \cs{BibDash}} % \begin{macrocode} FUNCTION {format.date} { year empty$ @@ -2150,15 +2235,82 @@ FUNCTION {format.date} } % \end{macrocode} +% \DescribeFunction{address.or.location} +% New function in version 1.2i. Returns |address| value if not empty; otherwise +% returns |location| value even if the latter is empty. +% \changes{v1.2i}{02 Jan 2017}{\texttt{location} field added as alias to \texttt{address} field} +% \begin{macrocode} +%FUNCTION {address.or.location} +%{ +% address empty$ +% { location empty$ +% 'skip$ +% { location } +% if$ } +% { address } +% if$ +%} +FUNCTION {address.or.location} +{ + address empty$ + { location } + { address } + if$ +} + +% \end{macrocode} +% +% \DescribeFunction{specialitycode.or.number} +% New function in version 1.2i. Returns |specialitycode| value if not empty; otherwise +% returns |number| value even if the latter is empty. +% \changes{v1.2i}{13 Jan 2017}{\texttt{number} field is now alias to \texttt{specialitycode}} +% \begin{macrocode} +FUNCTION {specialitycode.or.number} +{ + specialitycode empty$ + { number } + { specialitycode } + if$ +} + +% \end{macrocode} +% +% \DescribeFunction{institution.or.school} +% New function in version 1.2i. Returns |institution| value if not empty; otherwise +% returns |school| value even if the latter is empty. +% \changes{v1.2i}{13 Jan 2017}{\texttt{school} field is now alias to \texttt{instituttion}} +% \begin{macrocode} +FUNCTION {institution.or.school} +{ + institution empty$ + { school} + { institution } + if$ +} +% \end{macrocode} +% % \DescribeFunction{format.address.publisher} % \DescribeFunction{format.address.publisher.date} % \begin{macrocode} %<*!strict> +%FUNCTION {output.address.publisher} +%{ +% address empty$ +% 'skip$ +% { address output +% publisher empty$ +% 'skip$ +% { new.colon } +% if$ +% } +% if$ +% publisher output +%} FUNCTION {output.address.publisher} { - address empty$ + address empty$ location empty$ and 'skip$ - { address output + { address.or.location output publisher empty$ 'skip$ { new.colon } @@ -2208,6 +2360,7 @@ FUNCTION {output.address.publisher.date} % \end{macrocode} % \DescribeFunction{output.bibitem} +% \changes{v1.2c}{18 Jan 2015}{entry field \texttt{langid} added} % \begin{macrocode} %<*!natbib> FUNCTION {output.bibitem} @@ -2621,6 +2774,7 @@ FUNCTION {multi.page.check} % \end{macrocode} % \DescribeFunction{format.pages} +% \changes{v1.2c}{18 Jan 2015}{entry field \texttt{eid} added} % \begin{macrocode} %%FUNCTION {format.pages} %%{ pages empty$ @@ -2654,6 +2808,8 @@ FUNCTION {format.pages} % \end{macrocode} % \DescribeFunction{format.pages.page} +% \changes{v1.2c}{18 Jan 2015}{entry field \texttt{eid} added} +% \changes{v1.2b}{19 Jan 2014}{entry field \texttt{numpages} renamed to \texttt{pagetotal}} % \begin{macrocode} %%FUNCTION {format.pages.page} %%{ pages empty$ @@ -2761,16 +2917,23 @@ FUNCTION {empty.misc.check} % \end{macrocode} % \DescribeFunction{format.thesis.type} % \begin{macrocode} +%FUNCTION {format.thesis.type} +%{ type empty$ +% 'skip$ +% { pop$ +%%<!utf8> bbl.thesis.type "t" change.case$ +%%<utf8> bbl.thesis.type +% } +% if$ +%} FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ -%<!utf8> type "t" change.case$ -%<utf8> type + bbl.thesis.type } if$ } - % \end{macrocode} % \DescribeFunction{format.techrep.type.number} % Function to format report type and number. @@ -2953,6 +3116,7 @@ FUNCTION {editor.organization.after} % \end{macrocode} % \DescribeFunction{format.url} +% \changes{v0.8}{06 Jun 2003}{macro \cs{BibUrl} added} % \begin{macrocode} FUNCTION {format.url} { url empty$ @@ -2981,6 +3145,7 @@ FUNCTION {output.url} % \end{macrocode} % \DescribeFunction{format.annote} +% \changes{v0.8}{06 Jun 2003}{macro \cs{BibAnnote} added} % \begin{macrocode} FUNCTION {format.annote} { annote empty$ @@ -3039,20 +3204,30 @@ FUNCTION {add.doi} { } % \end{macrocode} % \DescribeFunction{add.media} -% New in version 2. Adds media field if |strict| options is in effect. +% New in version 1.2. Adds |media| field if |strict| options is in effect. +% If the |media| field is empty |add.media| prints a value based on the |type| +% field. If the |type| is also empty |add.media| prints equivalent of the +% word |text| in current language. % \begin{macrocode} %<*!strict> -FUNCTION {add.media} { } +FUNCTION {add.media} +{ duplicate$ empty$ + 'skip$ + { media empty$ + 'skip$ + { " " * bbl.media enclose.square.brackets * } + if$ + } + if$ +} %</!strict> %<*strict> FUNCTION {add.media} { duplicate$ empty$ 'skip$ { media empty$ + { " " * bbl.media.text enclose.square.brackets * } { " " * bbl.media enclose.square.brackets * } - { " " * media enclose.square.brackets * } -%% { bbl.media enclose.square.brackets * } -%% { media enclose.square.brackets * } if$ } if$ @@ -3085,6 +3260,7 @@ FUNCTION {add.media} % Also see eprinttype and eprintclass. % % This function should use url. TO BE DONE YET. +% \changes{v1.2}{26 Jan 2012}{entry fields \texttt{eprint}, \texttt{eprintclass}, \texttt{eprinttype}} % \begin{macrocode} %<*eprint> %FUNCTION {format.eprint} @@ -3163,6 +3339,7 @@ FUNCTION {output.eprint.url} % % Functions added in v1.2f to format patent entry (thanks to Stanislav Kruchinin). % +% \changes{v1.2f}{12 Jul 2016}{entry field \texttt{patent} added} % \DescribeFunction{add.number} % \begin{macrocode} FUNCTION {add.number} @@ -3353,7 +3530,7 @@ FUNCTION {booklet} editor.organization.after new.block howpublished output - address output + address.or.location output format.date "year" output.check new.block note output @@ -3484,16 +3661,6 @@ FUNCTION {proceedings} new.block format.bvolume output format.number.series output -% address empty$ -% { publisher output -% format.date "year" output.check -% } -% { address output.nonnull -% format.date "year" output.check -% new.sentence -% publisher output -% } -% if$ output.address.publisher format.date "year" output.check new.block @@ -3517,6 +3684,7 @@ FUNCTION {proceedings} % venue, language, volume, part, volumes, series, number, note, organization, % publisher, location, month, isbn, chapter, pages, addendum, pubstate, doi, % eprint, eprintclass, eprinttype, url, urldate. +% \changes{v0.9}{07 Oct 2003}{bug fix in \texttt{@inproceedings} entry type} % \begin{macrocode} FUNCTION {inproceedings} { output.bibitem @@ -3634,7 +3802,7 @@ FUNCTION {patent} new.colon format.type.number output add.blank - location output + address.or.location output new.colon ipc output new.slash @@ -3736,6 +3904,7 @@ FUNCTION {unpublished} % % Optional fields: subtitle, titleaddon, language, version, note, % organization, date, month, year, addendum, pubstate, urldate. +% \changes{v1.1}{15 Jan 2012}{Entry type \texttt{@online} added} % \begin{macrocode} FUNCTION {online} { output.bibitem @@ -3787,6 +3956,7 @@ FUNCTION {electronic} {online} % chapter, pages, pagetotal, addendum, pubstate, doi, eprint, eprintclass, % eprinttype, url, urldate % +% \changes{v1.2}{02 Feb 2012}{\texttt{@thesis} entry} % \begin{macrocode} %<*!(modern|strict)> FUNCTION {thesis} @@ -3798,7 +3968,8 @@ FUNCTION {thesis} new.colon bbl.phdthesis format.thesis.type output.nonnull new.slash - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher.date new.block @@ -3818,14 +3989,18 @@ FUNCTION {thesis} new.sentence format.btitle add.doi add.media "title" output.check new.colon -% bbl.phdthesis format.thesis.type output.nonnull - type "type" output.check + %%type "type" output.check + bbl.phdthesis format.thesis.type output.nonnull new.colon - number output + %%number output % code of the speciality + specialitycode.or.number output % code of the speciality, new in v.1.2i + new.colon + titleaddon output % date of defence and approvement; new in v.1.2i new.slash format.authors.after output new.semicolon - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher format.date "year" output.check @@ -3855,6 +4030,7 @@ FUNCTION {thesis} % Optional fields: subtitle, titleaddon, language, number, version, note, % location, month, isrn, chapter, pages, pagetotal, addendum, pubstate, doi, % eprint, eprintclass, eprinttype, url, urldate. +% \changes{v1.2}{02 Feb 2012}{\texttt{@report} entry} % \begin{macrocode} %FUNCTION {report} %{ @@ -3898,13 +4074,14 @@ FUNCTION {report} new.colon number output new.slash - institution "institution" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.semicolon format.chief.after output % from editor field new.semicolon format.executor.after output % from author field new.block - address output + address.or.location output new.colon organization output format.date "year" output.check @@ -3940,7 +4117,8 @@ FUNCTION {phdthesis} new.colon bbl.phdthesis format.thesis.type output.nonnull new.slash - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher.date new.block @@ -3962,11 +4140,15 @@ FUNCTION {phdthesis} new.colon bbl.phdthesis format.thesis.type output.nonnull new.colon - number output + %%number output % code of the speciality + specialitycode.or.number output % code of the speciality, new in v.1.2i + new.colon + titleaddon output % date of defence and approvement; new in v.1.2i new.slash format.authors.after output new.semicolon - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher format.date "year" output.check @@ -3986,18 +4168,20 @@ FUNCTION {phdthesis} % \DescribeFunction{mastersthesis} % Similar to |@thesis| except that the type field is optional and defaults to the localized % term `Master's thesis'. You may still use the type field to override that. +% \changes{v1.2i}{29 Dec 2016}{entry \texttt{@MastersThesis} added again (see v1.1)} % \begin{macrocode} %<*!(modern|strict)> -FUNCTION {masterthesis} +FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check %<natbib> author format.key output new.sentence format.btitle "title" output.check new.colon - bbl.mthesis format.thesis.type output.nonnull + bbl.mathesis format.thesis.type output.nonnull new.slash - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher.date new.block @@ -4010,20 +4194,24 @@ FUNCTION {masterthesis} } %</!(modern|strict)> %<*modern|strict> -FUNCTION {masterthesis} +FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check %<natbib> author format.key output new.sentence format.btitle add.doi add.media "title" output.check new.colon - bbl.mthesis format.thesis.type output.nonnull + bbl.mathesis format.thesis.type output.nonnull new.colon - number output + %%number output % code of the speciality + specialitycode.or.number output % code of the speciality, new in v.1.2i + new.colon + titleaddon output % date of defence and approvement; new in v.1.2i new.slash format.authors.after output new.semicolon - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher format.date "year" output.check @@ -4040,21 +4228,23 @@ FUNCTION {masterthesis} %</modern|strict> % \end{macrocode} -% \DescribeFunction{dscithesis} +% \DescribeFunction{docthesis} % Similar to |@thesis| except that the type field is optional and defaults to the localized % term `Doctor's of sciences thesis'. You may still use the type field to override that. +% \changes{v1.2i}{02 Jan 2017}{\texttt{@dscithesis} entry renamed to \texttt{@docthesis}} % \begin{macrocode} %<*!(modern|strict)> -FUNCTION {dscithesis} +FUNCTION {docthesis} { output.bibitem format.authors "author" output.check %<natbib> author format.key output new.sentence format.btitle "title" output.check new.colon - bbl.dscithesis format.thesis.type output.nonnull + bbl.docthesis format.thesis.type output.nonnull new.slash - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher.date new.block @@ -4067,20 +4257,24 @@ FUNCTION {dscithesis} } %</!(modern|strict)> %<*modern|strict> -FUNCTION {dscithesis} +FUNCTION {docthesis} { output.bibitem format.authors "author" output.check %<natbib> author format.key output new.sentence format.btitle add.doi add.media "title" output.check new.colon - bbl.dscithesis format.thesis.type output.nonnull + bbl.docthesis format.thesis.type output.nonnull new.colon - number output + %%number output % code of the speciality + specialitycode.or.number output % code of the speciality, new in v.1.2i + new.colon + titleaddon output % date of defence and approvement; new in v.1.2i new.slash format.authors.after output new.semicolon - school "school" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.block output.address.publisher format.date "year" output.check @@ -4151,13 +4345,14 @@ FUNCTION {techreport} new.colon number output new.slash - institution "institution" output.check + %institution "institution" output.check + institution.or.school "institution/school" output.check new.semicolon format.chief.after output % from editor field new.semicolon format.executor.after output % from author field new.block - address output + address.or.location output new.colon organization output format.date "year" output.check @@ -4171,7 +4366,6 @@ FUNCTION {techreport} fin.entry } - % \end{macrocode} % \DescribeFunction{default.type} % \begin{macrocode} @@ -4184,6 +4378,7 @@ FUNCTION {default.type} { misc } % backward compatibility with standard .bst styles which are designed for English. % The string in the definition of any month macro must coincide with that used in % |format.month| function in the above. +% \changes{v1.2d}{18 Feb 2016}{\cs{bbljan} etc. macros removed} % \begin{macrocode} MACRO {jan} {"Jan."} MACRO {feb} {"Feb."} @@ -4836,6 +5031,10 @@ SORT % \DescribeFunction{begin.bib} % Within |thebibliography| environment we define few formatting macros % for user to customize how the reference list is formatted. +% \changes{v1.2a}{31 Aug 2012}{default for \cs{cyrdash} added} +% \changes{v0.8}{06 Jun 2003}{macro \cs{BibAnnote} added} +% \changes{v0.8}{06 Jun 2003}{macro \cs{BibUrl} added} +% \changes{v0.8}{10 Aug 2003}{macro \cs{BibEmph} added} % \begin{macrocode} FUNCTION {begin.bib} { "\begin{thebibliography}{" longest.label * "}" * write$ newline$ |