2

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!

  • \textsc\MakeTextLowercase{#1} is nonsense, as it would take \MakeTextLowercase as the argument to \textsc. – egreg Dec 1 '14 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 Dec 1 '14 at 23:26
  • Doesn't the option scauthors do what you want? – egreg Dec 1 '14 at 23:30
  • No, I wrote above «all authors' names in scshape - I mean even the initials» – user41063 Dec 1 '14 at 23:32
  • The initials should be uppercase! – Bernard Dec 1 '14 at 23:33
3

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

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.