diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-04 23:39:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-04 23:39:42 +0000 |
commit | 9887db96f6bd00a498bd06f2d0411a4a0542b86a (patch) | |
tree | 45551e2652130eb3ca108288a2bd4ca56d903411 /Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx | |
parent | c7f11261a82371f868980fd5c05f76c00646d036 (diff) |
biblatex-gost (2apr13)
git-svn-id: svn://tug.org/texlive/trunk@29663 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx b/Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx new file mode 100644 index 00000000000..5491eea6a82 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gost/gost-inline.cbx @@ -0,0 +1,304 @@ +\ProvidesFile{gost-inline.cbx} +[2013/04/03\space v0.8\space biblatex-gost styles] + +\DeclareLabelname + [inbook,incollection,inproceedings,inreference,suppbook,suppcollection,suppperiodical,bookinbook] + {\field{shortauthor}\field{author}\field{translator}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}} +\providecommand*{\mkibid}[1]{#1} +\newtoggle{cbx:loccit} +\newtoggle{cbx:t:bookibid} % for .. // Ibid. in inbook, incollection,.. +\newtoggle{cbx:f:bookibid} +\newtoggle{cbx:opt:inbookibid} + +\DeclareBibliographyOption{strict}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{ibidtracker=constrict,loccittracker=constrict}} + {\ExecuteBibliographyOptions{ibidtracker=context,loccittracker=context}}} + +\DeclareBibliographyOption{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\postnotedelim}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\DeclareBibliographyOption{inbookibid}[true]{% + \settoggle{cbx:opt:inbookibid}{#1}% + \iftoggle{cbx:opt:inbookibid} + {\def\blx@mincrossrefs{1}} + {}} + +\AtEveryCitekey{% + \ifcsdef{abx@field@hyphenation}{% + \edef\blx@languagename{\abx@field@hyphenation}% + \select@language{\abx@field@hyphenation}% + \blx@hyphenreset}% + {}% +} + +\DeclareNameAlias{labelname}{author} +\DeclareFieldFormat*{citetitle}{#1} + +\renewcommand{\postnotedelim}{\addperiod\space} +\renewcommand{\multicitedelim}{\addsemicolondelim\space} + +\ExecuteBibliographyOptions{citetracker=constrict,autocite=inline,inbookibid=false, + citepages=omit,strict,opcittracker=constrict,labeltitle, + citeisbn=false,citeurl=false,citedoi=false,citeeprint=false} + +\newbibmacro*{cite:seen}{% the same for cite and footcite + \ifciteibid + {\ifloccit{\global\toggletrue{cbx:loccit}}{}% + \usebibmacro{cite:ibid}} + {\ifopcit + {\ifloccit{\global\toggletrue{cbx:loccit}}{}% + \usebibmacro{cite:opcit}} + {\iffieldundef{shorthand} + {\usebibmacro{cite:short}} + {\usebibmacro{cite:shorthand}}}}% +} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifboolexpr{% + not test {\ifdefvoid{\cbx@t@lastcrossref}} + and + test {\iffieldequals{crossref}{\cbx@t@lastcrossref}} + }% + {\global\toggletrue{cbx:t:bookibid}} + {\global\togglefalse{cbx:t:bookibid}% + \savefield{crossref}{\cbx@t@lastcrossref}% + \global\xdef\cbx@t@bookref{\thefield{entrykey}:\the\value{instcount}}}% + \ifciteseen + {\global\togglefalse{cbx:t:bookibid}% + \global\undef\cbx@t@lastcrossref% + \global\undef\cbx@t@bookref% + \usebibmacro{cite:seen}} + {\usebibmacro{cite:full}% + \usebibmacro{cite:save}}} + +\newbibmacro*{cite:save}{% + \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}}% + +\newbibmacro{cite:clearfields}{% + \renewbibmacro*{series+number}{}% + \clearfield{addendum}% + \clearfield{pubstate}% + \clearfield{titleaddon}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\usebibmacro{cite:clearfields}}%\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \ifnameundef{labelname} + {\printfield{label}} + {\printnames{labelname}}% + \iffieldundef{labeltitle} + {} + {\setunit*{\addspace}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}}% + \ifboolexpr{ + ( test {\ifentrytype{book}} % do we use macro{volume+parts} ? + or test {\ifentrytype{collection}} + or test {\ifentrytype{proceedings}} + or test {\ifentrytype{reference}} + ) + and not + ( test {\iffieldundef{volume}} % does macro{volume+parts} prints anything ? + and test {\iffieldundef{part}} + and test {\iffieldundef{issue}} + and test {\iffieldundef{book}} + ) + } + {\newunit% + \printtext[bibhyperlink]{\usebibmacro{volume+parts}{\setunit*{\addcomma\space}}}}% + {}} + +\newbibmacro*{cite:opcit}{% + \ifnameundef{labelname} + {\printfield{label}} + {\printnames{labelname}}% + \newunit + \printtext[bibhyperlink]{% + \bibstring[\mkibid]{opcit}}} + +\newbibmacro*{cite:ibid}{% + \bibsentence\printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}} + +\newbibmacro*{cite:shorthand}{% + \printfield[bibhyperlink]{shorthand}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\newbibmacro*{footcite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifboolexpr{% + not test {\ifdefvoid{\cbx@f@lastcrossref}} % undef, \relax, or empty + and + test {\iffieldequals{crossref}{\cbx@f@lastcrossref}} + }% + {\global\toggletrue{cbx:f:bookibid}} + {\global\togglefalse{cbx:f:bookibid}% + \savefield{crossref}{\cbx@f@lastcrossref}% + \global\xdef\cbx@f@bookref{\thefield{entrykey}:\the\value{instcount}}}% + \ifciteseen + {\global\togglefalse{cbx:f:bookibid}% + \global\undef\cbx@f@lastcrossref% + \global\undef\cbx@f@bookref% + \usebibmacro{cite:seen}} + {\usebibmacro{cite:full}% + \usebibmacro{footcite:save}}} + +\newbibmacro*{footcite:save}{% + \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}% + \label{cbx@\the\value{instcount}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite\footcite] + {\gdef\cbx@savedkeys{}} + {\printnames{labelname}% + \xappto\cbx@savedkeys{\thefield{entrykey},}} + {\multinamedelim} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +\newrobustcmd{\cbx@textcite}[2]{% + \def\cbx@savedcites{#1}#2\cbx@savedcites} + +\DeclareMultiCiteCommand{\textcites}[\cbx@textcite\footcites]{\textcite}{\multicitedelim} + +\renewbibmacro*{cbx:bookibid:check}[2]{% + \ifboolexpr{% + test {\ifcitation} + and + test {\iftoggle{cbx:opt:inbookibid}} + and + ( ( test {\iffootnote} + and + test {\iftoggle{cbx:f:bookibid}} ) + or + ( not test {\iffootnote} + and + test {\iftoggle{cbx:t:bookibid}} ) + ) + } + {#1} + {#2}} + +\endinput |