summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-07-02 20:39:36 +0000
committerKarl Berry <karl@freefriends.org>2018-07-02 20:39:36 +0000
commit963531ca70238da0247961325e8275a3e837c26c (patch)
treefeac51426db880cd8af961527159803aabecfd3b /Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def
parent8e85398efb2a6eaedf5816009a5aa5ad628e8c19 (diff)
biblatex-caspervector (2jul18)
git-svn-id: svn://tug.org/texlive/trunk@48122 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def375
1 files changed, 375 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def b/Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def
new file mode 100644
index 00000000000..279b7e5281f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-caspervector/blx-caspervector-base.def
@@ -0,0 +1,375 @@
+% Casper Ti. Vector's biblatex style
+%
+% Copyright (c) 2012-2018 Casper Ti. Vector
+%
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License, either version 1.3 of this license or (at
+% your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX version
+% 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The current maintainer of this work is Casper Ti. Vector.
+%
+% This work consists of the following files:
+% caspervector.bbx
+% caspervector.cbx
+% caspervector-ay.bbx
+% caspervector-ay.cbx
+% blx-caspervector-base.def
+% blx-caspervector-gbk.def
+% blx-caspervector-utf8.def
+
+\ProvidesFile{blx-caspervector-base.def}%
+ [2018/06/29 v0.3.3 Casper Ti. Vector's biblatex library]
+
+\RequireBiber[3]
+\newtoggle{bbx:gbk}
+\newtoggle{bbx:ugly}
+\newtoggle{bbx:bfdate}\toggletrue{bbx:bfdate}
+\DeclareBibliographyOption{utf8}[true]{\togglefalse{bbx:gbk}}
+\DeclareBibliographyOption{gbk}[true]{\toggletrue{bbx:gbk}}
+\DeclareBibliographyOption{ugly}[true]{\settoggle{bbx:ugly}{#1}}
+\ExecuteBibliographyOptions{%
+ gbk, ugly = false, autopunct = false, alldates = iso,
+ minnames = 3, minitems = 3, maxcitenames = 2, mincitenames = 1%
+}
+\AtEndOfPackage{%
+ \iftoggle{bbx:gbk}{
+ \input{blx-caspervector-gbk.def}
+ \ExecuteBibliographyOptions{texencoding = GBK}
+ }{
+ \input{blx-caspervector-utf8.def}
+ \ExecuteBibliographyOptions{texencoding = UTF-8}
+ }%
+ \iftoggle{bbx:ugly}{
+ \newcommand*{\bbx@citecomma}{\addcomma\space}
+ \newcommand*{\bbx@citebcomma}{\addcomma\space}
+ \newcommand*{\bbx@citescolon}{\addsemicolon\space}
+ \newcommand*{\bbx@cepunct}[2]{#2}
+ \DefineBibliographyStrings{english}{
+ andmore = {\bbx@cietext{\bbx@cnetal}{et\addabbrvspace al\adddot}},
+ andothers = {\bbx@cietext{\bbx@cnetal}{et\addabbrvspace al\adddot}},
+ }
+ \DeclareFieldFormat*{booktitle}{#1}
+ \DeclareFieldFormat*{journaltitle}{#1}
+ \DeclareFieldFormat*{title}{#1}
+ \DeclareFieldFormat*{volume}{#1}
+ \newbibmacro*{typespace}{\setunit*{\addspace}}
+ }{
+ \newcommand*{\bbx@citecomma}{\bbx@cncomma}
+ \newcommand*{\bbx@citebcomma}{\bbx@cnbcomma}
+ \newcommand*{\bbx@citescolon}{\bbx@cncomma}
+ \newcommand*{\bbx@cepunct}[2]{\iffieldequalstr{userf}{zh}{#1}{#2}}
+ \DefineBibliographyStrings{english}{
+ andmore =
+ {\bbx@cietext{\bbx@cnetal}{\mkbibemph{et\addabbrvspace al\adddot}}},
+ andothers =
+ {\bbx@cietext{\bbx@cnetal}{\mkbibemph{et\addabbrvspace al\adddot}}},
+ }
+ \DeclareFieldFormat*{booktitle}{\mkbibemph{#1}}
+ \DeclareFieldFormat*{journaltitle}{\mkbibemph{#1}}
+ \DeclareFieldFormat*{title}{\mkbibemph{#1}}
+ \DeclareFieldFormat*{volume}{\mkbibemph{#1}}
+ \DeclareFieldFormat[inbook, inproceedings, incollection, article]%
+ {title}{\bbx@bibquote{\mkbibemph{#1}}}
+ \newbibmacro*{typespace}{\ifboolexpr{test {\bbx@cepunct} and (
+ test {\ifentrytype{inbook}} or test {\ifentrytype{inproceedings}} or
+ test {\ifentrytype{incollection}} or test {\ifentrytype{article}}
+ )}{}{\setunit*{\addspace}}}
+ }%
+ \ifboolexpr{not test {\iftoggle{bbx:bfdate}} or test {\iftoggle{bbx:ugly}}}%
+ {\DeclareFieldFormat*{date}{#1}}%
+ {\DeclareFieldFormat*{date}{%
+ \ifboolexpr{test {\iffieldundef{month}} and test {\iffieldundef{day}}}%
+ {\mkbibbold{#1}}{#1}%
+ }}%
+}
+
+\newcommand*{\bbx@cetext}[2]{\iffieldequalstr{userf}{zh}{#1}{#2}}
+\newcommand*{\bbx@cietext}[2]{\ifboolexpr{%
+ test {\ifcitation} or test {\iffieldequalstr{userf}{zh}}
+}{#1}{#2}}
+\newcommand*{\bbx@cecomma}{\bbx@cepunct{\bbx@cncomma}{\addcomma\addspace}}
+\newcommand*{\bbx@cecolon}{\bbx@cepunct{\bbx@cncolon}{\addcolon\addspace}}
+\newcommand*{\bbx@cescolon}{\bbx@cepunct{\bbx@cnscolon}{\addsemicolon\addspace}}
+\newcommand*{\bbx@ceperiod}{\bbx@cepunct{\bbx@cnperiod}{\addperiod\addspace}}
+\newcommand*{\bbx@bibquote}[1]%
+ {\bbx@cepunct{\bbx@cnldquot{#1}\bbx@cnrdquot}{\mkbibquote{#1}}}
+\renewcommand*{\finallistdelim}%
+ {\bbx@cetext{\bbx@cecomma}{\addspace\bibstring{and}\space}}
+\renewcommand*{\multilistdelim}{\bbx@cecomma}
+\renewcommand*{\finalnamedelim}{\ifcitation{\bbx@citebcomma}{\finallistdelim}}
+\renewcommand*{\multinamedelim}{\ifcitation{\bbx@citebcomma}{\multilistdelim}}
+\renewcommand*{\postnotedelim}{\bbx@citecomma}
+\renewcommand*{\finentrypunct}%
+ {\iffieldundef{addendum}{\bbx@cepunct{\bbx@cnperiod}{.}}{}}
+\DefineBibliographyExtras{english}{%
+ \renewcommand*{\finalandcomma}{}%
+}
+
+\DefineBibliographyStrings{english}%
+ {bibliography = {\bbx@cnbib}, references = {\bbx@cnbib}}
+\DeclareFieldFormat*{pages}{#1}
+\DeclareFieldFormat*{url}{\url{#1}}
+\DeclareFieldFormat*{urldate}{#1}
+\DeclareFieldFormat*{type}{\mkbibbrackets{#1}}
+\DeclareFieldFormat*{number}{\mkbibparens{#1}}
+\DeclareFieldFormat[patent]{number}{#1}
+\DeclareFieldFormat*{edition}{%
+ \bbx@cetext%
+ {\ifinteger{#1}{{\bbx@cnnr} {#1} {\bbx@cnedition}}{#1}}%
+ {\ifinteger{#1}{\mkbibordedition{#1}~\bibstring{edition}}{#1\isdot}}%
+}
+\newcommand*{\bbx@print}[1]{\iffieldundef{#1}{}{\printfield{#1}}}
+\newcommand*{\bbx@byspace}[1]%
+ {\ifnumgreater{\value{#1}}{\value{maxnames}}{}{\addspace}}
+\newbibmacro*{cein:}%
+ {\printtext{\bbx@cetext{\bbx@cnin}{In}\bbx@cecolon}\printtext{}}
+
+\newbibmacro*{ceedtrans}[1]{%
+ \ifboolexpr{test {\iftoggle{blx@use#1}} and not test {\ifnameundef{#1}}}{%
+ \printnames{#1}%
+ \bbx@cetext%
+ {\printtext{\bbx@byspace{#1}\@nameuse{bbx@cn#1}}}%
+ {\setunit{\printdelim{#1typedelim}}\usebibmacro{#1strg}}%
+ \clearname{#1}%
+ }{}%
+}
+\renewbibmacro*{editor}{\usebibmacro{ceedtrans}{editor}}
+\renewbibmacro*{translator}{\usebibmacro{ceedtrans}{translator}}
+\newbibmacro*{bookauthor/editor}{%
+ \ifnameundef{bookauthor}%
+ {\usebibmacro{ceedtrans}{editor}}{\printnames{bookauthor}}%
+}
+
+\newbibmacro*{cebyauthx}[1]{%
+ \ifboolexpr{
+ test {\ifnameundef{#1}} or
+ (test {\ifstrequal{#1}{author}} and test {\ifuseauthor})
+ }{}{%
+ \bbx@cetext{%
+ \printnames[by#1]{#1}%
+ \printtext{\bbx@byspace{#1}\@nameuse{bbx@cn#1}}%
+ }{%
+ \bibstring{by#1}\setunit{\addspace}%
+ \printnames[by#1]{#1}%
+ }%
+ }%
+}
+\renewbibmacro*{byauthor}{\usebibmacro{cebyauthx}{author}}
+\renewbibmacro*{byeditor}{\usebibmacro{cebyauthx}{editor}}
+\renewbibmacro*{bytranslator}{\usebibmacro{cebyauthx}{translator}}
+\newbibmacro*{byauthor+byeditor+bytranslator}{%
+ \usebibmacro{byauthor}\setunit*{\bbx@cescolon}%
+ \usebibmacro{byeditor}\setunit*{\bbx@cescolon}%
+ \usebibmacro{bytranslator}%
+}
+
+\providebibmacro*{bbx:ifnodate}[2]{#2}
+\newbibmacro*{journaltitle/title}{%
+ \iffieldundef{journaltitle}%
+ {\bbx@print{title}}{\printfield[title]{journaltitle}}%
+}
+\newbibmacro*{location+publisher+date+note+pages}{%
+ \printlist{location}\setunit*{\bbx@cecolon}\printlist{publisher}%
+ \ifboolexpr{test {\iflistundef{location}} and test {\iflistundef{publisher}}}%
+ {}{\setunit{\bbx@cecomma}}%
+ \usebibmacro{date}\setunit*{\bbx@cecomma}\printfield{note}%
+ \ifboolexpr{%
+ (test {\usebibmacro{bbx:ifnodate}} or test {\ifdateunknown}) and
+ test {\iffieldundef{note}}
+ }{}{\setunit{\bbx@cecolon}}%
+ \printfield{pages}%
+}
+\newbibmacro*{date+volume+number+note+pages}{%
+ \usebibmacro{date}%
+ \iffieldundef{volume}{}{\setunit*{\bbx@cecomma}\printfield{volume}}%
+ \bbx@print{number}\setunit*{\bbx@cecomma}\printfield{note}%
+ \ifboolexpr{%
+ (test {\usebibmacro{bbx:ifnodate}} or test {\ifdateunknown}) and
+ test {\iffieldundef{volume}} and test {\iffieldundef{number}} and
+ test {\iffieldundef{note}}
+ }{}{\setunit{\bbx@cecolon}}%
+ \printfield{pages}%
+}
+\newbibmacro*{eid+url+urldate}{%
+ \printfield{eid}\setunit*{\bbx@cecomma}%
+ \printfield{url}\setunit*{\bbx@cecomma}%
+ \iffieldundef{urlyear}{}{%
+ \printtext{\bbx@cetext{\bbx@cnretr}{retrieved on}\addspace}%
+ \printurldate%
+ }%
+}
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \usebibmacro{author/editor/translator}%
+ \printunit*{\bbx@ceperiod}\newblock
+ \bbx@print{title}\usebibmacro{typespace}%
+ \bbx@print{type}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byauthor+byeditor+bytranslator}%
+ \printunit{\bbx@ceperiod}\newblock
+ \printfield{edition}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{location+publisher+date+note+pages}%
+ \printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{eid+url+urldate}\printunit{\bbx@ceperiod}\newblock
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \usebibmacro{author/translator}\printunit*{\bbx@ceperiod}\newblock
+ \bbx@print{title}\usebibmacro{typespace}%
+ \bbx@print{type}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byauthor}\setunit*{\bbx@cescolon}%
+ \usebibmacro{bytranslator}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{cein:}\newblock
+ \usebibmacro{bookauthor/editor}\printunit*{\bbx@ceperiod}\newblock
+ \printfield{booktitle}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byeditor}\printunit{\bbx@ceperiod}\newblock
+ \printfield{edition}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{location+publisher+date+note+pages}%
+ \printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{eid+url+urldate}\printunit{\bbx@ceperiod}\newblock
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \usebibmacro{author/editor/translator}%
+ \printunit*{\bbx@ceperiod}\newblock
+ \usebibmacro{journaltitle/title}\usebibmacro{typespace}%
+ \bbx@print{type}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byauthor+byeditor+bytranslator}%
+ \printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{date+volume+number+note+pages}%
+ \printunit{\bbx@ceperiod}\newblock
+ \printlist{location}\setunit*{\bbx@cecolon}%
+ \printlist{publisher}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{eid+url+urldate}\printunit{\bbx@ceperiod}\newblock
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \usebibmacro{author/translator}\printunit*{\bbx@ceperiod}\newblock
+ \bbx@print{title}\usebibmacro{typespace}%
+ \bbx@print{type}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byauthor+byeditor+bytranslator}%
+ \printunit{\bbx@ceperiod}\newblock
+ \printfield{journaltitle}\setunit*{\bbx@cecomma}%
+ \usebibmacro{date+volume+number+note+pages}%
+ \printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{eid+url+urldate}\printunit{\bbx@ceperiod}\newblock
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \usebibmacro{author/editor/translator}%
+ \printunit*{\bbx@ceperiod}\newblock
+ \bbx@print{title}\usebibmacro{typespace}%
+ \bbx@print{type}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{byauthor+byeditor+bytranslator}%
+ \printunit{\bbx@ceperiod}\newblock
+ \printlist{location}\setunit*{\bbx@cecolon}%
+ \printfield{number}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{date}\setunit*{\bbx@cecomma}%
+ \printfield{note}\printunit{\bbx@ceperiod}\newblock
+ \usebibmacro{eid+url+urldate}\printunit{\bbx@ceperiod}\newblock
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{customf}{%
+ \usebibmacro{bibindex}\usebibmacro{begentry}%
+ \printfield{addendum}\usebibmacro{finentry}%
+}
+
+\DeclareBibliographyAlias{booklet}{book}
+\DeclareBibliographyAlias{collection}{book}
+\DeclareBibliographyAlias{manual}{book}
+\DeclareBibliographyAlias{misc}{book}
+\DeclareBibliographyAlias{online}{book}
+\DeclareBibliographyAlias{proceedings}{book}
+\DeclareBibliographyAlias{report}{book}
+\DeclareBibliographyAlias{thesis}{book}
+\DeclareBibliographyAlias{unpublished}{book}
+\DeclareBibliographyAlias{inbook}{incollection}
+\DeclareBibliographyAlias{inproceedings}{incollection}
+\DeclareBibliographyAlias{*}{book}
+
+\DeclareSortingTemplate{ecnyt}{
+ \sort{\field{presort}}
+ \sort[final]{\field{sortkey}}
+ \sort{
+ \field{userf}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+}
+
+\DeclareSortingTemplate{cenyt}{
+ \sort{\field{presort}}
+ \sort[final]{\field{sortkey}}
+ \sort[direction = descending]{
+ \field{userf}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{origyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+}
+
+\DeclareStyleSourcemap{
+ \maps{
+ \map{
+ \step[
+ fieldsource = language, match = \regexp{^chinese$},
+ fieldset = userf, fieldvalue = {zh}
+ ]
+ }
+ \map{
+ \step[fieldset = userf, fieldvalue = {en}]
+ }
+ }
+}
+
+% vim:ft=tex:ts=2:sw=2