Re: BibLaTeX: stile per pubblicazioni umanistiche

#40595
Up
0
Down
::


[Scusate, avevo dimenticato di chiudere una graffa in alcuni copia-incolla, ma mi rimane un problema, con un altro messaggio d’errore ora provo a cercarlo da solo, se non ci riesco, riposto]

Argh!
Non so cos’ho fatto e disgraziatamente non ho una copia di backup che non sia antica, in ogni caso non riesco più a compilare. Questo è il log:

`…
Package biblatex Info: Trying to load configuration file…
Package biblatex Info: … file 'biblatex.cfg' found.
(“C:\Programmi\LaTeX-related\MiKTeX 2.8\tex\latex\biblatex\biblatex.cfg”
File: biblatex.cfg
)))
Runaway definition?
#1#2#3#4#5#6#7#8->\ifnum \value {listcount}=1\relax \iffirstinits {\textsc \ETC
.
! File ended while scanning definition of \abx@nfd@*@sortname.

}
<*> TesiPhD.tex

I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.

! Emergency stop.
<*> TesiPhD.tex

*** (job aborted, no legal \end found)

`

Prima di capire che stavo sbagliando, devo aver pasticciato con i codici di Ivan, comunque copio la parte del mio preambolo che non funziona, c’è poconulla di mio e tutto copia incolla, inoltre non so quanto di questo codice sia utile o no:

`…
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage[natbib=true,style=verbose-trad2,sorting=nyt,hyperref=true, backref=true, backrefstyle=none, strict=false, backend=bibtex8, indexing=cite, isbn=false]{biblatex}

%per il titolo dei giornali:
\DeclareFieldFormat{journaltitle}{\mkbibquote{#1}}
% per i tioli in generale
\DeclareFieldFormat{title}{\mkbibemph{#1}}
\DeclareFieldFormat{shorttitle}{\mkbibemph{#1}}
% se non dovesse funzionare,
\DeclareFieldFormat[article]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[article]{shorttitle}{\mkbibemph{#1}}
\DeclareFieldFormat[incollection]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[incollection]{shorttitle}{\mkbibemph{#1}}
\DeclareFieldFormat[inproceedings]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[inproceedings]{shorttitle}{\mkbibemph{#1}}
\DeclareFieldFormat[misc]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[misc]{shorttitle}{\mkbibemph{#1}}
\DeclareFieldFormat[thesis]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[thesis]{shorttitle}{\mkbibemph{#1}}
\DeclareFieldFormat[unpublished]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[unpublished]{shorttitle}{\mkbibemph{#1}}

%per mettere il corsivo nelle latinitates
\renewcommand*{\mkibid}{\emph}

%per rimetterlo in CIT. e al posto di op. cit.:
\DefineBibliographyStrings{italian}{%
opcit = {cit\adddot}}

%Poi, per avere “cit.” in tonto e non preceduto da una virgola va ridefinita la macro “title”:
\renewbibmacro*{cite:title}{%
\printfield[citetitle]{\emph{labeltitle}}%
\setunit{\addspace}%
\printtext[bibhyperlink]{\bibstring{opcit}}}

%per maisucoletto negli autori
%\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
%\renewcommand*{\mkbibnamefirst}[1]{\textsc{#1}}

%Virgole al posto dei punti nella bibliografia; Trovato in forum italiano:
\renewcommand*{\newunitpunct}{\addcomma\space}

%per levare il punto dopo “in”:
\renewbibmacro*{in:}{%
\bibstring{in}\setunit{\space}}

%Per togliere “in” nelle voci @article:
\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{byeditor+others}%
\newunit\newblock
\printfield{version}%
\newunit\newblock
\usebibmacro{journal+issuetitle}%
\newunit\newblock
\printfield{note}%
\setunit{\bibpagespunct}%
\printfield{pages}
\newunit\newblock
\printfield{issn}%
\newunit\newblock
\printfield{doi}%
\newunit\newblock
\usebibmacro{eprint}
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\printfield{addendum}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}

%per fare in modo che solo gli autori siano in maiuscoletto, non i curatori:
\DeclareNameFormat{sortname}{%
\ifnum\value{listcount}=1\relax
\iffirstinits
{\textsc{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}}
{\textsc{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}}%
\ifblank{#3#5}
{}
{\usebibmacro{name:revsdelim}}%
\else
\iffirstinits
{\textsc{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}}
{\textsc{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
\fi
\usebibmacro{name:andothers}

%ulteriore codice, credo per fare i miuscoltti anche in linea
\DeclareNameFormat{labelname}{%
\scshape
\ifcase\value{uniquename}%
\usebibmacro{name:last}{#1}{#3}{#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}{#3}{#5}{#7}%
\fi
\usebibmacro{name:andothers}}
%
\DeclareNameFormat{sortname}{%
\scshape
\ifnum\value{listcount}=1\relax
\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
\ifblank{#3#5}
{}
{\usebibmacro{name:revsdelim}}%
\else
\iffirstinits
{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}%
\fi
\emph{\usebibmacro{name:andothers}}

%% DA IVAN: Non succede solo a te Serve un altro codice, in effetti. Riporto di seguito i tre codici necessari per ottenere in maiuscoletto il nome degli autori (o curatori) che compaiono solo all'inizio della voce bibligrafica. Per il codice (2) si fa riferimento allo stile verbose-trad1 (funziona anche per il verbose-trad2, verbose-ibid, verbose-inote).
% 1) Questo codice serve per le citazioni
\DeclareNameFormat{labelname}{%
\ifcase\value{uniquename}%
\textsc{\usebibmacro{name:last}{#1}{#3}{#5}{#7}}%
\or
\ifuseprefix
{\textsc{\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}}
{\textsc{\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}}%
\or
\textsc{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}%
\fi
\emph{\usebibmacro{name:andothers}}

% Serve anche una modifica al codice della macro cite:full:
\renewbibmacro*{cite:full}{%
\printtext[bibhypertarget]{%
\usedriver
{}%
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}

%3) Questo codice serve per la bibliografia:
\DeclareNameFormat{sortname}{%
\ifnum\value{listcount}=1\relax
\iffirstinits
{\textsc{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}}
{\textsc{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}}%
\ifblank{#3#5}
{}
{\usebibmacro{name:revsdelim}}%
\else
\iffirstinits
{\textsc{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}}
{\textsc{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
\fi
\emph{\usebibmacro{name:andothers}}

\bibliography{F:/DiLavoro/Tesi/TesiUTF}
…`

Ho provato a tagliare parti di questo codice, invertire alcune posizioni, ma ottengo sempre risultati negativi: prima di partire con l’impresa certosina di debug chiedo a Ivan o a qualcun altro di dare un’occhiata veloce, magari l’errore è più macroscopico, e mi risparmierebbe ore.
Grazie!
Piero

P.S. tra i pochi dettagli minori o minimi che mancano, ci sarebbe quello di levare il maiuscoletto da “e” in una lista di autori. Quando ho fatto il pasticciaccio stavo cercando di ottenere il corsivo in tutti gli shorttitle in citazione, dato che si ostinava a usarli solo per il type @book, mentre gli altri li metteva in virgolette caporale.

Go to top