diff options
Diffstat (limited to 'Master/texmf-dist')
19 files changed, 1082 insertions, 461 deletions
diff --git a/Master/texmf-dist/bibtex/bst/disser/gost705.bst b/Master/texmf-dist/bibtex/bst/disser/gost705.bst index 2ef3d68c643..5f732e239fb 100644 --- a/Master/texmf-dist/bibtex/bst/disser/gost705.bst +++ b/Master/texmf-dist/bibtex/bst/disser/gost705.bst @@ -74,7 +74,8 @@ INTEGERS { output.state before.all mid.sentence after.sentence after.block after.dblslash after.slash after.column after.semicolumn } FUNCTION {init.state.consts} -{ #0 'before.all := +{ + #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := @@ -89,18 +90,20 @@ STRINGS { s t } STRINGS { curlanguage } FUNCTION {change.language} -{ booklanguage empty$ - { "" } - { booklanguage 'curlanguage := - "\selectlanguageifdefined{" - curlanguage * - "}" * - } +{ + booklanguage empty$ + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } if$ } FUNCTION {output.nonnull} -{ swap$ +{ + swap$ output.state mid.sentence = { ", " * write$ } { output.state after.block = @@ -136,14 +139,16 @@ FUNCTION {output.nonnull} } FUNCTION {output} -{ duplicate$ empty$ +{ + duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} -{ 't := +{ + 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull @@ -151,48 +156,55 @@ FUNCTION {output.check} } FUNCTION {fin.entry} -{ add.period$ +{ + add.period$ write$ newline$ } FUNCTION {new.block} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.dblslash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.dblslash 'output.state := } if$ } FUNCTION {new.slash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.slash 'output.state := } if$ } FUNCTION {new.column} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.column 'output.state := } if$ } FUNCTION {new.semicolumn} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.semicolumn 'output.state := } if$ } FUNCTION {new.sentence} -{ output.state after.block = +{ + output.state after.block = 'skip$ { output.state before.all = 'skip$ @@ -202,42 +214,47 @@ FUNCTION {new.sentence} if$ } -FUNCTION {add.blank} -{ " " * before.all 'output.state := } +FUNCTION {add.blank} { " " * before.all 'output.state := } FUNCTION {not} -{ { #0 } +{ + { #0 } { #1 } if$ } FUNCTION {and} -{ 'skip$ +{ + 'skip$ { pop$ #0 } if$ } FUNCTION {or} -{ { pop$ #1 } +{ + { pop$ #1 } 'skip$ if$ } FUNCTION {non.stop} -{ duplicate$ +{ + duplicate$ "}" * add.period$ #-1 #1 substring$ "." = } FUNCTION {new.block.checka} -{ empty$ +{ + empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -246,14 +263,16 @@ FUNCTION {new.block.checkb} } FUNCTION {new.sentence.checka} -{ empty$ +{ + empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -262,21 +281,22 @@ FUNCTION {new.sentence.checkb} } FUNCTION {field.or.null} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } { "\BibEmph{" swap$ * "}" * } if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +FUNCTION {space.word} { " " swap$ * " " * } FUNCTION {bbl.edby} % { "\bbledby{}" } { @@ -307,8 +327,8 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } curlanguage "english" = { "edition" } { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} + { "{\cyr\cyri\cyrz\cyrd.}" } + { "language is not defined: " language "edition" * * warning$ "edition" } if$ } if$ @@ -319,8 +339,8 @@ FUNCTION {bbl.vvolume} % { "\bblVolume{}" } curlanguage "english" = { "Volume" } { curlanguage "russian" = - {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} + { "{\cyr\CYRT\cyro\cyrm}" } + { "language is not defined: " language "Volume" * * warning$ "Volume" } if$ } if$ @@ -331,7 +351,7 @@ FUNCTION {bbl.vvol} % { "\bblVol{}" } curlanguage "english" = { "Vol." } { curlanguage "russian" = - { "\CYRT." } + { "{\cyr\CYRT.}" } { "language is not defined: " language "Vol." * * warning$ "Vol." } if$ } @@ -343,8 +363,8 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } curlanguage "english" = { "Issue" } { curlanguage "russian" = - {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -355,8 +375,8 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } curlanguage "english" = {"Iss."} { curlanguage "russian" = - {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp.}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -367,8 +387,8 @@ FUNCTION {bbl.of} % { "\bblof{}" } curlanguage "english" = {"of"} { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} + { "{\cyr\cyri\cyrz}" } + { "language is not defined: " language "of" * * warning$ "of" } if$ } if$ @@ -391,7 +411,7 @@ FUNCTION {bbl.nnumber} % { "\bblNumber{}" } curlanguage "english" = { "Number" } { curlanguage "russian" = - { "\CYRN\cyro\cyrm\cyre\cyrr"} + { "{\cyr\CYRN\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "Number" * * warning$ "Number" } if$ } @@ -403,7 +423,7 @@ FUNCTION {bbl.number} % { "\bblnumber{}" } curlanguage "english" = { "number" } { curlanguage "russian" = - { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "number" * * warning$ "number" } if$ } @@ -451,7 +471,7 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } curlanguage "english" = { "In" } { curlanguage "russian" = - { "\CYRV" } + { "{\cyr\CYRV}" } { "language is not defined: " language "In" * * warning$ "In" } if$ } @@ -545,7 +565,8 @@ FUNCTION {bbl.phdthesis} INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -564,8 +585,8 @@ FUNCTION {format.names} { ", " * t * } { t "others" = - t "~others" = - or + t "~others" = + or { " " * bbl.etal * } { ", " * t * } if$ @@ -581,7 +602,8 @@ FUNCTION {format.names} } FUNCTION {format.names.rev} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -617,56 +639,64 @@ FUNCTION {format.names.rev} } FUNCTION {format.authors} -{ author empty$ +{ + author empty$ { "" } { author format.names emphasize } if$ } FUNCTION {format.bookauthors} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names } if$ } FUNCTION {format.authors.after} -{ author empty$ +{ + author empty$ { "" } { author format.names.rev } if$ } FUNCTION {format.bookauthors.after} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names.rev } if$ } FUNCTION {format.editors.after} -{ editor empty$ +{ + editor empty$ { "" } { bbl.edby editor format.names.rev * } if$ } -FUNCTION { format.compiler.after } -{ compiler empty$ +FUNCTION {format.compiler.after} +{ + compiler empty$ { "" } { bbl.cmplr compiler format.names.rev * } if$ } FUNCTION {format.title} -{ title empty$ +{ + title empty$ { "" } { title } if$ } FUNCTION {format.date} -{ year empty$ +{ + year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -683,7 +713,8 @@ FUNCTION {format.date} } FUNCTION {output.address.publisher.date} -{ address empty$ +{ + address empty$ 'skip$ { address output publisher empty$ @@ -697,7 +728,8 @@ FUNCTION {output.address.publisher.date} } FUNCTION {output.bibitem} -{ newline$ +{ + newline$ "\bibitem[" write$ "\BibPrefix" write$ label write$ @@ -718,7 +750,8 @@ FUNCTION {output.bibitem} } FUNCTION {n.dashify} -{ 't := +{ + 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -742,35 +775,32 @@ FUNCTION {n.dashify} while$ } -FUNCTION {word.in} -{ bbl.iin - " " * } +FUNCTION {word.in} { bbl.iin " " * } -FUNCTION {format.btitle} -{ title } +FUNCTION {format.btitle} { title } FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < +{ + duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } -FUNCTION {tie.connect} -{"~" -swap$ * * -} +FUNCTION {tie.connect} { "~" swap$ * * } FUNCTION {either.or.check} -{ empty$ +{ + empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.connect series empty$ @@ -783,7 +813,8 @@ FUNCTION {format.bvolume} } FUNCTION {format.number.series} -{ volume empty$ +{ + volume empty$ { number empty$ { series field.or.null } { series empty$ @@ -805,13 +836,15 @@ FUNCTION {format.number.series} } FUNCTION {is.num} -{ chr.to.int$ +{ + chr.to.int$ duplicate$ "0" chr.to.int$ < not swap$ "9" chr.to.int$ > not and } FUNCTION {extract.num} -{ duplicate$ 't := +{ + duplicate$ 't := "" 's := { t empty$ not } { t #1 #1 substring$ @@ -828,11 +861,11 @@ FUNCTION {extract.num} if$ } -FUNCTION {convert.edition} -{ edition } +FUNCTION {convert.edition} { edition } FUNCTION {format.edition} -{ edition empty$ +{ + edition empty$ { "" } { output.state mid.sentence = { convert.edition "l" change.case$ " " * bbl.edition * } @@ -845,7 +878,8 @@ FUNCTION {format.edition} INTEGERS { multiresult } FUNCTION {multi.page.check} -{ 't := +{ + 't := #0 'multiresult := { multiresult not t empty$ not @@ -865,7 +899,8 @@ FUNCTION {multi.page.check} } FUNCTION {format.pages} -{ pages empty$ +{ + pages empty$ { "" } { pages multi.page.check { bbl.ppages pages n.dashify tie.connect } @@ -876,7 +911,8 @@ FUNCTION {format.pages} } FUNCTION {format.pages.page} -{ pages empty$ +{ + pages empty$ { numpages empty$ { "" } { numpages bbl.pages tie.connect } @@ -887,7 +923,8 @@ FUNCTION {format.pages.page} } FUNCTION {format.vol.num.pages} -{ volume field.or.null +{ + volume field.or.null number empty$ 'skip$ { @@ -909,21 +946,24 @@ FUNCTION {format.vol.num.pages} } FUNCTION {format.volume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.or.space.connect } if$ } FUNCTION {format.number} -{ number empty$ +{ + number empty$ { "" } { bbl.nr number tie.or.space.connect } if$ } FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ +{ + author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and @@ -933,7 +973,8 @@ FUNCTION {empty.misc.check} } FUNCTION {format.thesis.type} -{ type empty$ +{ + type empty$ 'skip$ { pop$ type "t" change.case$ @@ -942,7 +983,8 @@ FUNCTION {format.thesis.type} } FUNCTION {format.tr.number} -{ type empty$ +{ + type empty$ { bbl.techrep } 'type if$ @@ -953,7 +995,8 @@ FUNCTION {format.tr.number} } FUNCTION {author.before} -{ author empty$ +{ + author empty$ 'skip$ { format.authors output @@ -963,7 +1006,8 @@ FUNCTION {author.before} } FUNCTION {bookauthor.before} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { format.bookauthors output @@ -973,7 +1017,8 @@ FUNCTION {bookauthor.before} } FUNCTION {author.after} -{ author empty$ +{ + author empty$ 'skip$ { author num.names$ #3 > { format.authors.after output @@ -986,7 +1031,8 @@ FUNCTION {author.after} } FUNCTION {bookauthor.after} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { bookauthor num.names$ #3 > { format.bookauthors.after output @@ -999,7 +1045,8 @@ FUNCTION {bookauthor.after} } FUNCTION {editor.organization.after} -{ compiler empty$ +{ + compiler empty$ 'skip$ { format.compiler.after output new.semicolumn @@ -1020,14 +1067,16 @@ FUNCTION {editor.organization.after} } FUNCTION {format.url} -{ url empty$ +{ + url empty$ { "" } { "\BibUrl{" url * "}" * } if$ } FUNCTION {format.urldate} -{ urldate empty$ +{ + urldate empty$ { "" } { add.blank "\BibUrlDate{" urldate * "}" * @@ -1036,7 +1085,8 @@ FUNCTION {format.urldate} } FUNCTION {output.url} -{ url empty$ +{ + url empty$ 'skip$ { format.url output format.urldate output @@ -1045,7 +1095,8 @@ FUNCTION {output.url} } FUNCTION {format.annote} -{ annote empty$ +{ + annote empty$ { "" } { after.sentence 'output.state := "\BibAnnote{" annote add.period$ * "}" * @@ -1054,7 +1105,8 @@ FUNCTION {format.annote} } FUNCTION {article} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check new.dblslash @@ -1075,7 +1127,8 @@ FUNCTION {article} } FUNCTION {book} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1098,7 +1151,8 @@ FUNCTION {book} } FUNCTION {booklet} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check editor.organization.after @@ -1115,7 +1169,8 @@ FUNCTION {booklet} } FUNCTION {inbook} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check new.dblslash @@ -1141,7 +1196,8 @@ FUNCTION {inbook} } FUNCTION {incollection} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1160,13 +1216,13 @@ FUNCTION {incollection} note output new.block output.url - new.block format.annote output fin.entry } FUNCTION {inproceedings} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1201,7 +1257,8 @@ FUNCTION {inproceedings} FUNCTION {conference} { inproceedings } FUNCTION {manual} -{ output.bibitem +{ + output.bibitem author empty$ { organization empty$ 'skip$ @@ -1239,7 +1296,8 @@ FUNCTION {manual} } FUNCTION {mastersthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.btitle "title" output.check @@ -1257,7 +1315,8 @@ FUNCTION {mastersthesis} } FUNCTION {misc} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.title "title" output.check @@ -1274,7 +1333,8 @@ FUNCTION {misc} } FUNCTION {phdthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.sentence format.btitle "title" output.check @@ -1294,7 +1354,8 @@ FUNCTION {phdthesis} } FUNCTION {proceedings} -{ output.bibitem +{ + output.bibitem format.btitle "title" output.check new.slash editor.organization.after @@ -1320,7 +1381,8 @@ FUNCTION {proceedings} } FUNCTION {techreport} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1341,7 +1403,8 @@ FUNCTION {techreport} } FUNCTION {unpublished} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1428,13 +1491,15 @@ STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} -{ "" 'longest.label := +{ + "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := +{ + number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := @@ -1449,7 +1514,8 @@ EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} -{ preamble$ empty$ +{ + preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ @@ -1492,7 +1558,8 @@ EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} -{ newline$ +{ + newline$ "\end{thebibliography}" write$ newline$ } diff --git a/Master/texmf-dist/bibtex/bst/disser/gost705s.bst b/Master/texmf-dist/bibtex/bst/disser/gost705s.bst index 513077582d1..335783ba0a4 100644 --- a/Master/texmf-dist/bibtex/bst/disser/gost705s.bst +++ b/Master/texmf-dist/bibtex/bst/disser/gost705s.bst @@ -74,7 +74,8 @@ INTEGERS { output.state before.all mid.sentence after.sentence after.block after.dblslash after.slash after.column after.semicolumn } FUNCTION {init.state.consts} -{ #0 'before.all := +{ + #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := @@ -89,18 +90,20 @@ STRINGS { s t } STRINGS { curlanguage } FUNCTION {change.language} -{ booklanguage empty$ - { "" } - { booklanguage 'curlanguage := - "\selectlanguageifdefined{" - curlanguage * - "}" * - } +{ + booklanguage empty$ + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } if$ } FUNCTION {output.nonnull} -{ swap$ +{ + swap$ output.state mid.sentence = { ", " * write$ } { output.state after.block = @@ -136,14 +139,16 @@ FUNCTION {output.nonnull} } FUNCTION {output} -{ duplicate$ empty$ +{ + duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} -{ 't := +{ + 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull @@ -151,48 +156,55 @@ FUNCTION {output.check} } FUNCTION {fin.entry} -{ add.period$ +{ + add.period$ write$ newline$ } FUNCTION {new.block} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.dblslash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.dblslash 'output.state := } if$ } FUNCTION {new.slash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.slash 'output.state := } if$ } FUNCTION {new.column} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.column 'output.state := } if$ } FUNCTION {new.semicolumn} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.semicolumn 'output.state := } if$ } FUNCTION {new.sentence} -{ output.state after.block = +{ + output.state after.block = 'skip$ { output.state before.all = 'skip$ @@ -202,42 +214,47 @@ FUNCTION {new.sentence} if$ } -FUNCTION {add.blank} -{ " " * before.all 'output.state := } +FUNCTION {add.blank} { " " * before.all 'output.state := } FUNCTION {not} -{ { #0 } +{ + { #0 } { #1 } if$ } FUNCTION {and} -{ 'skip$ +{ + 'skip$ { pop$ #0 } if$ } FUNCTION {or} -{ { pop$ #1 } +{ + { pop$ #1 } 'skip$ if$ } FUNCTION {non.stop} -{ duplicate$ +{ + duplicate$ "}" * add.period$ #-1 #1 substring$ "." = } FUNCTION {new.block.checka} -{ empty$ +{ + empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -246,14 +263,16 @@ FUNCTION {new.block.checkb} } FUNCTION {new.sentence.checka} -{ empty$ +{ + empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -262,21 +281,22 @@ FUNCTION {new.sentence.checkb} } FUNCTION {field.or.null} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } { "\BibEmph{" swap$ * "}" * } if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +FUNCTION {space.word} { " " swap$ * " " * } FUNCTION {bbl.edby} % { "\bbledby{}" } { @@ -307,8 +327,8 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } curlanguage "english" = { "edition" } { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} + { "{\cyr\cyri\cyrz\cyrd.}" } + { "language is not defined: " language "edition" * * warning$ "edition" } if$ } if$ @@ -319,8 +339,8 @@ FUNCTION {bbl.vvolume} % { "\bblVolume{}" } curlanguage "english" = { "Volume" } { curlanguage "russian" = - {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} + { "{\cyr\CYRT\cyro\cyrm}" } + { "language is not defined: " language "Volume" * * warning$ "Volume" } if$ } if$ @@ -331,7 +351,7 @@ FUNCTION {bbl.vvol} % { "\bblVol{}" } curlanguage "english" = { "Vol." } { curlanguage "russian" = - { "\CYRT." } + { "{\cyr\CYRT.}" } { "language is not defined: " language "Vol." * * warning$ "Vol." } if$ } @@ -343,8 +363,8 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } curlanguage "english" = { "Issue" } { curlanguage "russian" = - {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -355,8 +375,8 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } curlanguage "english" = {"Iss."} { curlanguage "russian" = - {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp.}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -367,8 +387,8 @@ FUNCTION {bbl.of} % { "\bblof{}" } curlanguage "english" = {"of"} { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} + { "{\cyr\cyri\cyrz}" } + { "language is not defined: " language "of" * * warning$ "of" } if$ } if$ @@ -391,7 +411,7 @@ FUNCTION {bbl.nnumber} % { "\bblNumber{}" } curlanguage "english" = { "Number" } { curlanguage "russian" = - { "\CYRN\cyro\cyrm\cyre\cyrr"} + { "{\cyr\CYRN\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "Number" * * warning$ "Number" } if$ } @@ -403,7 +423,7 @@ FUNCTION {bbl.number} % { "\bblnumber{}" } curlanguage "english" = { "number" } { curlanguage "russian" = - { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "number" * * warning$ "number" } if$ } @@ -451,7 +471,7 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } curlanguage "english" = { "In" } { curlanguage "russian" = - { "\CYRV" } + { "{\cyr\CYRV}" } { "language is not defined: " language "In" * * warning$ "In" } if$ } @@ -545,7 +565,8 @@ FUNCTION {bbl.phdthesis} INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -564,8 +585,8 @@ FUNCTION {format.names} { ", " * t * } { t "others" = - t "~others" = - or + t "~others" = + or { " " * bbl.etal * } { ", " * t * } if$ @@ -581,7 +602,8 @@ FUNCTION {format.names} } FUNCTION {format.names.rev} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -617,56 +639,64 @@ FUNCTION {format.names.rev} } FUNCTION {format.authors} -{ author empty$ +{ + author empty$ { "" } { author format.names emphasize } if$ } FUNCTION {format.bookauthors} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names } if$ } FUNCTION {format.authors.after} -{ author empty$ +{ + author empty$ { "" } { author format.names.rev } if$ } FUNCTION {format.bookauthors.after} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names.rev } if$ } FUNCTION {format.editors.after} -{ editor empty$ +{ + editor empty$ { "" } { bbl.edby editor format.names.rev * } if$ } -FUNCTION { format.compiler.after } -{ compiler empty$ +FUNCTION {format.compiler.after} +{ + compiler empty$ { "" } { bbl.cmplr compiler format.names.rev * } if$ } FUNCTION {format.title} -{ title empty$ +{ + title empty$ { "" } { title } if$ } FUNCTION {format.date} -{ year empty$ +{ + year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -683,7 +713,8 @@ FUNCTION {format.date} } FUNCTION {output.address.publisher.date} -{ address empty$ +{ + address empty$ 'skip$ { address output publisher empty$ @@ -697,7 +728,8 @@ FUNCTION {output.address.publisher.date} } FUNCTION {output.bibitem} -{ newline$ +{ + newline$ "\bibitem[" write$ "\BibPrefix" write$ label write$ @@ -718,7 +750,8 @@ FUNCTION {output.bibitem} } FUNCTION {n.dashify} -{ 't := +{ + 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -742,35 +775,32 @@ FUNCTION {n.dashify} while$ } -FUNCTION {word.in} -{ bbl.iin - " " * } +FUNCTION {word.in} { bbl.iin " " * } -FUNCTION {format.btitle} -{ title } +FUNCTION {format.btitle} { title } FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < +{ + duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } -FUNCTION {tie.connect} -{"~" -swap$ * * -} +FUNCTION {tie.connect} { "~" swap$ * * } FUNCTION {either.or.check} -{ empty$ +{ + empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.connect series empty$ @@ -783,7 +813,8 @@ FUNCTION {format.bvolume} } FUNCTION {format.number.series} -{ volume empty$ +{ + volume empty$ { number empty$ { series field.or.null } { series empty$ @@ -805,13 +836,15 @@ FUNCTION {format.number.series} } FUNCTION {is.num} -{ chr.to.int$ +{ + chr.to.int$ duplicate$ "0" chr.to.int$ < not swap$ "9" chr.to.int$ > not and } FUNCTION {extract.num} -{ duplicate$ 't := +{ + duplicate$ 't := "" 's := { t empty$ not } { t #1 #1 substring$ @@ -828,11 +861,11 @@ FUNCTION {extract.num} if$ } -FUNCTION {convert.edition} -{ edition } +FUNCTION {convert.edition} { edition } FUNCTION {format.edition} -{ edition empty$ +{ + edition empty$ { "" } { output.state mid.sentence = { convert.edition "l" change.case$ " " * bbl.edition * } @@ -845,7 +878,8 @@ FUNCTION {format.edition} INTEGERS { multiresult } FUNCTION {multi.page.check} -{ 't := +{ + 't := #0 'multiresult := { multiresult not t empty$ not @@ -865,7 +899,8 @@ FUNCTION {multi.page.check} } FUNCTION {format.pages} -{ pages empty$ +{ + pages empty$ { "" } { pages multi.page.check { bbl.ppages pages n.dashify tie.connect } @@ -876,7 +911,8 @@ FUNCTION {format.pages} } FUNCTION {format.pages.page} -{ pages empty$ +{ + pages empty$ { numpages empty$ { "" } { numpages bbl.pages tie.connect } @@ -887,7 +923,8 @@ FUNCTION {format.pages.page} } FUNCTION {format.vol.num.pages} -{ volume field.or.null +{ + volume field.or.null number empty$ 'skip$ { @@ -909,21 +946,24 @@ FUNCTION {format.vol.num.pages} } FUNCTION {format.volume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.or.space.connect } if$ } FUNCTION {format.number} -{ number empty$ +{ + number empty$ { "" } { bbl.nr number tie.or.space.connect } if$ } FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ +{ + author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and @@ -933,7 +973,8 @@ FUNCTION {empty.misc.check} } FUNCTION {format.thesis.type} -{ type empty$ +{ + type empty$ 'skip$ { pop$ type "t" change.case$ @@ -942,7 +983,8 @@ FUNCTION {format.thesis.type} } FUNCTION {format.tr.number} -{ type empty$ +{ + type empty$ { bbl.techrep } 'type if$ @@ -953,7 +995,8 @@ FUNCTION {format.tr.number} } FUNCTION {author.before} -{ author empty$ +{ + author empty$ 'skip$ { format.authors output @@ -963,7 +1006,8 @@ FUNCTION {author.before} } FUNCTION {bookauthor.before} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { format.bookauthors output @@ -973,7 +1017,8 @@ FUNCTION {bookauthor.before} } FUNCTION {author.after} -{ author empty$ +{ + author empty$ 'skip$ { author num.names$ #3 > { format.authors.after output @@ -986,7 +1031,8 @@ FUNCTION {author.after} } FUNCTION {bookauthor.after} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { bookauthor num.names$ #3 > { format.bookauthors.after output @@ -999,7 +1045,8 @@ FUNCTION {bookauthor.after} } FUNCTION {editor.organization.after} -{ compiler empty$ +{ + compiler empty$ 'skip$ { format.compiler.after output new.semicolumn @@ -1020,14 +1067,16 @@ FUNCTION {editor.organization.after} } FUNCTION {format.url} -{ url empty$ +{ + url empty$ { "" } { "\BibUrl{" url * "}" * } if$ } FUNCTION {format.urldate} -{ urldate empty$ +{ + urldate empty$ { "" } { add.blank "\BibUrlDate{" urldate * "}" * @@ -1036,7 +1085,8 @@ FUNCTION {format.urldate} } FUNCTION {output.url} -{ url empty$ +{ + url empty$ 'skip$ { format.url output format.urldate output @@ -1045,7 +1095,8 @@ FUNCTION {output.url} } FUNCTION {format.annote} -{ annote empty$ +{ + annote empty$ { "" } { after.sentence 'output.state := "\BibAnnote{" annote add.period$ * "}" * @@ -1054,7 +1105,8 @@ FUNCTION {format.annote} } FUNCTION {article} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check new.dblslash @@ -1075,7 +1127,8 @@ FUNCTION {article} } FUNCTION {book} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1098,7 +1151,8 @@ FUNCTION {book} } FUNCTION {booklet} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check editor.organization.after @@ -1115,7 +1169,8 @@ FUNCTION {booklet} } FUNCTION {inbook} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check new.dblslash @@ -1141,7 +1196,8 @@ FUNCTION {inbook} } FUNCTION {incollection} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1160,13 +1216,13 @@ FUNCTION {incollection} note output new.block output.url - new.block format.annote output fin.entry } FUNCTION {inproceedings} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1201,7 +1257,8 @@ FUNCTION {inproceedings} FUNCTION {conference} { inproceedings } FUNCTION {manual} -{ output.bibitem +{ + output.bibitem author empty$ { organization empty$ 'skip$ @@ -1239,7 +1296,8 @@ FUNCTION {manual} } FUNCTION {mastersthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.btitle "title" output.check @@ -1257,7 +1315,8 @@ FUNCTION {mastersthesis} } FUNCTION {misc} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.title "title" output.check @@ -1274,7 +1333,8 @@ FUNCTION {misc} } FUNCTION {phdthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.sentence format.btitle "title" output.check @@ -1294,7 +1354,8 @@ FUNCTION {phdthesis} } FUNCTION {proceedings} -{ output.bibitem +{ + output.bibitem format.btitle "title" output.check new.slash editor.organization.after @@ -1320,7 +1381,8 @@ FUNCTION {proceedings} } FUNCTION {techreport} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1341,7 +1403,8 @@ FUNCTION {techreport} } FUNCTION {unpublished} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1423,14 +1486,16 @@ MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} -{ purify$ +{ + purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} -{ 's := +{ + 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } @@ -1439,7 +1504,8 @@ FUNCTION {chop.word} } FUNCTION {sort.format.names} -{ 's := +{ + 's := #1 'nameptr := "" s num.names$ 'numnames := @@ -1463,7 +1529,8 @@ FUNCTION {sort.format.names} } FUNCTION {sort.format.title} -{ 't := +{ + 't := "A " #2 "An " #3 "The " #4 t chop.word @@ -1474,7 +1541,8 @@ FUNCTION {sort.format.title} } FUNCTION {author.sort} -{ author empty$ +{ + author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" @@ -1483,13 +1551,14 @@ FUNCTION {author.sort} if$ } { - author sort.format.names} + author sort.format.names } if$ } FUNCTION {author.title.sort} -{ author empty$ +{ + author empty$ { title empty$ { key empty$ { "to sort, need author, title, or key in " cite$ * warning$ @@ -1533,13 +1602,15 @@ STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} -{ "" 'longest.label := +{ + "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := +{ + number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := @@ -1554,7 +1625,8 @@ EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} -{ preamble$ empty$ +{ + preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ @@ -1597,7 +1669,8 @@ EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} -{ newline$ +{ + newline$ "\end{thebibliography}" write$ newline$ } diff --git a/Master/texmf-dist/doc/latex/disser/ChangeLog b/Master/texmf-dist/doc/latex/disser/ChangeLog index 8b33da774b5..ec87878c944 100644 --- a/Master/texmf-dist/doc/latex/disser/ChangeLog +++ b/Master/texmf-dist/doc/latex/disser/ChangeLog @@ -2,6 +2,22 @@ disser changelog Copyright (C) 2004-2009 Stanislav Kruchinin ------------------------------------------- +Summary of changes in version 1.1.4 (2009-11-20): + +Classes and styles: +* Fixed bug in gost705s.bst. +* Fixed lof and lot names in gost732. +* Fixed some compilation warnings. ++ Add index for gost705 functions. + +Makefiles: ++ Added time checking to all suitable targets in latex.nmk.cmd. +* Fixed label names in latex.nmk.cmd. + +Templates: ++ Set bold font for vectors by default. + + Summary of changes in version 1.1.3 (2009-11-05): Classes and styles: @@ -11,7 +27,7 @@ Classes and styles: + Added index style for documented source code. Makefiles: -+ Nomake files now support processing of multiple targets and compare ++ Nomake.cmd scripts now support processing of multiple targets and compare modification times of input and output files. + Added support for DESTDIR environment variable. + Added "bmtoeps" and "optimize" targets. diff --git a/Master/texmf-dist/doc/latex/disser/include/latex.fig.mk b/Master/texmf-dist/doc/latex/disser/include/latex.fig.mk index 41cfdecd501..4278a048b51 100644 --- a/Master/texmf-dist/doc/latex/disser/include/latex.fig.mk +++ b/Master/texmf-dist/doc/latex/disser/include/latex.fig.mk @@ -37,9 +37,8 @@ help: bmtoeps: $(BMTOEPSFILES) @for f in $^ ; do \ - echo -n "bmtoeps: $$f..." ;\ + echo "bmtoeps: $$f" ;\ $(BMTOEPS) $(BMTOEPSFLAGS) "$$f" "$${f%.*}.eps" > /dev/null 2>&1 ;\ - echo "done" ;\ done clean: @@ -51,24 +50,23 @@ epstopdf: $(patsubst %.eps, %.pdf, $(wildcard $(E2PFILES))) fixbb: $(FBBFILES) @for f in $^ ; do \ - echo -n "fixbb: $$f..." ;\ + echo "fixbb: $$f" ;\ $(EPSTOOL) $(ETFLAGS) "$$f" "$(PREFIX)$$f" ;\ mv "$(PREFIX)$$f" "$$f" ;\ - echo "done" ;\ done optimize: $(OPTFILES) @for f in $^ ; do \ - echo -n "optimize: $$f..." ;\ + echo -n "optimize: $$f" ;\ $(E2E) $(E2EFLAGS) "$$f" "$(PREFIX)$$f" ;\ $(EPSTOOL) $(ETFLAGS) "$(PREFIX)$$f" "$(PREFIX)1$$f" ;\ mv "$(PREFIX)1$$f" "$(PREFIX)$$f" ;\ if [ `stat -c%s $$f` -gt `stat -c%s $(PREFIX)$$f` ] ; then \ mv "$(PREFIX)$$f" "$$f" ;\ - echo "done" ;\ + echo -en "\n" ;\ else \ rm "$(PREFIX)$$f" ;\ - echo "does not need optimization" ;\ + echo " does not need optimization" ;\ fi ;\ done @@ -77,19 +75,16 @@ pdftopng256: $(patsubst %.pdf, %.png, $(wildcard $(PDF2PNGFILES))) pdftotiffg4: $(patsubst %.pdf, %.tif, $(wildcard $(PDF2TIFFILES))) %.pdf: %.eps - @echo -n "epstopdf: $^..." ;\ - $(EPSTOPDF) "$^" ;\ - echo "done" + @echo "epstopdf: $^" ;\ + $(EPSTOPDF) "$^" %.png: %.pdf - @echo -n "pdftopng256: $^..." ;\ + @echo "pdftopng: $^" ;\ $(GS) -sDEVICE=png256 -r$(RES) -q -sOutputFile=$(^:.pdf=.png) \ - -dNOPAUSE -dBATCH -dSAFER "$^" ;\ - echo "done" + -dNOPAUSE -dBATCH -dSAFER "$^" %.tif: %.pdf - @echo -n "pdftotiffg4: $^..." ;\ + @echo "pdftotiffg4: $^" ;\ $(GS) -sDEVICE=tiffg4 -r$(RES) -q -sOutputFile=$(^:.pdf=.tif) \ - -dNOPAUSE -dBATCH -dSAFER "$^" ;\ - echo "done" + -dNOPAUSE -dBATCH -dSAFER "$^" diff --git a/Master/texmf-dist/doc/latex/disser/include/latex.nmk.cmd b/Master/texmf-dist/doc/latex/disser/include/latex.nmk.cmd index 6f72e3e5775..f5ede11db0b 100644 --- a/Master/texmf-dist/doc/latex/disser/include/latex.nmk.cmd +++ b/Master/texmf-dist/doc/latex/disser/include/latex.nmk.cmd @@ -47,6 +47,7 @@ if "%clext%"=="" set clext=*.bbl *.bak *.aux *.blg *.out *.toc *.log ^ *.dvi *.tmp *.pdf *.ps if "%clfiles%"=="" set clfiles=!clext! %archive% if "%srcfiles%"=="" set srcfiles=* +if "%prereq%"=="" set prereq=*.tex *.bib if "%1"=="" ( @@ -63,7 +64,7 @@ exit /b goto :eof :dvi - call :cmptimes %target%.dvi *.tex *.bib + call :cmptimes %target%.dvi %prereq% if !_ctres!==0 ( echo nomake: Nothing to be done for 'dvi'. goto :eof @@ -95,12 +96,17 @@ goto :eof goto :eof :html + call :cmptimes %target%.html %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'html'. + goto :eof + ) call :dvi %l2h% %l2hflags% %target%.tex goto :eof :pdf - call :cmptimes %target%.pdf *.tex *.bib + call :cmptimes %target%.pdf %prereq% if !_ctres!==0 ( echo nomake: Nothing to be done for 'pdf'. goto :eof @@ -115,34 +121,64 @@ goto :eof %pdflatex% %pdflatexflags% %target%.tex goto :eof -:pdf2on1 - call :ps2on1 +:pdf_2on1 + call :cmptimes %target%_2on1.pdf %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'pdf_2on1'. + goto :eof + ) + call :ps_2on1 %ps2pdf% %ps2pdfflags% -sOutputFile=%target%_2on1.pdf ^ -c save pop -f %target%_2on1.ps goto :eof -:pdfbook - call :psbook +:pdf_book + call :cmptimes %target%_book.pdf %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'pdf_book'. + goto :eof + ) + call :ps_book %ps2pdf% %ps2pdfflags% -sOutputFile=%target%_book.pdf ^ -c save pop -f %target%_book.ps goto :eof :ps + call :cmptimes %target%.ps %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'ps'. + goto :eof + ) call :dvi %dvips% %dvipsflags% %target%.dvi goto :eof -:ps2on1 +:ps_2on1 + call :cmptimes %target%_2on1.ps %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'ps_2on1'. + goto :eof + ) call :ps %psnup% %psnupflags% %target%.ps > %target%_2on1.ps goto :eof -:psbook +:ps_book + call :cmptimes %target%_book.ps %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'ps_book'. + goto :eof + ) call :ps %psbook% %target%.ps | %psnup% -2 > %target%_book.ps goto :eof :rtf + call :cmptimes %target%.rtf %prereq% + if !_ctres!==0 ( + echo nomake: Nothing to be done for 'rtf'. + goto :eof + ) call :dvi %l2rtf% %l2rtfflags% -a %target%.aux -b %target%.bbl %target%.tex goto :eof diff --git a/Master/texmf-dist/doc/latex/disser/manual.tex b/Master/texmf-dist/doc/latex/disser/manual.tex index 51f52b1bbf1..1f9480a235c 100644 --- a/Master/texmf-dist/doc/latex/disser/manual.tex +++ b/Master/texmf-dist/doc/latex/disser/manual.tex @@ -9,7 +9,7 @@ pdftex, colorlinks, plainpages = false, - pdftitle = {User manual for disser}, + pdftitle = {User manual for disser package}, pdfauthor = {Stanislav Kruchinin}, pdfsubject = {disser}, pdfstartview = {FitH}, @@ -60,7 +60,7 @@ \let\makelabel\deflabel} }{\end{list}} -\def\fileversion{1.1.3} +\def\fileversion{1.1.4} \begin{document} \sloppy @@ -75,8 +75,8 @@ \maketitle \begin{abstract}\noindent -Данный документ содержит руководство по использованию пакета |disser|. -Инструкции по установке и обновлению смотрите в файлах |README| и |README.ru|. +Данный документ содержит руководство по использованию пакета \pkg{disser}. +Инструкции по установке и обновлению смотрите в файлах \file{README} и \file{README.ru}. Описание исходных текстов содержится в файлах \href{file:disser.pdf}{\file{disser.pdf}}, \href{file:gost732.pdf}{\file{gost732.pdf}} и \href{file:gost705.pdf}{\file{gost705.pdf}}. \end{abstract} @@ -87,11 +87,11 @@ Пакет \pkg{disser} предназначен для верстки диссертаций и авторефератов в соответствии с требованиями диссертационных советов и ВАК. В состав пакета входят классы \file{disser.cls} и \file{gost732.cls}, стили оформления библиографии \file{gost705.bst}, \file{gost705s.bst}, а также скрипты для сборки пакета и документов (\file{Makefile}, \file{nomake.cmd}, файлы с расширением \file{mk} и \file{cmd}). -Поскольку дипломы и диссертации имеют фиксированную структуру, в пакет также включены их шаблоны (каталог \file{disser/templates}), которые рекомендуется использовать для создания своих документов. +Поскольку дипломы и диссертации имеют фиксированную структуру, в пакет также включены их шаблоны (каталог \file{templates}), которые рекомендуется использовать для создания своих документов. Одной из основных целей создания \pkg{disser} являлось устранение общего недостатка стандартных классов: отсутствия возможности настройки формата элементов титульного листа, заголовков и записей в автоматически генерируемых списках. -Для этого была переопределена значительная часть команд, входящих в ядро \LaTeX{}, и введен ряд глобальных переменных, которые описаны в комментариях к исходным текстам. -Это позволило значительно упростить разработку пользовательских классов, которые удовлетворяют специфическим требованиями тех или иных учебных заведений. +Для достижения этой цели была переопределена значительная часть команд, входящих в ядро \LaTeX{}, и введен ряд глобальных переменных, которые описаны в комментариях к исходным текстам. +Это позволило значительно упростить разработку пользовательских классов, которые удовлетворяют специфическим требованиями учебных заведений и диссертационных советов. Примером реализации этого подхода является класс \pkg{gost732}. \section{Опции класса} @@ -179,10 +179,12 @@ Скрипты поддерживают одинаковый набор целей (targets). Использование в Unix-подобных окружениях: \begin{verbatim} -make <target1> <target2> ...\end{verbatim} +make <target1> <target2> ... +\end{verbatim} В Windows: \begin{verbatim} -nomake <target1> <target2> ...\end{verbatim} +nomake <target1> <target2> ... +\end{verbatim} Далее приведены описания целей в зависимости от каталога, в котором производится сборка. @@ -201,7 +203,7 @@ nomake <target1> <target2> ...\end{verbatim} Справка по целям сборки. \item[install] Копирование пакета, документации и шаблонов в дерево каталогов \TeX{}. - Соответствует цели \cmd{install} в подкаталогах \file{src} и \file{templates}. + Соответствует цели \cmd{install} в каталогах \file{src} и \file{templates}. \item[package] Сборка пакета. Соответствует цели \cmd{package} в каталоге \file{src}. @@ -215,13 +217,13 @@ nomake <target1> <target2> ...\end{verbatim} Создание архива скомпилированных файлов пакета и шаблонов. \item[templates] Сборка всех шаблонов. - Соответствует цели по умолчанию в подкаталоге \file{templates}. + Соответствует цели по умолчанию в каталоге \file{templates}. \item[uninstall] - Удаление файлов пакета из дерева каталогов \TeX{}. - Соответствует целям \cmd{uninstall} в подкаталогах \file{src} и \file{templates}. + Удаление пакета из каталога \TeX{}. + Соответствует целям \cmd{uninstall} в каталогах \file{src} и \file{templates}. \end{deflist} -\subsection{Каталог \texttt{disser/src}} +\subsection{Подкаталог \texttt{src}} \begin{deflist}{\longestlabel} \item[all] @@ -244,11 +246,11 @@ nomake <target1> <target2> ...\end{verbatim} \item[reinstall] Переустановка пакета. \item[uninstall] - Удаление пакета каталогов \TeX{}. + Удаление пакета из каталога \TeX{}. \end{deflist} -\subsection{Каталоги \file{disser/templates} и - \file{disser/templates/<тип-диссертации>}} +\subsection{Подкаталоги \file{templates} и + \file{templates/<тип-диссертации>}} \begin{deflist}{\longestlabel} \item[dvi] @@ -281,7 +283,7 @@ nomake <target1> <target2> ...\end{verbatim} Сборка архива из содержимого текущего каталога. \end{deflist} -Помимо указанных выше целей, в каталоге \file{disser/templates} доступны следующие: +Помимо указанных выше целей, в каталоге \file{templates} доступны следующие: \begin{deflist}{\longestlabel} \item[install] Копирование шаблонов в дерево каталогов \TeX{}. @@ -294,13 +296,13 @@ nomake <target1> <target2> ...\end{verbatim} \begin{flushleft} \textbf{Примечания:} -1) Файлы \file{nomake.cmd} в подкаталогах шаблонов зависят от \file{include/latex.nmk.cmd} и \file{include/latex.fig.nmk.cmd}. +1) Файлы \file{nomake.cmd} в каталогах шаблонов зависят от \file{include/latex.nmk.cmd} и \file{include/latex.fig.nmk.cmd}. Файлы \file{Makefile} зависят от \file{include/latex.mk} и \file{include/latex.fig.mk}. 2) \file{Makefile} и \file{nomake.cmd} могут использовать цели из каталога \file{fig}. \end{flushleft} -\subsection{Каталог \file{disser/templates/<тип-диссертации>/fig}} +\subsection{Подкаталоги \file{templates/<тип-диссертации>/fig}} \begin{deflist}{\longestlabel} \item[bmtoeps] @@ -349,7 +351,7 @@ nomake <target1> <target2> ...\end{verbatim} Поскольку в российских диссертациях обычно не используются колонтитулы, содержащие название текущей главы документа, то стили, реализованные в данном классе, влияют лишь на положение номера страницы. Стиль колонтитулов обычных страниц документа задается в преамбуле командой |\pagestyle{<style>}|, а стиль страниц, с которых начинается новая глава "--- командой |\chapterpagestyle{<style>}|. Здесь |<style>| может принимать следующие значения: -\begin{deflist}{headcenter} +\begin{deflist}{headcenter } \item[footleft] Номер внизу и слева. \item[footcenter] Номер внизу и по середине. \item[footright] Номер внизу и справа. @@ -366,7 +368,8 @@ nomake <target1> <target2> ...\end{verbatim} \begin{verbatim} \def\headfont{\small} \pagestyle{headcenter} -\chapterpagestyle{headcenter}\end{verbatim} +\chapterpagestyle{headcenter} +\end{verbatim} \section{Оформление библиографии} @@ -384,19 +387,6 @@ nomake <target1> <target2> ...\end{verbatim} \item Настраиваемые префикс и постфикс номера библиографической ссылки для оформления списка работ диссертанта в автореферате. \end{enumerate} -Для работы с русскоязычными библиографическими ссылками необходима версия \BibTeX{} с поддержкой 8-битных символов, \cmd{bibtex8}. -В зависимости от кодировки текста в \file{bib}-файле, необходимо подключать соответствующий \file{csf}-файл с описанием кодовой страницы и порядка сортировки, например, \file{cp1251.csf}. -Примеры библиографических записей приведены в документации к пакету \pkg{gost}, который может быть найден в любом современном дистрибутиве \LaTeX{}. - -Последовательность команд, используемая для полной сборки документа с библиографией, имеет следующий вид: -\begin{verbatim} -latex <tex-file> -bibtex8 -H -c <csf-file> <tex-file-basename> -latex <tex-file> -latex <tex-file> -\end{verbatim} -Здесь |<tex-file>| "--- файл документа, |<tex-file-basename>| "--- имя файла документа без расширения, |<csf-file>| "--- файл описания кодовой страницы. - Стили позволяют менять префикс и постфикс номеров ссылок, т.\,е. использовать ссылки вида [A1] или [1a]. Это необходимо для того, чтобы в автореферате различались ссылки на работы соискателя и на внешние источники. Префикс и постфикс номера ссылки определяются макросами |\BibPrefix| и |\BibPostfix|, соответственно. @@ -409,18 +399,45 @@ latex <tex-file> \bibliography{thesis} \end{verbatim} В данном случае ссылки будут иметь вид [A$n$], где $n$ "--- номер. - -К сожалению, пакет |natbib| не <<сжимает>> ссылки с нецифровыми символами, т.\,е. ссылки вида [A1, A2, A3, A4] не преобразуются к более компактной форме [A1--A4]. +К сожалению, пакет \pkg{natbib} не <<сжимает>> ссылки с нецифровыми символами, т.\,е. ссылки вида [A1, A2, A3, A4] не преобразуются к более компактной форме [A1--A4]. Ведется работа над исправлением этого недостатка. +При описании русскоязычных источников следует явным образом присваивать полю |language| значение |russian|. +Пример: +\begin{verbatim} +@BOOK{Anselm_1978, + author = {А. И. Ансельм}, + title = {Введение в теорию полупроводников}, + publisher = {Наука}, + address = {Москва}, + year = {1978}, + language = {russian} +} +\end{verbatim} Для указания даты обращения к Интернет-ресурсам следует использовать поле |urldate|. Пример: \begin{verbatim} -@MISC{photosyn, - url = {http://www.bio.indiana.edu/~hangarterlab/courses/b373/lecturenotes/photosyn/et.html}, - urldate = {10.10.2009 г.} +@INCOLLECTION{InP, + title = {InP Basic Parameters at 300 K}, + booktitle = {Electronic archive New Semiconductor Materials. Characteristics and Properties}, + organization = {Ioffe Physico-Technical Institute}, + address = {St. Petersburg}, + year = {2001}, + url = {http://www.ioffe.rssi.ru/SVA/NSM/Semicond/InP/basic.html}, + urldate = {01.11.2009} } \end{verbatim} +Для работы с русскоязычными библиографическими ссылками необходимо использовать интерпретатор \cmd{bibtex8}, поддерживающий 8-битные символы. +В зависимости от кодировки текста в bib-файле, необходимо подключать соответствующий csf-файл с описанием кодовой страницы и порядка сортировки, например, \file{cp1251.csf}. +Последовательность команд, используемая для полной сборки документа с библиографией, имеет следующий вид: +\begin{verbatim} +latex <tex-file> +bibtex8 -H -c <csf-file> <tex-file-basename> +latex <tex-file> +latex <tex-file> +\end{verbatim} +Здесь |<tex-file>| "--- файл документа, |<tex-file-basename>| "--- имя файла документа без расширения, |<csf-file>| "--- файл описания кодовой страницы. + \section{Авторефераты кандидатских и докторских диссертаций} \subsection{Общий текст} @@ -456,10 +473,12 @@ latex autoref Сборка автореферата в Windows: \begin{verbatim} set target=autoref -nomake\end{verbatim} -В Unix-like окружениях: +nomake +\end{verbatim} +В Unix-подобных окружениях: \begin{verbatim} -env TARGET=autoref make\end{verbatim} +env TARGET=autoref make +\end{verbatim} Для возврата к сборке диссертации следует присвоить переменной |TARGET| значение |thesis|. \subsection{Подписи диссертанта и ученого секретаря} diff --git a/Master/texmf-dist/doc/latex/disser/nomake.cmd b/Master/texmf-dist/doc/latex/disser/nomake.cmd index fe0cb33a2c8..5b42067fad2 100644 --- a/Master/texmf-dist/doc/latex/disser/nomake.cmd +++ b/Master/texmf-dist/doc/latex/disser/nomake.cmd @@ -67,10 +67,15 @@ goto :eof !mi! !miflags! %target% !latex! !latexflags! %target%.dtx !latex! !latexflags! %target%.dtx + !latex! !latexflags! %subclass%.dtx !latex! !latexflags! %subclass%.dtx + !latex! !latexflags! %bst%.dtx + !mi! !miflags! %bst% !latex! !latexflags! %bst%.dtx + !latex! !latexflags! %bst%.dtx + !latex! !latexflags! %manual%.tex !latex! !latexflags! %manual%.tex goto :eof @@ -110,10 +115,15 @@ goto :eof !mi! !miflags! %target% !pdflatex! !pdflatexflags! %target%.dtx !pdflatex! !pdflatexflags! %target%.dtx + !pdflatex! !pdflatexflags! %subclass%.dtx !pdflatex! !pdflatexflags! %subclass%.dtx + !pdflatex! !pdflatexflags! %bst%.dtx + !mi! !miflags! %bst% !pdflatex! !pdflatexflags! %bst%.dtx + !pdflatex! !pdflatexflags! %bst%.dtx + !pdflatex! !pdflatexflags! %manual%.tex !pdflatex! !pdflatexflags! %manual%.tex goto :eof diff --git a/Master/texmf-dist/doc/latex/disser/templates/bachelor/1.tex b/Master/texmf-dist/doc/latex/disser/templates/bachelor/1.tex index dbf4c317b37..a2d5cb84f29 100644 --- a/Master/texmf-dist/doc/latex/disser/templates/bachelor/1.tex +++ b/Master/texmf-dist/doc/latex/disser/templates/bachelor/1.tex @@ -6,7 +6,9 @@ Ссылки на литературу~\cite{Yoffe_1993_AP_42_173,Efros_1982_FTP_16_7_1209,% Anselm_1978,Segall_1968,Agranovich_1983,InP}. Ссылка на формулу~\eqref{eq:e} \begin{equation}\label{eq:e} - \vec P=\sqrt{\frac{N_0 m_r \Omega_{LO}}{4\pi\epsilon^*}}(\vec u_+ - \vec u_-). + \frac{1}{|\vec r_1 - \vec r_2|} = + 4\pi \int \frac{d^3 q}{(2\pi)^3}\, + \frac{e^{i\vec q(\vec r_1 - \vec r_2)}}{q^2}. \end{equation} Ссылка на рис.~\ref{fig:f} diff --git a/Master/texmf-dist/doc/latex/disser/templates/bachelor/thesis.tex b/Master/texmf-dist/doc/latex/disser/templates/bachelor/thesis.tex index 07d784042cb..49b851a4015 100644 --- a/Master/texmf-dist/doc/latex/disser/templates/bachelor/thesis.tex +++ b/Master/texmf-dist/doc/latex/disser/templates/bachelor/thesis.tex @@ -17,6 +17,12 @@ %\pagestyle{headcenter} %\chapterpagestyle{headcenter} +% Использовать полужирное начертание для векторов +\let\vec=\mathbf + +% Включать подсекции в оглавление +\setcounter{tocdepth}{2} + \graphicspath{{fig/}} % ---------------------------------------------------------------- \begin{document} diff --git a/Master/texmf-dist/doc/latex/disser/templates/candidate/thesis.tex b/Master/texmf-dist/doc/latex/disser/templates/candidate/thesis.tex index c5976bd6af9..3c9e1264c2a 100644 --- a/Master/texmf-dist/doc/latex/disser/templates/candidate/thesis.tex +++ b/Master/texmf-dist/doc/latex/disser/templates/candidate/thesis.tex @@ -21,6 +21,9 @@ % Ссылки на работы соискателя включаются в общий список литературы \let\citemy=\cite +% Использовать полужирное начертание для векторов +\let\vec=\mathbf + % Путь к файлам с иллюстрациями \graphicspath{{fig/}} diff --git a/Master/texmf-dist/doc/latex/disser/templates/doctor/thesis.tex b/Master/texmf-dist/doc/latex/disser/templates/doctor/thesis.tex index 7deef68782f..a681a6e0e26 100644 --- a/Master/texmf-dist/doc/latex/disser/templates/doctor/thesis.tex +++ b/Master/texmf-dist/doc/latex/disser/templates/doctor/thesis.tex @@ -21,6 +21,9 @@ % Ссылки на работы соискателя включаются в общий список литературы \let\citemy=\cite +% Использовать полужирное начертание для векторов +\let\vec=\mathbf + % Путь к файлам с иллюстрациями \graphicspath{{fig/}} diff --git a/Master/texmf-dist/doc/latex/disser/templates/master/thesis.tex b/Master/texmf-dist/doc/latex/disser/templates/master/thesis.tex index 5f42746d338..6a726e04cd0 100644 --- a/Master/texmf-dist/doc/latex/disser/templates/master/thesis.tex +++ b/Master/texmf-dist/doc/latex/disser/templates/master/thesis.tex @@ -17,6 +17,9 @@ %\pagestyle{headcenter} %\chapterpagestyle{headcenter} +% Использовать полужирное начертание для векторов +\let\vec=\mathbf + \graphicspath{{fig/}} % -------------------------------------------------------------------------- \begin{document} diff --git a/Master/texmf-dist/source/latex/disser/Makefile b/Master/texmf-dist/source/latex/disser/Makefile index fdc9261dd9a..26fcd09a5c4 100644 --- a/Master/texmf-dist/source/latex/disser/Makefile +++ b/Master/texmf-dist/source/latex/disser/Makefile @@ -4,7 +4,8 @@ # TARGET := disser -MAINDTX := disser gost732 gost705 +BST := gost705 +MAINDTX := disser gost732 $(BST) MANUAL := manual CLSFILES := *.cls *.rtx @@ -72,7 +73,7 @@ reinstall: uninstall install $(TARGET).dvi: $(TARGET).dtx $(LATEX) $(LATEXFLAGS) $< - $(MI) -r $(TARGET) + $(MI) $(MIFLAGS) $(TARGET) $(LATEX) $(LATEXFLAGS) $< $(LATEX) $(LATEXFLAGS) $< @@ -82,6 +83,18 @@ $(TARGET).pdf: $(TARGET).dtx $(PDFLATEX) $(PDFLATEXFLAGS) $< $(PDFLATEX) $(PDFLATEXFLAGS) $< +$(BST).dvi: $(BST).dtx + $(LATEX) $(LATEXFLAGS) $< + $(MI) $(MIFLAGS) $(BST) + $(LATEX) $(LATEXFLAGS) $< + $(LATEX) $(LATEXFLAGS) $< + +$(BST).pdf: $(BST).dtx + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(MI) $(MIFLAGS) $(BST) + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(PDFLATEX) $(PDFLATEXFLAGS) $< + %.cls: %.ins $(LATEX) $^ diff --git a/Master/texmf-dist/source/latex/disser/disser.dtx b/Master/texmf-dist/source/latex/disser/disser.dtx index 50867c23199..38ff7592474 100644 --- a/Master/texmf-dist/source/latex/disser/disser.dtx +++ b/Master/texmf-dist/source/latex/disser/disser.dtx @@ -19,7 +19,7 @@ %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{disser.drv}[2009/11/05 1.1.3 Document class for dissertations] +\ProvidesFile{disser.drv}[2009/11/20 1.1.4 Document class for dissertations] \documentclass{ltxdoc} \usepackage[a4paper, includeheadfoot, nohead, mag=1000, @@ -181,7 +181,7 @@ %<*disser> \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{disser}[2009/11/05 1.1.3 Document class for dissertations] +\ProvidesClass{disser}[2009/11/20 1.1.4 Document class for dissertations] % \end{macrocode} % Расширение файлов, включаемых в |disser.cls|. @@ -442,8 +442,8 @@ % \end{macrocode} % Выполнение пользовательских опций. % \begin{macrocode} -\ProcessOptions \ProcessKeyvalOptions{Dis} +\ProcessOptions % \end{macrocode} % Команды изменения регистра. Им самое место в ядре. diff --git a/Master/texmf-dist/source/latex/disser/gost705.dtx b/Master/texmf-dist/source/latex/disser/gost705.dtx index a10b81cd27f..db917197217 100644 --- a/Master/texmf-dist/source/latex/disser/gost705.dtx +++ b/Master/texmf-dist/source/latex/disser/gost705.dtx @@ -22,12 +22,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{gost705.drv}[2009/10/27 1.1.3 Bibliography style for dissertations.] +\ProvidesFile{gost705.drv}[2009/11/20 1.1.4 Bibliography style for dissertations.] \documentclass{ltxdoc} \usepackage[a4paper,includeheadfoot,nohead,mag=1000, left=5cm,right=1cm,top=1.5cm,bottom=1.5cm]{geometry} -\usepackage{ifpdf,indentfirst,color} +\usepackage{ifpdf,indentfirst,color,makeidx} + \definecolor{darkblue}{rgb}{0,0,.6} \ifpdf \usepackage[% @@ -76,14 +77,45 @@ \def\pkg#1{\textsf{#1}} \def\cmd#1{\texttt{#1}} +\newcommand\DescribeBSTFunction[1]{ + \DescribeMacro{#1}\index{Функции!\texttt{#1}} +} +\newcommand\DescribeBSTMacro[1]{ + \DescribeMacro{#1}\index{Макросы!\texttt{#1}} +} + +\makeatletter + \def\IndexParms{% + \parindent \z@ + \columnsep 15pt + \parskip 0pt plus 1pt + \rightskip 15pt + \mathsurround \z@ + \parfillskip=-15pt + \small + \def\@idxitem{\normalfont\par\hangindent 30pt\bfseries}% + \def\subitem{\normalfont\par\hangindent 30pt}% + \def\subsubitem{\normalfont\par\hangindent 30pt\hspace*{15pt}}% + \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}% + } + \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi + \columnseprule \z@ \columnsep 35\p@ + \twocolumn[\index@prologue]% + \IndexParms \let\item\@idxitem \ignorespaces} + \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\makeatother + \setlength\hfuzz{20pt} \hbadness=10000 -\GetFileInfo{gost705.drv} +\makeindex + \begin{document} \sloppy \PrintChanges \DocInput{gost705.dtx} + \IndexPrologue{\section{Предметный указатель}} + \printindex \end{document} %</driver> % \fi @@ -152,8 +184,12 @@ ENTRY INTEGERS { output.state before.all mid.sentence after.sentence after.block after.dblslash after.slash after.column after.semicolumn } +% \end{macrocode} +% \DescribeBSTFunction{init.state.consts} +% \begin{macrocode} FUNCTION {init.state.consts} -{ #0 'before.all := +{ + #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := @@ -169,23 +205,27 @@ STRINGS { curlanguage } % \end{macrocode} % \subsection{Переключение языка} +% \DescribeBSTFunction{change.language} % \begin{macrocode} FUNCTION {change.language} -{ booklanguage empty$ - { "" } - { booklanguage 'curlanguage := - "\selectlanguageifdefined{" - curlanguage * - "}" * - } +{ + booklanguage empty$ + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } if$ } % \end{macrocode} % \subsection{Вывод библиографической записи} +% \DescribeBSTFunction{output.nonnull} % \begin{macrocode} FUNCTION {output.nonnull} -{ swap$ +{ + swap$ output.state mid.sentence = { ", " * write$ } { output.state after.block = @@ -220,15 +260,23 @@ FUNCTION {output.nonnull} if$ } +% \end{macrocode} +% \DescribeBSTFunction{output} +% \begin{macrocode} FUNCTION {output} -{ duplicate$ empty$ +{ + duplicate$ empty$ 'pop$ 'output.nonnull if$ } +% \end{macrocode} +% \DescribeBSTFunction{output.check} +% \begin{macrocode} FUNCTION {output.check} -{ 't := +{ + 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull @@ -237,50 +285,76 @@ FUNCTION {output.check} % \end{macrocode} % \subsection{Вывод блоков и ограничителей} +% \DescribeBSTFunction{fin.entry} % \begin{macrocode} FUNCTION {fin.entry} -{ add.period$ +{ + add.period$ write$ newline$ } +% \end{macrocode} +% \DescribeBSTFunction{new.block} +% \begin{macrocode} FUNCTION {new.block} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.block 'output.state := } if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.dblslash} +% \begin{macrocode} FUNCTION {new.dblslash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.dblslash 'output.state := } if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.slash} +% \begin{macrocode} FUNCTION {new.slash} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.slash 'output.state := } if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.column} +% \begin{macrocode} FUNCTION {new.column} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.column 'output.state := } if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.semicolumn} +% \begin{macrocode} FUNCTION {new.semicolumn} -{ output.state before.all = +{ + output.state before.all = 'skip$ { after.semicolumn 'output.state := } if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.sentence} +% \begin{macrocode} FUNCTION {new.sentence} -{ output.state after.block = +{ + output.state after.block = 'skip$ { output.state before.all = 'skip$ @@ -290,42 +364,68 @@ FUNCTION {new.sentence} if$ } -FUNCTION {add.blank} -{ " " * before.all 'output.state := } +% \end{macrocode} +% \DescribeBSTFunction{add.blank} +% \begin{macrocode} +FUNCTION {add.blank} { " " * before.all 'output.state := } +% \end{macrocode} +% \DescribeBSTFunction{not} +% \begin{macrocode} FUNCTION {not} -{ { #0 } +{ + { #0 } { #1 } if$ } +% \end{macrocode} +% \DescribeBSTFunction{and} +% \begin{macrocode} FUNCTION {and} -{ 'skip$ +{ + 'skip$ { pop$ #0 } if$ } +% \end{macrocode} +% \DescribeBSTFunction{or} +% \begin{macrocode} FUNCTION {or} -{ { pop$ #1 } +{ + { pop$ #1 } 'skip$ if$ } +% \end{macrocode} +% \DescribeBSTFunction{non.stop} +% \begin{macrocode} FUNCTION {non.stop} -{ duplicate$ +{ + duplicate$ "}" * add.period$ #-1 #1 substring$ "." = } +% \end{macrocode} +% \DescribeBSTFunction{new.block.checka} +% \begin{macrocode} FUNCTION {new.block.checka} -{ empty$ +{ + empty$ 'skip$ 'new.block if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.block.checkb} +% \begin{macrocode} FUNCTION {new.block.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -333,15 +433,23 @@ FUNCTION {new.block.checkb} if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.sentence.checka} +% \begin{macrocode} FUNCTION {new.sentence.checka} -{ empty$ +{ + empty$ 'skip$ 'new.sentence if$ } +% \end{macrocode} +% \DescribeBSTFunction{new.sentence.checkb} +% \begin{macrocode} FUNCTION {new.sentence.checkb} -{ empty$ +{ + empty$ swap$ empty$ and 'skip$ @@ -349,22 +457,32 @@ FUNCTION {new.sentence.checkb} if$ } +% \end{macrocode} +% \DescribeBSTFunction{field.or.null} +% \begin{macrocode} FUNCTION {field.or.null} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } 'skip$ if$ } +% \end{macrocode} +% \DescribeBSTFunction{emphasize} +% \begin{macrocode} FUNCTION {emphasize} -{ duplicate$ empty$ +{ + duplicate$ empty$ { pop$ "" } { "\BibEmph{" swap$ * "}" * } if$ } -FUNCTION {space.word} -{ " " swap$ * " " * } +% \end{macrocode} +% \DescribeBSTFunction{space.word} +% \begin{macrocode} +FUNCTION {space.word} { " " swap$ * " " * } % \end{macrocode} % \subsection{Общепринятые сокращения} @@ -398,8 +516,8 @@ FUNCTION {bbl.edition} % { "\bbledition{}" } curlanguage "english" = { "edition" } { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} + { "{\cyr\cyri\cyrz\cyrd.}" } + { "language is not defined: " language "edition" * * warning$ "edition" } if$ } if$ @@ -410,8 +528,8 @@ FUNCTION {bbl.vvolume} % { "\bblVolume{}" } curlanguage "english" = { "Volume" } { curlanguage "russian" = - {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} + { "{\cyr\CYRT\cyro\cyrm}" } + { "language is not defined: " language "Volume" * * warning$ "Volume" } if$ } if$ @@ -422,7 +540,7 @@ FUNCTION {bbl.vvol} % { "\bblVol{}" } curlanguage "english" = { "Vol." } { curlanguage "russian" = - { "\CYRT." } + { "{\cyr\CYRT.}" } { "language is not defined: " language "Vol." * * warning$ "Vol." } if$ } @@ -434,8 +552,8 @@ FUNCTION {bbl.iissue} % { "\bblIssue{}" } curlanguage "english" = { "Issue" } { curlanguage "russian" = - {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -446,8 +564,8 @@ FUNCTION {bbl.iiss} % { "\bblIss{}" } curlanguage "english" = {"Iss."} { curlanguage "russian" = - {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} + { "{\cyr\CYRV\cyrery\cyrp.}" } + { "language is not defined: " language * warning$ "Issue" } if$ } if$ @@ -458,8 +576,8 @@ FUNCTION {bbl.of} % { "\bblof{}" } curlanguage "english" = {"of"} { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} + { "{\cyr\cyri\cyrz}" } + { "language is not defined: " language "of" * * warning$ "of" } if$ } if$ @@ -482,7 +600,7 @@ FUNCTION {bbl.nnumber} % { "\bblNumber{}" } curlanguage "english" = { "Number" } { curlanguage "russian" = - { "\CYRN\cyro\cyrm\cyre\cyrr"} + { "{\cyr\CYRN\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "Number" * * warning$ "Number" } if$ } @@ -494,7 +612,7 @@ FUNCTION {bbl.number} % { "\bblnumber{}" } curlanguage "english" = { "number" } { curlanguage "russian" = - { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}" } { "language is not defined: " language "number" * * warning$ "number" } if$ } @@ -542,7 +660,7 @@ FUNCTION {bbl.iin} % { "\bblIn{}" } curlanguage "english" = { "In" } { curlanguage "russian" = - { "\CYRV" } + { "{\cyr\CYRV}" } { "language is not defined: " language "In" * * warning$ "In" } if$ } @@ -633,13 +751,17 @@ FUNCTION {bbl.phdthesis} if$ } +% \end{macrocode} +% \subsection{Формат элементов библиографических ссылок} +% \begin{macrocode} INTEGERS { nameptr namesleft numnames } % \end{macrocode} -% \subsection{Формат элементов библиографических ссылок} +% \DescribeBSTFunction{format.names} % \begin{macrocode} FUNCTION {format.names} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -658,8 +780,8 @@ FUNCTION {format.names} { ", " * t * } { t "others" = - t "~others" = - or + t "~others" = + or { " " * bbl.etal * } { ", " * t * } if$ @@ -674,8 +796,12 @@ FUNCTION {format.names} while$ } +% \end{macrocode} +% \DescribeBSTFunction{format.names.rev} +% \begin{macrocode} FUNCTION {format.names.rev} -{ 's := +{ + 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := @@ -710,57 +836,89 @@ FUNCTION {format.names.rev} while$ } +% \end{macrocode} +% \DescribeBSTFunction{format.authors} +% \begin{macrocode} FUNCTION {format.authors} -{ author empty$ +{ + author empty$ { "" } { author format.names emphasize } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.bookauthors} +% \begin{macrocode} FUNCTION {format.bookauthors} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.authors.after} +% \begin{macrocode} FUNCTION {format.authors.after} -{ author empty$ +{ + author empty$ { "" } { author format.names.rev } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.bookauthors.after} +% \begin{macrocode} FUNCTION {format.bookauthors.after} -{ bookauthor empty$ +{ + bookauthor empty$ { "" } { bookauthor format.names.rev } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.editors.after} +% \begin{macrocode} FUNCTION {format.editors.after} -{ editor empty$ +{ + editor empty$ { "" } { bbl.edby editor format.names.rev * } if$ } -FUNCTION { format.compiler.after } -{ compiler empty$ +% \end{macrocode} +% \DescribeBSTFunction{format.compiler.after} +% \begin{macrocode} +FUNCTION {format.compiler.after} +{ + compiler empty$ { "" } { bbl.cmplr compiler format.names.rev * } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.title} +% \begin{macrocode} FUNCTION {format.title} -{ title empty$ +{ + title empty$ { "" } { title } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.date} +% \begin{macrocode} FUNCTION {format.date} -{ year empty$ +{ + year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ @@ -776,8 +934,12 @@ FUNCTION {format.date} if$ } +% \end{macrocode} +% \DescribeBSTFunction{output.address.publisher.date} +% \begin{macrocode} FUNCTION {output.address.publisher.date} -{ address empty$ +{ + address empty$ 'skip$ { address output publisher empty$ @@ -790,8 +952,12 @@ FUNCTION {output.address.publisher.date} format.date output } +% \end{macrocode} +% \DescribeBSTFunction{output.bibitem} +% \begin{macrocode} FUNCTION {output.bibitem} -{ newline$ +{ + newline$ "\bibitem[" write$ "\BibPrefix" write$ label write$ @@ -811,8 +977,12 @@ FUNCTION {output.bibitem} before.all 'output.state := } +% \end{macrocode} +% \DescribeBSTFunction{n.dashify} +% \begin{macrocode} FUNCTION {n.dashify} -{ 't := +{ + 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -836,35 +1006,50 @@ FUNCTION {n.dashify} while$ } -FUNCTION {word.in} -{ bbl.iin - " " * } +% \end{macrocode} +% \DescribeBSTFunction{word.in} +% \begin{macrocode} +FUNCTION {word.in} { bbl.iin " " * } -FUNCTION {format.btitle} -{ title } +% \end{macrocode} +% \DescribeBSTFunction{format.btitle} +% \begin{macrocode} +FUNCTION {format.btitle} { title } +% \end{macrocode} +% \DescribeBSTFunction{tie.or.space.connect} +% \begin{macrocode} FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < +{ + duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } -FUNCTION {tie.connect} -{"~" -swap$ * * -} +% \end{macrocode} +% \DescribeBSTFunction{tie.connect} +% \begin{macrocode} +FUNCTION {tie.connect} { "~" swap$ * * } +% \end{macrocode} +% \DescribeBSTFunction{either.or.check} +% \begin{macrocode} FUNCTION {either.or.check} -{ empty$ +{ + empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.bvolume} +% \begin{macrocode} FUNCTION {format.bvolume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.connect series empty$ @@ -876,8 +1061,12 @@ FUNCTION {format.bvolume} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.number.series} +% \begin{macrocode} FUNCTION {format.number.series} -{ volume empty$ +{ + volume empty$ { number empty$ { series field.or.null } { series empty$ @@ -898,14 +1087,22 @@ FUNCTION {format.number.series} if$ } +% \end{macrocode} +% \DescribeBSTFunction{is.num} +% \begin{macrocode} FUNCTION {is.num} -{ chr.to.int$ +{ + chr.to.int$ duplicate$ "0" chr.to.int$ < not swap$ "9" chr.to.int$ > not and } +% \end{macrocode} +% \DescribeBSTFunction{extract.num} +% \begin{macrocode} FUNCTION {extract.num} -{ duplicate$ 't := +{ + duplicate$ 't := "" 's := { t empty$ not } { t #1 #1 substring$ @@ -922,11 +1119,17 @@ FUNCTION {extract.num} if$ } -FUNCTION {convert.edition} -{ edition } +% \end{macrocode} +% \DescribeBSTFunction{convert.edition} +% \begin{macrocode} +FUNCTION {convert.edition} { edition } +% \end{macrocode} +% \DescribeBSTFunction{format.edition} +% \begin{macrocode} FUNCTION {format.edition} -{ edition empty$ +{ + edition empty$ { "" } { output.state mid.sentence = { convert.edition "l" change.case$ " " * bbl.edition * } @@ -938,8 +1141,12 @@ FUNCTION {format.edition} INTEGERS { multiresult } +% \end{macrocode} +% \DescribeBSTFunction{multi.page.check} +% \begin{macrocode} FUNCTION {multi.page.check} -{ 't := +{ + 't := #0 'multiresult := { multiresult not t empty$ not @@ -958,8 +1165,12 @@ FUNCTION {multi.page.check} multiresult } +% \end{macrocode} +% \DescribeBSTFunction{format.pages} +% \begin{macrocode} FUNCTION {format.pages} -{ pages empty$ +{ + pages empty$ { "" } { pages multi.page.check { bbl.ppages pages n.dashify tie.connect } @@ -969,8 +1180,12 @@ FUNCTION {format.pages} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.pages.page} +% \begin{macrocode} FUNCTION {format.pages.page} -{ pages empty$ +{ + pages empty$ { numpages empty$ { "" } { numpages bbl.pages tie.connect } @@ -980,8 +1195,12 @@ FUNCTION {format.pages.page} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.vol.num.pages} +% \begin{macrocode} FUNCTION {format.vol.num.pages} -{ volume field.or.null +{ + volume field.or.null number empty$ 'skip$ { @@ -1002,22 +1221,34 @@ FUNCTION {format.vol.num.pages} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.volume} +% \begin{macrocode} FUNCTION {format.volume} -{ volume empty$ +{ + volume empty$ { "" } { bbl.vvol volume tie.or.space.connect } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.number} +% \begin{macrocode} FUNCTION {format.number} -{ number empty$ +{ + number empty$ { "" } { bbl.nr number tie.or.space.connect } if$ } +% \end{macrocode} +% \DescribeBSTFunction{empty.misc.check} +% \begin{macrocode} FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ +{ + author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and @@ -1026,8 +1257,12 @@ FUNCTION {empty.misc.check} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.thesis.type} +% \begin{macrocode} FUNCTION {format.thesis.type} -{ type empty$ +{ + type empty$ 'skip$ { pop$ type "t" change.case$ @@ -1035,8 +1270,12 @@ FUNCTION {format.thesis.type} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.tr.number} +% \begin{macrocode} FUNCTION {format.tr.number} -{ type empty$ +{ + type empty$ { bbl.techrep } 'type if$ @@ -1046,8 +1285,12 @@ FUNCTION {format.tr.number} if$ } +% \end{macrocode} +% \DescribeBSTFunction{author.before} +% \begin{macrocode} FUNCTION {author.before} -{ author empty$ +{ + author empty$ 'skip$ { format.authors output @@ -1056,8 +1299,12 @@ FUNCTION {author.before} if$ } +% \end{macrocode} +% \DescribeBSTFunction{bookauthor.before} +% \begin{macrocode} FUNCTION {bookauthor.before} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { format.bookauthors output @@ -1066,8 +1313,12 @@ FUNCTION {bookauthor.before} if$ } +% \end{macrocode} +% \DescribeBSTFunction{author.after} +% \begin{macrocode} FUNCTION {author.after} -{ author empty$ +{ + author empty$ 'skip$ { author num.names$ #3 > { format.authors.after output @@ -1079,8 +1330,12 @@ FUNCTION {author.after} if$ } +% \end{macrocode} +% \DescribeBSTFunction{bookauthor.after} +% \begin{macrocode} FUNCTION {bookauthor.after} -{ bookauthor empty$ +{ + bookauthor empty$ 'skip$ { bookauthor num.names$ #3 > { format.bookauthors.after output @@ -1092,8 +1347,12 @@ FUNCTION {bookauthor.after} if$ } +% \end{macrocode} +% \DescribeBSTFunction{editor.organization.after} +% \begin{macrocode} FUNCTION {editor.organization.after} -{ compiler empty$ +{ + compiler empty$ 'skip$ { format.compiler.after output new.semicolumn @@ -1113,15 +1372,23 @@ FUNCTION {editor.organization.after} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.url} +% \begin{macrocode} FUNCTION {format.url} -{ url empty$ +{ + url empty$ { "" } { "\BibUrl{" url * "}" * } if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.urldate} +% \begin{macrocode} FUNCTION {format.urldate} -{ urldate empty$ +{ + urldate empty$ { "" } { add.blank "\BibUrlDate{" urldate * "}" * @@ -1129,8 +1396,12 @@ FUNCTION {format.urldate} if$ } +% \end{macrocode} +% \DescribeBSTFunction{output.url} +% \begin{macrocode} FUNCTION {output.url} -{ url empty$ +{ + url empty$ 'skip$ { format.url output format.urldate output @@ -1138,8 +1409,12 @@ FUNCTION {output.url} if$ } +% \end{macrocode} +% \DescribeBSTFunction{format.annote} +% \begin{macrocode} FUNCTION {format.annote} -{ annote empty$ +{ + annote empty$ { "" } { after.sentence 'output.state := "\BibAnnote{" annote add.period$ * "}" * @@ -1149,9 +1424,11 @@ FUNCTION {format.annote} % \end{macrocode} % \subsection{Описание типов библиографических ссылок} +% \DescribeBSTFunction{article} % \begin{macrocode} FUNCTION {article} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check new.dblslash @@ -1171,8 +1448,12 @@ FUNCTION {article} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{book} +% \begin{macrocode} FUNCTION {book} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1194,8 +1475,12 @@ FUNCTION {book} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{booklet} +% \begin{macrocode} FUNCTION {booklet} -{ output.bibitem +{ + output.bibitem author.before format.title "title" output.check editor.organization.after @@ -1211,8 +1496,12 @@ FUNCTION {booklet} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{inbook} +% \begin{macrocode} FUNCTION {inbook} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check new.dblslash @@ -1237,8 +1526,12 @@ FUNCTION {inbook} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{incollection} +% \begin{macrocode} FUNCTION {incollection} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1257,13 +1550,16 @@ FUNCTION {incollection} note output new.block output.url - new.block format.annote output fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{inproceedings} +% \begin{macrocode} FUNCTION {inproceedings} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1295,10 +1591,17 @@ FUNCTION {inproceedings} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{conference} +% \begin{macrocode} FUNCTION {conference} { inproceedings } +% \end{macrocode} +% \DescribeBSTFunction{manual} +% \begin{macrocode} FUNCTION {manual} -{ output.bibitem +{ + output.bibitem author empty$ { organization empty$ 'skip$ @@ -1335,8 +1638,12 @@ FUNCTION {manual} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{mastersthesis} +% \begin{macrocode} FUNCTION {mastersthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.btitle "title" output.check @@ -1353,8 +1660,12 @@ FUNCTION {mastersthesis} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{phdthesis} +% \begin{macrocode} FUNCTION {misc} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.block format.title "title" output.check @@ -1370,8 +1681,12 @@ FUNCTION {misc} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{phdthesis} +% \begin{macrocode} FUNCTION {phdthesis} -{ output.bibitem +{ + output.bibitem format.authors "author" output.check new.sentence format.btitle "title" output.check @@ -1390,8 +1705,12 @@ FUNCTION {phdthesis} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{proceedings} +% \begin{macrocode} FUNCTION {proceedings} -{ output.bibitem +{ + output.bibitem format.btitle "title" output.check new.slash editor.organization.after @@ -1416,8 +1735,12 @@ FUNCTION {proceedings} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{techreport} +% \begin{macrocode} FUNCTION {techreport} -{ output.bibitem +{ + output.bibitem author.before new.sentence format.title "title" output.check @@ -1437,8 +1760,12 @@ FUNCTION {techreport} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{unpublished} +% \begin{macrocode} FUNCTION {unpublished} -{ output.bibitem +{ + output.bibitem author.before format.btitle "title" output.check editor.organization.after @@ -1450,6 +1777,9 @@ FUNCTION {unpublished} fin.entry } +% \end{macrocode} +% \DescribeBSTFunction{default.type} +% \begin{macrocode} FUNCTION {default.type} { misc } % \end{macrocode} @@ -1526,15 +1856,23 @@ READ % \subsection{Функции для сортировки списка литературы по именам авторов и названиям} % \begin{macrocode} %<*gost705s> +% \end{macrocode} +% \DescribeBSTFunction{sortify} +% \begin{macrocode} FUNCTION {sortify} -{ purify$ +{ + purify$ "l" change.case$ } INTEGERS { len } +% \end{macrocode} +% \DescribeBSTFunction{chop.word} +% \begin{macrocode} FUNCTION {chop.word} -{ 's := +{ + 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } @@ -1542,8 +1880,12 @@ FUNCTION {chop.word} if$ } +% \end{macrocode} +% \DescribeBSTFunction{sort.format.names} +% \begin{macrocode} FUNCTION {sort.format.names} -{ 's := +{ + 's := #1 'nameptr := "" s num.names$ 'numnames := @@ -1566,8 +1908,12 @@ FUNCTION {sort.format.names} while$ } +% \end{macrocode} +% \DescribeBSTFunction{sort.format.title} +% \begin{macrocode} FUNCTION {sort.format.title} -{ 't := +{ + 't := "A " #2 "An " #3 "The " #4 t chop.word @@ -1577,8 +1923,12 @@ FUNCTION {sort.format.title} #1 global.max$ substring$ } +% \end{macrocode} +% \DescribeBSTFunction{author.sort} +% \begin{macrocode} FUNCTION {author.sort} -{ author empty$ +{ + author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" @@ -1587,13 +1937,17 @@ FUNCTION {author.sort} if$ } { - author sort.format.names} + author sort.format.names } if$ } +% \end{macrocode} +% \DescribeBSTFunction{author.title.sort} +% \begin{macrocode} FUNCTION {author.title.sort} -{ author empty$ +{ + author empty$ { title empty$ { key empty$ { "to sort, need author, title, or key in " cite$ * warning$ @@ -1611,6 +1965,9 @@ FUNCTION {author.title.sort} if$ } +% \end{macrocode} +% \DescribeBSTFunction{presort} +% \begin{macrocode} FUNCTION {presort} { author.title.sort @@ -1640,14 +1997,22 @@ STRINGS { longest.label } INTEGERS { number.label longest.label.width } +% \end{macrocode} +% \DescribeBSTFunction{initialize.longest.label} +% \begin{macrocode} FUNCTION {initialize.longest.label} -{ "" 'longest.label := +{ + "" 'longest.label := #1 'number.label := #0 'longest.label.width := } +% \end{macrocode} +% \DescribeBSTFunction{longest.label.pass} +% \begin{macrocode} FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := +{ + number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := @@ -1664,9 +2029,11 @@ ITERATE {longest.label.pass} % \end{macrocode} % \subsection{Формирование окружения thebibliography} % \subsubsection{Преамбула} +% \DescribeBSTFunction{begin.bib} % \begin{macrocode} FUNCTION {begin.bib} -{ preamble$ empty$ +{ + preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ @@ -1703,7 +2070,7 @@ FUNCTION {begin.bib} } % \end{macrocode} -% \subsubsection{Начало} +% \subsubsection{Начало окружения} % \begin{macrocode} EXECUTE {begin.bib} @@ -1712,10 +2079,12 @@ EXECUTE {init.state.consts} ITERATE {call.type$} % \end{macrocode} -% \subsubsection{Конец} +% \subsubsection{Конец окружения} +% \DescribeBSTFunction{end.bib} % \begin{macrocode} FUNCTION {end.bib} -{ newline$ +{ + newline$ "\end{thebibliography}" write$ newline$ } diff --git a/Master/texmf-dist/source/latex/disser/gost732.dtx b/Master/texmf-dist/source/latex/disser/gost732.dtx index 9fbb5e3c2f8..079ff7f9154 100644 --- a/Master/texmf-dist/source/latex/disser/gost732.dtx +++ b/Master/texmf-dist/source/latex/disser/gost732.dtx @@ -20,7 +20,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{gost732.drv}[2009/11/05 1.1.3 GOST 7.32-2001 implementation] +\ProvidesFile{gost732.drv}[2009/11/20 1.1.4 GOST 7.32-2001 implementation] \documentclass{ltxdoc} \usepackage[a4paper, includeheadfoot, nohead, mag=1000, @@ -113,7 +113,7 @@ % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesClass{gost732}[2009/11/05 1.1.3 GOST 7.32-2001 implementation] +\ProvidesClass{gost732}[2009/11/20 1.1.4 GOST 7.32-2001 implementation] \DeclareOption*{\PassOptionsToClass{\CurrentOption}{disser}} \ProcessOptions\relax @@ -154,13 +154,16 @@ % Изменение стандартных заголовков. % \begin{macrocode} \AtBeginDocument{\addto\captionsrussian{% -\def\bibname{% -\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\def\bibname{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % \CYRI\CYRS\CYRP\CYRO\CYRL\CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ % \CYRI\CYRS\CYRT\CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV} \def\figurename{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk} \def\appendixname{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE\CYRN\CYRI\CYRE} \def\contentsname{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA\CYRN\CYRI\CYRE} +\def\listfigurename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRI\CYRL\CYRL\CYRYU\CYRS\CYRT\CYRR\CYRA\CYRC\CYRI\CYRISHRT} +\def\listtablename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRT\CYRA\CYRB\CYRL\CYRI\CYRC} }} % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/disser/sections.dtx b/Master/texmf-dist/source/latex/disser/sections.dtx index 004f6da3607..9a12dec5633 100644 --- a/Master/texmf-dist/source/latex/disser/sections.dtx +++ b/Master/texmf-dist/source/latex/disser/sections.dtx @@ -36,7 +36,7 @@ % \DescribeMacro{\tocsectionnameindent}\index{Макросы!\verb*+\tocsectionnameindent+} % Пробел после номера. % \begin{macrocode} -\providecommand\tocsectionnameindent{2.3em} +\providecommand\tocsectionnameindent{2.6em} % \end{macrocode} % \paragraph{Параметры формата в тексте} @@ -92,8 +92,8 @@ \providecommand\tocsubsectionfillfont{} \providecommand\tocsubsectionnumfont{} -\providecommand\tocsubsectionindent{3.8em} -\providecommand\tocsubsectionnameindent{3.2em} +\providecommand\tocsubsectionindent{4.1em} +\providecommand\tocsubsectionnameindent{3.5em} % \end{macrocode} % \paragraph{Параметры формата в тексте} @@ -139,8 +139,8 @@ \providecommand\tocsubsubsectionfillfont{} \providecommand\tocsubsubsectionnumfont{} -\providecommand\tocsubsubsectionindent{7.0em} -\providecommand\tocsubsubsectionnameindent{4.1em} +\providecommand\tocsubsubsectionindent{7.6em} +\providecommand\tocsubsubsectionnameindent{4.7em} % \end{macrocode} % \paragraph{Параметры формата в тексте} diff --git a/Master/texmf-dist/tex/latex/disser/disser.cls b/Master/texmf-dist/tex/latex/disser/disser.cls index 40c950266f2..f99339f9388 100644 --- a/Master/texmf-dist/tex/latex/disser/disser.cls +++ b/Master/texmf-dist/tex/latex/disser/disser.cls @@ -44,7 +44,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{disser}[2009/11/05 1.1.3 Document class for dissertations] +\ProvidesClass{disser}[2009/11/20 1.1.4 Document class for dissertations] \def\substyle@ext{.rtx} @@ -179,8 +179,8 @@ } \ExecuteOptions{a4paper,14pt,oneside,titlepage,onecolumn,final,openany,candidate} -\ProcessOptions \ProcessKeyvalOptions{Dis} +\ProcessOptions \DeclareRobustCommand\MakeTextUppercase{% \@uclcnotmath{\def\i{I}\def\j{J}}{##1##2}\uppercase} @@ -646,7 +646,7 @@ \providecommand\tocsectionfillfont{} \providecommand\tocsectionnumfont{} \providecommand\tocsectionindent{1.5em} -\providecommand\tocsectionnameindent{2.3em} +\providecommand\tocsectionnameindent{2.6em} \providecommand\sectionfont{\normalfont\large\bfseries} @@ -666,8 +666,8 @@ \providecommand\tocsubsectionfillfont{} \providecommand\tocsubsectionnumfont{} -\providecommand\tocsubsectionindent{3.8em} -\providecommand\tocsubsectionnameindent{3.2em} +\providecommand\tocsubsectionindent{4.1em} +\providecommand\tocsubsectionnameindent{3.5em} \providecommand\subsectionfont{\normalfont\normalsize\bfseries} @@ -687,8 +687,8 @@ \providecommand\tocsubsubsectionfillfont{} \providecommand\tocsubsubsectionnumfont{} -\providecommand\tocsubsubsectionindent{7.0em} -\providecommand\tocsubsubsectionnameindent{4.1em} +\providecommand\tocsubsubsectionindent{7.6em} +\providecommand\tocsubsubsectionnameindent{4.7em} \providecommand\subsubsectionfont{\normalfont\normalsize\bfseries} diff --git a/Master/texmf-dist/tex/latex/disser/gost732.cls b/Master/texmf-dist/tex/latex/disser/gost732.cls index 2f9905a4b0e..b0a202e4731 100644 --- a/Master/texmf-dist/tex/latex/disser/gost732.cls +++ b/Master/texmf-dist/tex/latex/disser/gost732.cls @@ -32,7 +32,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesClass{gost732}[2009/11/05 1.1.3 GOST 7.32-2001 implementation] +\ProvidesClass{gost732}[2009/11/20 1.1.4 GOST 7.32-2001 implementation] \DeclareOption*{\PassOptionsToClass{\CurrentOption}{disser}} \ProcessOptions\relax @@ -65,13 +65,16 @@ \renewcommand\tocpostthesubparagraph{\@postskip} \AtBeginDocument{\addto\captionsrussian{% -\def\bibname{% -\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\def\bibname{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % \CYRI\CYRS\CYRP\CYRO\CYRL\CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ % \CYRI\CYRS\CYRT\CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV} \def\figurename{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk} \def\appendixname{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE\CYRN\CYRI\CYRE} \def\contentsname{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA\CYRN\CYRI\CYRE} +\def\listfigurename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRI\CYRL\CYRL\CYRYU\CYRS\CYRT\CYRR\CYRA\CYRC\CYRI\CYRISHRT} +\def\listtablename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRT\CYRA\CYRB\CYRL\CYRI\CYRC} }} \renewcommand\defsname{% |