Re: Riferimenti bibliografici nelle note a piè pagina

#4617
ev
Partecipante
    Up
    0
    Down
    ::


    Secondo tentativo: quanto segue funziona sicuramente con le opzioni che hai indicato nel tuo messaggio precedente (se funziona anche con altre combinazioni “arcane”, tanto meglio, ma a memoria dei futuri, ipotetici utilizzatori ricordo che non assicuro nulla, come indicato nella licenza d’uso).
    `%%
    %% *** This is jura-extra v0.2 (2005/01/28) ***
    %%
    %% LaTeX package for altering citation styles provide by jurabib package to
    %% satisfy unreasonable requests (a horrible hack :-))
    %%
    %% Copyright (C) 2005 Emanuele Vicentini
    %%
    %% Based on Jurabib (Copyright (C) 1999-2004 Jens Berger
    %% (http://www.jurabib.org))
    %%
    %% This program is free software; you can redistribute it and/or
    %% modify it under the terms of the GNU General Public License
    %% as published by the Free Software Foundation; either version 2
    %% of the License, or (at your option) any later version.
    %%
    %% This program is distributed in the hope that it will be useful,
    %% but WITHOUT ANY WARRANTY; without even the implied warranty of
    %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    %% GNU General Public License for more details.
    %%
    %% You should have received a copy of the GNU General Public License
    %% along with this program; if not, write to the Free Software
    %% Foundation, Inc., 59 Temple Place – Suite 330, Boston, MA 02111-1307, USA.
    %%
    \NeedsTeXFormat{LaTeX2e}[1995/12/01]
    \ProvidesPackage{jura-extra}[2005/01/28 v0.2 jura-extra]
    \RequirePackage{jurabib}

    \def\@citex[#1][#2]#3{%
    \stepcounter{jb@cites@in@footnote}%
    \ifjb@ssed@mult@works\jb@check@edn{#3}\fi
    \ifthenelse{\boolean{jb@foot}\or\(\boolean{jb@super}\and\not\boolean{jb@fn}%
    \and\not\boolean{jbweareinbib}\and\not\boolean{jbweareinendnotes}\)}{%
    \renewcommand*{\@cite}[2]{\unskip\footnote{##1##2\ifthenelse{\boolean{jb@footnote@period}}{\unskip.}{}}}%
    }{%
    \renewcommand*{\@cite}[2]{%
    \ifjb@fn\else\ifjbweareinbib\else\ifjbcross\else\jb@open\fi\fi\fi
    ##1##2%
    \ifjb@fn\else\ifjbweareinbib\else\ifjbcross\else\jb@close\fi\fi\fi
    }%
    }%
    \ifx\relax#1\relax
    \ifx\relax#2\relax
    \ifjb@debug
    \typeout{#3: @citex arg1 and @citex arg2 are empty,}%
    \typeout{#3: I assume \string\cite{key}}%
    \fi
    \def\jb@@newannotatorcite{}%
    \def\jb@@newpagecite{\jbprformat{}}%
    \else
    \ifjb@debug
    \typeout{#3: @citex arg1 is empty or missing/@citex arg2 is #2}%
    \typeout{#3: I assume \string\cite[#2]{key} or \string\cite[][#2]{key}}%
    \fi
    \def\jb@@newannotatorcite{}%
    \def\jb@@newpagecite{\jbprformat{#2}}%
    \fi
    \else
    \ifx\relax#2\relax
    \ifjb@debug
    \typeout{#3: @citex arg1 is #1/@citex arg2 is empty or missing}%
    \typeout{#3: I assume \string\cite[#1][]{key}}%
    \fi
    \ifjb@old@order
    \def\jb@@newannotatorcite{}%
    \def\jb@@newpagecite{\jbprformat{#1}}%
    \else
    \def\jb@@newannotatorcite{#1}%
    \def\jb@@newpagecite{\jbprformat{}}%
    \fi
    \else
    \ifjb@debug
    \typeout{#3: @citex arg1 is #1/@citex arg2 is #2}%
    \typeout{#3: I assume \string\cite[#1][#2]{key}}%
    \fi
    \ifjb@old@order
    \def\jb@@newannotatorcite{#2}%
    \def\jb@@newpagecite{\jbprformat{#1}}%
    \else
    \def\jb@@newannotatorcite{#1}%
    \def\jb@@newpagecite{\jbprformat{#2}}%
    \fi
    \fi
    \fi
    \ifjb@no@nested@crossrefs
    \let\origcrossref\jbcrossrefchecked
    \renewcommand*{\jbcrossrefchecked}[2][]{}%
    \let\origbibces\bibces
    \renewcommand*{\bibces}{}%
    \fi
    \let\@citea\@empty%
    \@cite{%
    \@for\@citeb:=#3\do{%
    \@citea%
    \def\@citea{;\penalty\@m\ %
    \@ifundefined{jb@morethanonecite}{%
    \global\@namedef{jb@morethanonecite}{}}{}%
    \ifthenelse{\equal{\jb@@newpagecite}{\@empty}}{\relax}{%
    \jb@package@warning{\jb@pkg@name}{%
    I assume you know what you're doing %
    using `\jb@@newpagecite'\MessageBreak
    on a citation with more than one\MessageBreak
    author}{\relax}%
    }%
    }%
    \@ifundefined{b@\@citeb}{}{%
    \protected@edef\@tempa{\csname b@\@citeb\endcsname}%
    \protected@edef\jb@@new@@author{\expandafter\jb@fifthofseven\@tempa\@empty}%
    }%
    \ifthenelse{\equal{\jb@@last@@author}{\jb@@new@@author}\and\not\equal{\jb@@new@@author}{}}{%
    \jb@same@fullauthortrue
    }{%
    \jb@same@fullauthorfalse
    }%
    \global\let\jb@@last@@author\jb@@new@@author
    \@ifundefined{jb@morethanonecite}{\relax}{%
    \let\jb@@newannotatorcite\@empty
    \let\idemname\idemmidname
    }%
    \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
    \if@filesw
    \immediate\write
    \@newciteauxhandle{%
    \jb@makehowcited\string\citation{\@citeb}%
    }%
    \fi
    \@ifundefined{b@\@citeb\@extra@b@citeb}{%
    \mbox{\reset@font{\bfseries ?}, #1}%
    \G@refundefinedtrue
    \@latex@warning{%
    Citation `\@citeb' on page \thepage \space undefined
    }%
    }{%
    \begingroup
    \jb@extract%
    \ifjb@always@pageranges\else\ifjb@tested@pageranges
    \ifthenelse{\equal{\jb@@newpagecite}{}}{}{\jb@make@pageranges@for@first@cite}%
    \else\jb@make@pageranges@for@first@cite\fi\fi
    \def\jb@@newauthorcite{\@citeb}%
    \jb@make@opcit
    \jb@call@index{aut}{\@citeb}%
    \jb@call@index{ed}{\@citeb}%
    \jb@call@index{org}{\@citeb}%
    \jb@changefontsforfullcite
    \ifjb@allow@hyper@cite\hyper@jblinkstart{\@citeb}\fi
    \jb@extract%
    \jb@do@ibidem@name@title@test%
    \ifthenelse{%
    \equal{\jb@@fullname}{\@empty}%
    \and
    \equal{\jb@@author}{\@empty}%
    }{%
    \let\jbhowsepbeforetitle\@empty
    }{}%
    \jbonlyforcitations%
    \jb@cite@title@for@type@hook%
    \jb@cite@full@first@fortype@hook%
    \jb@cite@title@for@work@hook%
    \jb@start@page@for@type@hook%
    \jb@make@superscript@edition%
    \@ifundefined{jb@fm@\@citeb}{}{%
    \ifthenelse{\equal{\jb@@mult@switch}{0}}{%
    \@ifundefined{jb@fmmess@\@citeb}{% only one message per entry
    \global\@namedef{jb@fmmess@\@citeb}{}%
    \jb@package@warning{\jb@pkg@name}{%
    Multiple use of `et. al.' for the author(s)\MessageBreak
    of `#3' \MessageBreak
    detected, printing the title to\MessageBreak
    avoid ambiguity}}{}}{\relax}%
    \jb@do@if@multiple@bibetal% the things to do if true
    }%
    \ifjb@babel
    \ifthenelse{%
    \equal{\jb@@language}{\bbl@main@language}%
    }{}{%
    \ifthenelse{%
    \equal{\jb@@language}{\@empty}%
    }{% if no language is given, use the main language
    \expandafter\jbselectlanguage%
    \expandafter{\bbl@main@language}%
    }{% if a language is given, use it
    \language=\csname l@\jb@@language\endcsname\relax%
    }%
    }%
    \fi
    \jb@checktitlefields
    \@ifundefined{jb@morethanonecite}{\jb@makeibidem}{\relax}%
    \jb@makeidem
    \jb@firstcitefull
    \jb@checked@etal
    \jb@makeagainfullcite%
    \jb@relaxforemptyauthor
    \jb@warningfootciteusage
    \jb@maketitlewishestrue
    \ifjb@lookat
    \ifjb@firstcite@full
    \ifjb@allow@lookat@for@fullcite
    \ifjb@all@full\else
    \ifthenelse{%
    \equal{\@nameuse{look@\@citeb}}{firsttime}%
    }{%
    \relax
    }{%
    \jb@lookat@fortype@hook
    \ifthenelse{\equal{\jb@@lookat@for@type@switch}{1}}{%
    \unskip\lookatprefix%
    \endgroup
    \begingroup
    \lookatsuffix%
    \jb@extract%
    }{}%
    }%
    \fi % allfull end
    \fi % allow@lookat@for@fullcite end
    \fi % jb@firstcite@full end
    \fi % jb@lookat end
    \jb@cite@no@title@for@type@hook%
    \ifjb@debug
    \textcolor[named]{Dandelion}{%
    \ifjb@debug@br[\fi\jb@makecheckedcite\ifjb@debug@br]\fi}%
    \else
    \jb@makecheckedcite%
    \fi
    \OpCit%
    \jb@checkperiod{#2}%
    \jb@extract@starting@page{\jb@@pages}%
    \jb@makecheckedpages
    \ifjb@allow@hyper@cite\hyper@jblinkend\fi
    \endgroup
    \ifx\relax#1\relax\ifx\relax#2\relax
    \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{EMPTY}%
    \else
    \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{\jbprformat{#2}}%
    \fi
    \else
    \ifx\relax#2\relax
    \ifjb@old@order
    \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{\jbprformat{#1}}%
    \else
    \gdef\jb@@lastannotatorcite{}\gdef\jb@@lastpagecite{EMPTY}%
    \fi
    \else
    \ifjb@old@order
    \gdef\jb@@lastannotatorcite{#2}\gdef\jb@@lastpagecite{\jbprformat{#1}}%
    \else
    \gdef\jb@@lastannotatorcite{#1}\gdef\jb@@lastpagecite{\jbprformat{#2}}%
    \fi
    \fi
    \fi
    \ifjbweareinbib\else\gdef\jb@@lastauthorcite{#3}\fi
    \global\let\jb@morethanonecite\@undefined
    \let\ibidem\@undefined
    \ifjb@no@nested@crossrefs
    \global\let\jbcrossrefchecked\origcrossref
    \fi

    \ifjb@fn
    \let\jb@close\@empty
    \let\jb@open\@empty
    \fi
    \stepcounter{citefull}%
    \stepcounter{opcit}%
    \jb@allow@adding@of@pagerangetrue
    }%
    }%
    \global\jb@fullcite@againfalse
    \jb@noauthorforcitetitlefalse
    }{}%
    \ifjb@fn\else\jb@fnfalse\fi
    \jb@ssed@recent@kernedfalse
    \@restore@auxhandle
    }

    \AtBeginDocument{%
    \def\lookatprefix{Cfr.~}%
    \def\lookatsuffix{}}
    \endinput`
    L’autore di jurabib avrebbe sicuramente fatto un lavoro migliore e con maggior cognizione di causa.

    Go to top