Formattazione diversa con \cite e\fullcite

  • Creatore
    Topic
  • #99606
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Per comodità utilizzo \cite nelle indicazioni a fine di una serie di passi.
      Nel caso i passi dal medesimo testo siano almeno due di seguito,
      se uso \cite la seconda occorrenza ci dà «cit., …». Allora ho fatto ricorso
      a \fullcite, ma c’è un piccolo problema tipografico:
      `\begin{filecontents*}{\jobname.bib}
      @book{ campanella:2010,
      author = “Campanella, Tommaso”,
      title = “La città del sole”,
      editor = “A. Savinio”,
      publisher = “Adelphi”,
      location = “Milano”,
      year = “2010”,
      edition = “7”,
      }
      \end{filecontents*}

      \documentclass[a4paper]{article}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}
      \usepackage[type1]{ebgaramond}
      \usepackage{microtype}

      \usepackage[babel,italian=guillemets]{csquotes}
      \usepackage[style=philosophy-verbose,backend=biber,scauthors=true,%
      classical=true,firstinits=true,sorting=nyt]{biblatex}
      \DeclareFieldFormat[article,inbook,incollection]{title}{\mkbibemph{#1}} % in corsivo tutti i titoli
      \DeclareFieldFormat[article,inbook,incollection]{citetitle}{\mkbibemph{#1}} % in corsivo tutti i titoli
      \DeclareFieldFormat{journaltitle}{\mkbibquote{#1}} % riviste tra virgolette caporali

      \makeatletter
      \newbibmacro*{nodash:author}{%
      \ifboolexpr{%
      test \ifuseauthor
      and
      not test {\ifnameundef{author}}
      }%
      {\printnames{author}%
      \iffieldundef{nameaddon}{}%
      {\setunit{\addspace}%
      \printtext[brackets]{\printfield{nameaddon}}}%
      \setunit{\addcomma\space}%
      \usebibmacro{authorstrg}}%
      {\global\undef\bbx@lasthash}}

      \newbibmacro*{nodash:editor+others}{%
      \usebibmacro{nodash:bbx:editor}{editor+othersstrg}}%
      \newbibmacro*{nodash:bbx:editor}[1]{%
      \ifboolexpr{%
      test \ifuseeditor
      and
      not test {\ifnameundef{editor}}
      }%
      {\printnames{editor}%
      \setunit{\addspace}%
      \usebibmacro{#1}%
      \clearname{editor}}%
      {\global\undef\bbx@lasthash}}

      \newbibmacro*{nodash:author/editor+others/translator+others}{%
      \ifboolexpr{
      test \ifuseauthor
      and
      not test {\ifnameundef{author}}
      }
      {\usebibmacro{nodash:author}}
      {\ifboolexpr{
      test \ifuseeditor
      and
      not test {\ifnameundef{editor}}
      }
      {\usebibmacro{nodash:editor+others}}
      {\usebibmacro{nodash:translator+others}}}}

      \newbibmacro*{usedriver:book}{%
      \usebibmacro{bibindex}%
      \usebibmacro{begentry}%
      \usebibmacro{nodash:author/editor+others/translator+others}%
      \setunit{\labelnamepunct}\newblock
      \usebibmacro{maintitle+title}%
      \newunit
      \printlist{language}%
      \newunit\newblock
      \usebibmacro{byauthor}%
      \newunit\newblock
      \usebibmacro{byeditor+others}%
      \newunit\newblock
      \printfield{edition}%
      \newunit
      \printfield{volumes}%
      \newunit\newblock
      \usebibmacro{series+number}%
      \newunit\newblock
      \printfield{note}%
      \newunit\newblock
      \usebibmacro{publisher+location+date}%
      \newunit
      \iffieldundef{maintitle}
      {\printfield{volume}%
      \printfield{part}}
      {}%
      \newunit\newblock
      \usebibmacro{chapter+pages}%
      \newunit
      \printfield{pagetotal}%
      \newunit\newblock
      \iftoggle{bbx:isbn}
      {\printfield{isbn}}
      {}%
      \newunit\newblock
      \usebibmacro{doi+eprint+url}%
      \newunit\newblock
      \usebibmacro{addendum+pubstate}%
      \setunit{\addsemicolon\space}\newblock
      \iftoggle{bbx:related}
      {\usebibmacro{related:init}%
      \usebibmacro{related}}
      {}%
      \newunit\newblock
      \usebibmacro{pageref}%
      }
      \newbibmacro*{usedriver:collection}{%
      \usebibmacro{bibindex}%
      \usebibmacro{begentry}%
      \usebibmacro{nodash:editor+others}%
      \setunit{\labelnamepunct}\newblock
      \usebibmacro{maintitle+title}%
      \newunit
      \printlist{language}%
      \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
      \printfield{pagetotal}%
      \newunit\newblock
      \iftoggle{bbx:isbn}
      {\printfield{isbn}}
      {}%
      \newunit\newblock
      \usebibmacro{doi+eprint+url}%
      \newunit\newblock
      \usebibmacro{addendum+pubstate}%
      \setunit{\addsemicolon\space}\newblock
      \iftoggle{bbx:related}
      {\usebibmacro{related:init}%
      \usebibmacro{related}}
      {}%
      \newunit\newblock
      \usebibmacro{pageref}%
      }
      \makeatother

      %%% rende gli autori in tutto maiuscoletto nella bibliografia in philosophy-verbose
      \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:first-last}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:first-last}{#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}}}%
      {}}%

      %%% rende gli autori in tutto maiuscoletto nelle note in philosophy-verbose
      \AtEveryCite{%
      \DeclareNameFormat{labelname}{%
      \renewcommand{\mkbibnamefirst}{\textlcsc}%
      \renewcommand{\mkbibnamelast}{\textlcsc}%
      \renewcommand{\mkbibnameprefix}{\textlcsc}%
      \renewcommand{\mkbibnameaffix}{\textlcsc}%
      \ifcase\value{uniquename}%
      \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
      \or
      \ifuseprefix
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}%
      {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}%
      \or
      \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
      \fi
      \usebibmacro{name:andothers}}%
      }
      \DeclareNameFormat{scdefault}{%
      \renewcommand{\mkbibnamefirst}{\textlcsc}%
      \renewcommand{\mkbibnamelast}{\textlcsc}%
      \renewcommand{\mkbibnameprefix}{\textlcsc}%
      \renewcommand{\mkbibnameaffix}{\textlcsc}%
      \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}
      \section{Campanella, Le primalità ne \emph{La Città del Sole}}
      Li tre offiziali primi non bisogna che sappiano se non quell'arti che
      all'offizio loro partengono. Onde sanno l'arti communi a tutti, istoricamente
      imparandole, e poi le proprie, dove più si dà uno che un altro: così il Potestà
      saperà l'arte cavalieresca, fabricar ogni sorte d'armi, cose di guerra, machine,
      arte militare, ecc. Ma tutti questi offiziali han d'essere filosofi, e più, ed
      istorici, naturalisti ed umanisti.
      \smallskip

      {\raggedleft\small \cite[33-39]{campanella:2010}\par}

      \section{Campanella, La religione naturale de \emph{La Città del Sole}}
      \textsc{ospitalario} — Se questi, che seguon solo la legge della natura, sono
      tanto vicini al cristianesimo, che nulla cosa aggiunge alla legge naturale si
      non i sacramenti, io cavo argumento di questa relazione che la vera legge è la
      cristiana, e che, tolti gli abusi, sarà signora del mondo. E che però gli
      Spagnuoli trovaro il resto del mondo, benché il primo trovatore fu il Colombo
      vostro genovese, per unirlo tutto ad una legge; e questi filosofi saran
      testimoni della verità, eletti da Dio. E vedo che noi non sappiamo quel che
      facemo, ma siamo instromenti di Dio. Quelli vanno per avarizia di danari
      cercando nuovi paesi, ma Dio intende più alto fine. Il sole cerca strugger la
      terra, non far piante ed uomini; ma Dio si serve di loro in questo. Sia laudato.
      \smallskip

      {\raggedleft\small \fullcite[67-77]{campanella:2010}\par}

      \printbibliography
      \end{document}`
      Nella seconda occorrenza (cioè a fondo del secondo testo) il maiuscoletto
      per l’autore si perde per strada. Ho prvovato a sostituire \AtEveryCite
      con \AtEveryCitekey, ma senza risultato. C’è modo di risolvere?
      grazie
      m

    Visualizzazione 4 filoni di risposte
    • Autore
      Risposte
      • #99607
        Up
        0
        Down
        ::


        `\DeclareNameAlias{default}{scdefault}`

        Problema già incontrato, mi pare, in uno dei tuoi post precedenti.

        Ciao
        Ivan

      • #99608
        samiel
        Partecipante
          Up
          0
          Down
          ::


          Non si trattava dello stesso problema, ma del corsivo nelle citazioni.
          La tua soluzione funziona, solo che rende maiuscoletto tutti i nomi, autori e curatori,
          insomma sia il campo @author sia il campo @editor. Si può fare una cosa selettiva?
          Inoltre, per incominciare a far qualcosa da solo, in questo post
          http://www.guitex.org/home/it/forum/5-tex-e-latex/99186-ripetizione-autore-in-footcite
          avevo riportato qualche guida più o meno ampia su come modiiicare biblatex.
          Hai qualche indicazione ulteriore o più recente?

          grazie
          m

        • #99609
          Up
          0
          Down
          ::

          samiel” post=99280Non si trattava dello stesso problema, ma del corsivo nelle citazioni.
          La tua soluzione funziona, solo che rende maiuscoletto tutti i nomi, autori e curatori,
          insomma sia il campo @author sia il campo @editor. Si può fare una cosa selettiva?
          Inoltre, per incominciare a far qualcosa da solo, in questo post
          http://www.guitex.org/home/it/forum/5-tex-e-latex/99186-ripetizione-autore-in-footcite
          avevo riportato qualche guida più o meno ampia su come modiiicare biblatex.
          Hai qualche indicazione ulteriore o più recente?

          No, no ho indicazioni in merito. Tuttavia non capisco dove stia il problema.
          Quei codici dovrebbero rendere in maiuscoletto solo il primo nome (che sia dato nel campo author, editor o un translator non importa) che compare nella voce bibliografica. Non va bene?

          Ciao
          Ivan

        • #99610
          samiel
          Partecipante
            Up
            0
            Down
            ::


            Intendevo dire che nel caso di record come
            `@book{ campanella:2010,
            author = “Campanella, Tommaso”,
            title = “La città del sole”,
            editor = “Savinio, Alberto”,
            publisher = “Adelphi”,
            location = “Milano”,
            year = “2010”,
            edition = “7”,
            }`
            risultano in maiuscoletto sia l’autore sia il curatore (cosa, quest’ultima,
            che volevo evitare) e che si può fare con un’altra iniezione di codice:

            `\usepackage{xpatch}

            \newcommand{\makescshape}{%
            \renewcommand{\mkbibnamefirst}{\textlcsc}%
            \renewcommand{\mkbibnamelast}{\textlcsc}%
            \renewcommand{\mkbibnameprefix}{\textlcsc}%
            \renewcommand{\mkbibnameaffix}{\textlcsc}%
            }
            \newcommand{\makenatshape}{%
            \renewcommand{\mkbibnamefirst}{}%
            \renewcommand{\mkbibnamelast}{}%
            \renewcommand{\mkbibnameprefix}{}%
            \renewcommand{\mkbibnameaffix}{}%
            }

            \xpretobibmacro{author}{\makescshape}{}{}
            \xapptobibmacro{author}{\makenatshape}{}{}

            \xpretobibmacro{editor+others}{\makescshape}{}{}
            \xapptobibmacro{editor+others}{\makenatshape}{}{}

            \xpretobibmacro{translator+others}{\makescshape}{}{}
            \xapptobibmacro{translator+others}{\makenatshape}{}{}`

            Per l’altro discorso, in pratica è necessario districarsi fra i codici
            in assenza di una guida aggiornata…. giusto?

            m

          • #99611
            Up
            0
            Down
            ::


            Prova un po’ questo
            `\DeclareCiteCommand{\fullcite}
            {\usebibmacro{prenote}}
            {\usedriver
            {\DeclareNameAlias{sortname}{scdefault}}
            {\thefield{entrytype}}}
            {\multicitedelim}
            {\usebibmacro{postnote}}`

            Per il resto, confermo. Non rimane che leggere direttamente il codice.

            Ciao
            Ivan

        Visualizzazione 4 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top