summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/bibtex/gost/gost.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/bibtex/gost/gost.dtx')
-rw-r--r--Master/texmf-dist/source/bibtex/gost/gost.dtx483
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$