4

In a bibliography, I'd like to have all authors' names in scshape - I mean even the initials. PLease, consider this code:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{textcase}
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage[style=philosophy-verbose,backend=biber,classical=true,%
firstinits=true,volnumformat=strings,volumeformat=romansc,sorting=nyt,%
indexing]{biblatex}
\DeclareFieldFormat[article,book,inbook,incollection]{author}%
{\textsc\MakeTextLowercase{#1}}
    \nocite{*}

\begin{filecontents*}{\jobname.bib}
@book{ bertelli:2012,
       author    = "Lucio Bertelli",
       title     = "Tra storia e utopia",
       publisher = "Edizioni dell'Orso",
       location  = "Alessandria",
       year      = "2012",
     }
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
\printbibliography
\end{document}

Well, the string

    \DeclareFieldFormat[article,book,inbook,incollection]{author}%
    {\textsc\MakeTextLowercase{#1}}

does produce no result. So, what have I to do? Thanx!

10
  • \textsc\MakeTextLowercase{#1} is nonsense, as it would take \MakeTextLowercase as the argument to \textsc.
    – egreg
    Commented Dec 1, 2014 at 23:23
  • I used the code from Classicthesis; in any case you're right. But, even if I use \mkbibemph (to try another format), I've no results
    – user41063
    Commented Dec 1, 2014 at 23:26
  • Doesn't the option scauthors do what you want?
    – egreg
    Commented Dec 1, 2014 at 23:30
  • No, I wrote above «all authors' names in scshape - I mean even the initials»
    – user41063
    Commented Dec 1, 2014 at 23:32
  • The initials should be uppercase!
    – Bernard
    Commented Dec 1, 2014 at 23:33

1 Answer 1

5

Simply add the option scauthors to have authors names in small caps both in bibliography and citations. You also can choose scauthorsbib or scauthorscite. Cf; §8, p.6 of the documentation of biblatex-philosophy.

enter image description here

If you absolutely want to use small caps for the whole names, you have to redefine what happens when you set the scauthors option and replace \texsc with the \textlcsc command, borrowed from a post from @Gonzalo Medina:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{ebgaramond} 
\usepackage{textcase}
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage[style=philosophy-verbose,backend=biber,classical=true,scauthors = true, %
firstinits=true,volnumformat=strings,volumeformat=romansc,sorting=nyt,%
indexing]{biblatex}
    \nocite{*}

\begin{filecontents*}{\jobname.bib}
@book{ bertelli:2012,
       author = {Lucio Bertelli},
       title = {Tra storia e utopia},
       publisher = {Edizioni dell'Orso},
       location = {Alessandria},
       year = {2012},
     }
\end{filecontents*}

\newcommand\textlcsc[1]{\textsc{\MakeLowercase{#1}}}
\AtBeginBibliography{%
\iftoggle{bbx:scauthors}{%
\DeclareNameFormat{sortname}{%
\renewcommand{\mkbibnamefirst}{\textlcsc}%
\renewcommand{\mkbibnamelast}{\textlcsc}%
\renewcommand{\mkbibnameprefix}{\textlcsc}%
\renewcommand{\mkbibnameaffix}{\textlcsc}%
  \ifnumequal{\value{listcount}}{1}
    {\iffirstinits
       {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
       {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
     \ifblank{#3#5}
       {}
       {\usebibmacro{name:revsdelim}}}
    {\iffirstinits
       {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
       {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
  \usebibmacro{name:andothers}}}%
  {}}%

\addbibresource{\jobname.bib}

\begin{document}

\printbibliography

\end{document}

enter image description here

1
  • oh thanx! a not so easy solution, but works fine
    – user41063
    Commented Dec 2, 2014 at 0:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .