自定义简短引用(Biblatex Verbose)

自定义简短引用(Biblatex Verbose)

我试图在后记中隐藏逗号,但只在简短的引文中隐藏。在我的 MWE 中,我得到了

Stratoydaki-White,《Photios 大主教——一位基督教人道主义者》,引文,第 196 页。

代替

Stratoydaki-White,《Photios 大主教——一位基督教人道主义者》,引文第 196 页。

我尝试重新定义:

\renewcommand*{\postnotedelim}{\addspace}

但显然它会影响每一个引用,而不仅仅是简短的引用。

我该如何修复这个问题?

梅威瑟:

% !TEX TS-program = XeLaTeX
% !TEX encoding = UTF-8 Unicode

\begin{filecontents}{archivio.bib}


@article{Stu:Pat,
    Author = {Despina Stratoydaki-White},
    Date-Added = {2015-11-18 12:39:01 +0000},
    Date-Modified = {2015-11-18 12:40:01 +0000},
    Journal = {The Greek Orthodox Theological Review},
    Number = {2},
    Pages = {195-205},
    Title = {Patriarch Photios - A Christian Humanist},
    Volume = {25},
    Year = {1980}}


@article{Szi:Usu,
    Author = {Szidat, Joachim},
    Date-Added = {2017-09-25 13:16:22 +0000},
    Date-Modified = {2017-09-25 13:17:10 +0000},
    Journal = {Historia. Zeitschrift für Alte Geschichte},
    Pages = {487-508},
    Title = {Die Usurpation des Eugenius},
    Volume = {28},
    Year = {1979}}


\end{filecontents}

\documentclass[11pt, twoside]{book}   %openany
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\setotherlanguages{latin, english, french}

%%% bibliografia
\usepackage[babel,italian=guillemets]{csquotes}

\usepackage[    style=verbose-trad2,            
            language=italian,
            useprefix=true,                 
            firstinits=true,    
            citepages=omit,                 
            backend=biber,  
        ]{biblatex} 

% \renewcommand*{\postnotedelim}{\addspace}

\addbibresource{archivio.bib}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}


a\footcite[197-198]{Stu:Pat} \\

b\footcite[488]{Szi:Usu} \\

c\footcite[196]{Stu:Pat}


\end{document}

非常感谢!

答案1

\DefineBibliographyStrings{italian}{opcit = {cit\adddot\nopunct}}

适用于当前的问题,并且似乎是几个糟糕的选择中最不糟糕的。


一个更安全但更繁琐的版本,引入了一个新的检查,即是否有“op. cit.”引用。该检查需要通过切换来完成,因为在\postnotedelim打印时,用于确定引用是否为“op. cit.”的本机检查不再可用。

\documentclass[11pt, twoside]{book}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\usepackage{csquotes}
\usepackage[style=verbose-trad2, useprefix=true, giveninits=true, citepages=omit, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\newtoggle{cbx:opcit}

\renewbibmacro*{cite}{%
  \usebibmacro{cite:citepages}%
  \global\togglefalse{cbx:fullcite}%
  \global\togglefalse{cbx:loccit}%
  \global\togglefalse{cbx:opcit}%
  \bibhypertarget{cite\the\value{instcount}}{%
    \ifciteseen
      {\iffieldundef{shorthand}
         {\ifciteibid
            {\usebibmacro{cite:ibid}}
            {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
               {\usebibmacro{cite:idem}}
               {\usebibmacro{cite:name}}%
             \usebibmacro{cite:title}}%
          \usebibmacro{cite:save}}
         {\usebibmacro{cite:shorthand}}}
      {\usebibmacro{cite:full}%
       \usebibmacro{cite:save}}}}

\renewbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}%
    \setunit{\printdelim{nametitledelim}}%
    \bibstring[\mkibid]{opcit}}%
  \global\toggletrue{cbx:opcit}}

\renewcommand*{\postnotedelim}{\iftoggle{cbx:opcit}{\addspace}{\addcomma\space}}
\makeatother

\begin{document}
a\footcite[197-198]{sigfridsson}

b\footcite[488]{vizedom:related}

c\footcite[196]{sigfridsson}
\end{document}

在此处输入图片描述

相关内容