% $Id: philosophy-standard.bbx,v 0.8b 2012/05/06 Valbusa$ % Copyright 2009-2012 Ivan Valbusa. This package is author-maintained. % Permission is granted to copy, distribute and/or modify this software under the % terms of the LaTeX Project Public License, version 1.3c % http://www.ctan.org/tex-archive/macros/latex/base/lppl.txt. \ProvidesFile{philosophy-standard.bbx}[$Id: philosophy-standard.bbx,v 0.8b 2012/05/06 valbsua beta $] \RequireBibliographyStyle{standard} \DeclareLanguageMapping{italian}{italian-philosophy} \DeclareLanguageMapping{english}{english-philosophy} % boolean options \newtoggle{bbx:annotation} \newtoggle{bbx:library} \newtoggle{bbx:scauthors} \newtoggle{bbx:scauthorsbib} \newtoggle{bbx:origparens} \newtoggle{bbx:origbrackets} \newtoggle{bbx:inbeforejournal} \newtoggle{bbx:romanvol} \newtoggle{bbx:classical} \DeclareBibliographyOption{annotation}[true]{% \settoggle{bbx:annotation}{#1}} \DeclareBibliographyOption{library}[true]{% \settoggle{bbx:library}{#1}} \DeclareBibliographyOption{scauthors}[true]{% \settoggle{bbx:scauthors}{#1}} \DeclareBibliographyOption{scauthorsbib}[true]{% \settoggle{bbx:scauthorsbib}{#1}} \DeclareBibliographyOption{origparens}[true]{% \settoggle{bbx:origparens}{#1}} \DeclareBibliographyOption{origbrackets}[true]{% \settoggle{bbx:origbrackets}{#1}} \DeclareBibliographyOption{inbeforejournal}[true]{% \settoggle{bbx:inbeforejournal}{#1}} \DeclareBibliographyOption{classical}[true]{% \settoggle{bbx:classical}{#1}} % multi value options \newcommand{\bbx@publocformat}{} \newcommand{\bbx@volnumformat}{} \newcommand{\bbx@origfieldsformat}{} \newcommand{\bbx@origfields}{} \newcommand{\bbx@editionformat}{} \newcommand{\bbx@volumeformat}{} \DeclareBibliographyOption{publocformat}[publocyear]{% \renewcommand{\bbx@publocformat}{#1}} \DeclareBibliographyOption{volnumformat}[plain]{% \renewcommand{\bbx@volnumformat}{#1}} \DeclareBibliographyOption{origfieldsformat}[semicolon]{% \renewcommand{\bbx@origfieldsformat}{#1}} \DeclareBibliographyOption{origfields}[true]{% \renewcommand{\bbx@origfields}{#1}} \DeclareBibliographyOption{editionformat}[arabic]{% \renewcommand{\bbx@editionformat}{#1}} \DeclareBibliographyOption{volumeformat}[arabic]{% \renewcommand{\bbx@volumeformat}{#1}} \DeclareEntryOption{origed}[true]{% \renewcommand{\bbx@origfields}{origed}} % Execute options \ExecuteBibliographyOptions{% publocformat = publocyear, annotation = false, library = true, scauthors = false, scauthorsbib = false, origfieldsformat= semicolon, inbeforejournal = false, volnumformat = plain, editionformat = arabic, volumeformat = arabic, maxcitenames = 2, mincitenames = 1, maxbibnames = 999, minbibnames = 999, classical = false, } % AT BEGIN SHORTHANDS %**************************************** \AtBeginShorthands{\togglefalse{bbx:annotation}} % AT BEGIN BILIOGRAPHY %**************************************** \AtBeginBibliography{% % SMALL CAPS AUTHORS NAME \iftoggle{bbx:scauthorsbib}{% \DeclareNameFormat{sortname}{% \ifnumequal{\value{listcount}}{1} {\iffirstinits {\usebibmacro{name:last-first}{\textsc{#1}}{\textsc{#4}}{\textsc{#5}}{\textsc{#7}}}%MOD {\ifblank{#3}{\usebibmacro{name:last-first}{\textsc{#1}\nopunct}{\textsc{#3}}{\textsc{#5}}{\textsc{#7}}}{\usebibmacro{name:last-first}{\textsc{#1}}{\textsc{#3}}{\textsc{#5}}{\textsc{#7}}}}% \ifblank{#3#5} {} {\usebibmacro{name:revsdelim}}} {\iffirstinits {\usebibmacro{name:first-last}{\textsc{#1}}{\textsc{#4}}{\textsc{#5}}{\textsc{#7}}} {\usebibmacro{name:first-last}{\textsc{#1}}{\textsc{#3}}{\textsc{#5}}{\textsc{#7}}}}% \usebibmacro{name:andothers}} }{}% } % AT BEGIN DOCUMENT %**************************************** \AtBeginDocument{% \iftoggle{bbx:origbrackets}{\toggletrue{bbx:origparens} \renewcommand{\origleftparen}{\bibleftbracket} \renewcommand{\origrightparen}{\bibrightbracket}}% {}% \iftoggle{bbx:scauthors} {\toggletrue{bbx:scauthorsbib}\toggletrue{cbx:scauthorscite}}% {}% } % FIELDS FORMAT %***************************************** % new commands %--------------------------------------------- \newcommand*{\pureopenparen}{\blx@postpunct(} \newcommand*{\purecloseparen}{\blx@postpunct)\midsentence} \newrobustcmd{\mkpureparens}[1]{% \begingroup \blx@blxinit \blx@setsfcodes \pureopenparen#1\purecloseparen \endgroup} % Definisco ora alcuni comandi che servono per il formato dei campi. \newcommand{\annotationfont}{\footnotesize} \newcommand{\libraryfont}{} % Nuovi comandi per avere la traduzione tra parentesi \newcommand{\origleftparen}{\pureopenparen} \newcommand{\origrightparen}{\purecloseparen} \newcommand{\origleftbracket}{\bibleftbracket} \newcommand{\origrightbracket}{\bibrightbracket} \newcommand{\backrefleftparen}{\pureopenparen} \newcommand{\backrefrightparen}{\purecloseparen} \newcommand{\backrefparens}[1]{\backrefleftparen#1\backrefrightparen} \renewcommand*{\newunitpunct}{\addcomma\space} \renewcommand*{\subtitlepunct}{\addperiod\space} \renewcommand*{\intitlepunct}{\nopunct\addspace} \newcommand*{\volnumpunct}{\addcomma\space} \newcommand*{\volumfont}{% \ifdefstring{\bbx@volumeformat}{romanupp} {\uppercase}% {\ifdefstring{\bbx@volumeformat}{romansc} {\scshape}% {}}% roman lowercase } \newcommand*{\editionfont}{% \ifdefstring{\bbx@editionformat}{romanupp} {\uppercase}% {\ifdefstring{\bbx@editionformat}{romansc} {\scshape}% {}}% roman lowercase }% % font for volume \newrobustcmd*{\volfnt}[1]{% \begingroup \expandafter\volumfont \expandafter{\romannumeral#1}% \endgroup} % font for edition number \newrobustcmd*{\edfnt}[1]{% \begingroup \expandafter\editionfont \expandafter{\romannumeral#1}% \endgroup} % fields format %---------------------------------------------- % TITLE \DeclareFieldFormat[bookinbook]{title}{\mkbibemph{#1}} \DeclareFieldFormat[thesis]{title}{\mkbibemph{#1}} \DeclareFieldFormat[review]{title}{\bibstring{reviewof}\addspace{#1}} \DeclareFieldFormat[review]{volume}{% \ifdefstring{\bbx@volnumformat}{strings}{% \bibstring{volume}\addnbspace\ifdefstring{\bbx@volumeformat}{arabic}{#1}{\volfnt{#1}}}{\ifdefstring{\bbx@volumeformat}{arabic}{#1}{\volfnt{#1}}}} \DeclareFieldFormat[inreference]{title}{\mkbibquote{#1}} % CITETITLE \DeclareFieldFormat[bookinbook]{citetitle}{\mkbibemph{#1}} \DeclareFieldFormat[thesis]{citetitle}{\mkbibemph{#1}} % ORIGTITLE \DeclareFieldFormat{origtitle}{\mkbibemph{#1}} \DeclareFieldFormat[article]{origtitle}{\mkbibquote{#1}} % USERA \DeclareFieldFormat{usera}{\mkbibemph{#1}} %\DeclareFieldFormat[article]{usera}{\mkbibquote{#1}} \DeclareFieldFormat[bookinbook]{usera}{\mkbibemph{#1}} \DeclareFieldFormat[inbook]{usera}{\mkbibemph{#1}} \DeclareFieldFormat[incollection]{usera}{\mkbibquote{#1}} % USERC \DeclareFieldFormat{userc}{\mkpageprefix[bookpagination]{#1}} % URL \DeclareFieldFormat{url}{\url{#1}} % EDITION \DeclareFieldFormat{edition}{% \ifinteger{#1} {\ifdefstring{\bbx@editionformat}{arabic} {\mkbibordedition{#1}~\bibstring{edition}} {\edfnt{#1}~\bibstring{edition}}}% {#1\isdot}} % ANNOTATION LIBRARY \DeclareFieldFormat{annotation}{\annotationfont #1} \DeclareFieldFormat{library}{\libraryfont #1} % PARENS \DeclareFieldFormat{backrefparens}{\mkpureparens{#1}} \DeclareFieldFormat{pureparens}{\mkpureparens{#1}} % NUMBER \DeclareFieldFormat{number}{% \ifdefstring{\bbx@volnumformat}{strings}{% \bibstring{number}\adddotspace #1}{#1}}% number in a series \DeclareFieldFormat[article]{number}{% \ifdefstring{\bbx@volnumformat}{strings}{% \bibstring{number}\adddotspace #1}{#1}}% number in a series % VOLUME \DeclareFieldFormat{volume}{\bibstring{volume}~\ifdefstring{\bbx@volumeformat}{arabic}{#1}{\volfnt{#1}}}% volume of a book \DeclareFieldFormat[article]{volume}{% \ifdefstring{\bbx@volnumformat}{strings}{% \bibstring{volume}\addnbspace\ifdefstring{\bbx@volumeformat}{arabic}{#1}{\volfnt{#1}}}{\ifdefstring{\bbx@volumeformat}{arabic}{#1}{\volfnt{#1}}}} % SERIES \DeclareFieldFormat{series}{% \ifinteger{#1} {\mkbibordseries{#1}~\bibstring{jourser}} {\ifbibstring{#1}{\bibstring{#1}}{#1}}} % NEW MACROS %*********************************************** \renewbibmacro*{citeindex}{% \ifciteindex{\indexnames{labelname}}{}} \renewbibmacro*{bibindex}{% \ifbibindex{\indexnames{author}% \indexnames{editor}% \indexnames{editora}% \indexnames{editorb}% \indexnames{editorc}}% {}}% \renewbibmacro*{pageref}{% \iflistundef{pageref} {} {\setunit{\addperiod\space}% \printtext[backrefparens]{% \ifnumgreater{\value{pageref}}{1} {\bibstring{backrefpages}\ppspace} {\bibstring{backrefpage}\ppspace}% \printlist[pageref][-\value{listtotal}]{pageref}\adddot}\nopunct}} \renewbibmacro*{publisher+location+date}{% \ifdefstring{\bbx@publocformat}{loccolonpub} {\usebibmacro{loccolonpub}}{\ifdefstring{\bbx@publocformat}{locpubyear} {\usebibmacro{locpubyear}} {\usebibmacro{publocyear}}}} \renewbibmacro*{institution+location+date}{% \ifdefstring{\bbx@publocformat}{loccolonpub} {\usebibmacro{inloccolonpub}}{\ifdefstring{\bbx@publocformat}{locpubyear} {\usebibmacro{inlocpubyear}} {\usebibmacro{inpublocyear}}}} \renewbibmacro*{organization+location+date}{% \ifdefstring{\bbx@publocformat}{loccolonpub} {\usebibmacro{orgloccolonpub}}{\ifdefstring{\bbx@publocformat}{locpubyear} {\usebibmacro{orglocpubyear}} {\usebibmacro{orgpublocyear}}}} \renewbibmacro*{annotation}{% \iftoggle{bbx:library}{% \setunit{\addperiod\space}% \iffieldundef{library}% {\printfield[library]{\bibannotationprefix\thefield{entrykey}.tex}} {\printfield{library}}}% {}}% \renewbibmacro*{finentry}{% \iftoggle{bbx:annotation}% {\iffieldundef{annotation}% {\finentry}% {\setunit{\addperiod\par\nobreak\vspace*{.5ex}}% \printtext[annotation]{\printfield{annotation}\finentry\par}}}% {\finentry}} % ORIGFIELDS % origpublisher+origlocation+origdate \newbibmacro*{origpublisher+origlocation+origdate}{% \ifdefstring{\bbx@publocformat}{loccolonpub} {\usebibmacro{origloccolonpub}\setunit{\bibpagespunct}% \printfield{userc}}{\ifdefstring{\bbx@publocformat}{locpubyear} {\usebibmacro{origlocpubyear}\setunit{\bibpagespunct}% \printfield{userc}} {\usebibmacro{origpublocyear}\setunit{\bibpagespunct}% \printfield{userc}}}} \newbibmacro*{origpublocyear}{%% ``Publisher, Location Year'' \iflistundef{origpublisher}% {\printlist{origlocation}% \setunit*{\addspace}% \printorigdate}% {\printlist{origpublisher}% \setunit*{\addcomma\space}% \printlist{origlocation}% \setunit*{\addspace}% \printorigdate}% \newunit} \newbibmacro*{origloccolonpub}{%% ``Location: Publisher, Year'' \iflistundef{origlocation}{}% {\printlist{origlocation}}% \iflistundef{origpublisher}% {\setunit*{\addspace}% \printorigdate}% {\setunit*{\addcolon\space}% \printlist{origpublisher}% \setunit*{\addcomma\space}% \printorigdate}% \newunit} \newbibmacro*{origlocpubyear}{%% ``Location, Publisher, Year'' \iflistundef{origlocation}{}% {\printlist{origlocation}}% \iflistundef{origpublisher}% {\setunit*{\addspace}% \printorigdate}% {\setunit*{\addcomma\space}% \printlist{origpublisher}% \setunit*{\addcomma\space}% \printorigdate}% \newunit} % reprinttitle \newbibmacro*{reprinttitle}{% \iffieldundef{reprinttitle}{}{% \iffieldsequal{reprinttitle}{title}{}{% \printfield[title]{reprinttitle}% \setunit{\addcomma\space}}}% \iffieldundef{userb}{}{% \printfield{userb}}}% % transorigstring \newbibmacro*{transorigstring}{% \iffieldundef{reprinttitle}% {\printtext{\ifdefstring{\bbx@origfields}{origed} {\bibstring{origed}}% {\bibstring{transtolang}}}\nopunct}% {\printtext{\bibstring{reprint}}}\nopunct} %nopunct %serve se si ha solo ``origlocation + origdate'' % origtitle:book \newbibmacro*{origtitle:book}{% \iffieldundef{origtitle}{}{ \printfield[origtitle]{origtitle}% \setunit{\addcomma\space}} \iffieldundef{userb}{}{% \printfield{userb}}}% % origtitledata:book \newbibmacro*{origtitledata:book}{% \usebibmacro{transorigstring}% \iffieldundef{reprinttitle}% {\usebibmacro{origtitle:book}}% {\usebibmacro{reprinttitle}}% \newunit\newblock \usebibmacro{origpublisher+origlocation+origdate}} % origdata:book \newbibmacro*{origdata:book}{% \iffieldundef{origyear}% {}% {\ifdefstring{\bbx@origfieldsformat}{parens} {\printtext[pureparens]{\usebibmacro{origtitledata:book}}} {\ifdefstring{\bbx@origfieldsformat}{brackets} {\printtext[brackets]{\usebibmacro{origtitledata:book}}} {\setunit{\addsemicolon\space}% \printtext{\usebibmacro{origtitledata:book}}}}}} % origtitle:article-inbook-incoll \newbibmacro*{origtitle:article-inbook-incoll}{% \iffieldundef{origtitle}{}{% \printfield[origtitle]{origtitle}% \setunit{\addcomma\space}} \iffieldundef{usera}{}{% \usebibmacro{in:}% \printfield{usera}% \setunit{\addcomma\space}}% \iffieldundef{userb}{}{% \printfield{userb}% \newunit}} % origtitledata:article-inbook-incoll \newbibmacro*{origtitledata:article-inbook-incoll}{% \usebibmacro{transorigstring}% \setunit{\addspace}% \usebibmacro{origtitle:article-inbook-incoll}% \usebibmacro{origpublisher+origlocation+origdate}} % origdata:article-inbook \newbibmacro*{origdata:article-inbook}{% \iflistundef{origlocation}{}{% \ifdefstring{\bbx@origfieldsformat}{parens} {\printtext[pureparens]{\usebibmacro{origtitledata:article-inbook-incoll}}} {\ifdefstring{\bbx@origfieldsformat}{brackets} {\printtext[brackets]{\usebibmacro{origtitledata:article-inbook-incoll}}} {\setunit{\addsemicolon\space}% \printtext{\usebibmacro{origtitledata:article-inbook-incoll}}}}}} % addendum+pubstate \renewbibmacro*{addendum+pubstate}{% \printfield{addendum}% \newunit\newblock \printfield{pubstate}% \ifdefstring{\bbx@origfields}{none}{}{% \newunit\newblock \usebibmacro{origdata:book}} \newunit\newblock \usebibmacro{annotation}} \newbibmacro*{addendum+pubstate:article-book-incoll}{% \printfield{addendum}% \newunit\newblock \printfield{pubstate}% \ifdefstring{\bbx@origfields}{none}{}{% \newunit\newblock \usebibmacro{origdata:article-inbook}}% \newunit\newblock \usebibmacro{annotation}} \renewbibmacro*{series+number}{% \printfield{series}% \setunit*{\addcomma\space}% \printfield{number}% \newunit} % volnum option \newbibmacro*{volnumdefault}{% \printfield{volume}% \setunit*{\volnumpunct}% \printfield{number}} \newbibmacro*{volnumparens}{% \nopunct% \printtext[pureparens]{% \printfield{volume}% \setunit*{\volnumpunct}% \printfield{number}}\addcomma\space} \newbibmacro*{volnumstrings}{% \iffieldundef{volume}{}{% \printfield{volume}% \setunit*{\volnumpunct}}% \iffieldundef{number}{}{% \printfield{number}}} \renewbibmacro*{journal}{% \iffieldundef{journaltitle} {} {\printtext[journaltitle]{% \printfield[titlecase]{journaltitle}% \midsentence%MOD############ \setunit{\subtitlepunct}% \printfield[titlecase]{journalsubtitle}}}} \renewbibmacro*{periodical}{% \iffieldundef{title} {} {\printtext[title]{% \printfield[titlecase]{title}% \midsentence%MOD############# \setunit{\subtitlepunct}% \printfield[titlecase]{subtitle}}}} \renewbibmacro*{journal+issuetitle}{% \usebibmacro{journal}% \setunit*{\addspace}% \iffieldundef{series} {} {\newunit \printfield{series}% \setunit{\addspace}\midsentence}% \newunit% \ifdefstring{\bbx@volnumformat}{strings} {\usebibmacro{volnumstrings}}% {\ifdefstring{\bbx@volnumformat}{parens} {\usebibmacro{volnumparens}}% {\usebibmacro{volnumdefault}}}% \setunit{\addcomma\space}% \printfield{eid}% \setunit{\addspace}% \usebibmacro{issue+date}% \setunit{\addcolon\space}% \usebibmacro{issue}% \newunit} \renewbibmacro*{title+issuetitle}{% \usebibmacro{periodical}% \setunit*{\addspace}% \iffieldundef{series} {} {\newunit \printfield{series}% \setunit{\addspace}\midsentence}% \newunit \ifdefstring{\bbx@volnumformat}{strings}% {\usebibmacro{volnumstrings}}% {\ifdefstring{\bbx@volnumformat}{parens}% {\usebibmacro{volnumparens}}% {\usebibmacro{volnumdefault}}}% \setunit{\addcomma\space}% \printfield{eid}% \setunit{\addspace}% \usebibmacro{issue+date}% \setunit{\addcolon\space}% \usebibmacro{issue}% \newunit} \renewbibmacro*{event+venue+date}{%v0.8 \printfield{eventtitle}% \ifboolexpr{ test {\iffieldundef{venue}} and test {\iffieldundef{eventyear}} } {} {\setunit*{\addspace}% \printtext{%\printtext[parens]{%IVAN \printfield{venue}% \setunit*{\addcomma\space}% \printeventdate}}% \newunit} %----------------------------------------------------------------- % % DRIVERS % %----------------------------------------------------------------- \DeclareBibliographyDriver{article}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{bytranslator+others}% \newunit\newblock \printfield{version}% \newunit\newblock \iftoggle{bbx:inbeforejournal}{\usebibmacro{in:}}{}% \usebibmacro{journal+issuetitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \usebibmacro{note+pages}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{issn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate:article-book-incoll}% \newunit\newblock \usebibmacro{pageref}% \usebibmacro{finentry}} %v0.8b nuova versione \newbibmacro*{incollection:full}{% \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isbn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate:article-book-incoll}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \usebibmacro{finentry}} % v0.8b NUOVA VERSIONE \newbibmacro*{inbook:full}{% \usebibmacro{bybookauthor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isbn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate:article-book-incoll}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \usebibmacro{finentry}} \endinput