Замените строку «Там же» на строку «Ivi», если та же ссылка цитируется на другой странице.

Замените строку «Там же» на строку «Ivi», если та же ссылка цитируется на другой странице.

Я использую biblatexстиль ext-verbose-trad1в memoir.

Мне приходится использовать сокращение «ivi» при последующем цитировании той же ссылки на другой странице, сохраняя при этом обычное сокращение «ibid.» при цитировании той же ссылки на той же странице.

Этот вопрос также рассматривается вtex.stackexchange.com/q/418701/35864, где предлагается исправление.

Как показывает следующий MWE, использование ext-verbose-trad1стиля, предложенного патчем, работает идеально:

\documentclass[12pt, a4paper]{memoir}
\usepackage[italian]{babel}
\usepackage[style=ext-verbose-trad1]{biblatex}

 %patch to use ibid and ivi
 \usepackage{xpatch}     
 \NewBibliographyString{ibidemloccit,ibidemnoloccit}
 \DefineBibliographyStrings{italian}{%
   idem           = {\autocap{i}d},
   ibidemloccit   = {\mkbibemph{\autocap{i}bid\adddot}},
   ibidemnoloccit = {\mkbibemph{\autocap{i}vi}},
 }
 
 \xpatchbibmacro{author}
   {\printnames{author}}
   {\iffootnote
      {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
        {\usebibmacro{cite:idem}}
        {\printnames{author}}}
      {\printnames{author}}}
   {}{}
 \xpatchbibmacro{bbx:editor}
   {\printnames{editor}}
   {\iffootnote
      {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
         {\usebibmacro{cite:idem}}
         {\printnames{editor}}}
      {\printnames{editor}}}
   {}{}
 \xpatchbibmacro{bbx:translator}
   {\printnames{translator}}
   {\iffootnote
      {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
         {\usebibmacro{cite:idem}}
         {\printnames{translator}}}
      {\printnames{translator}}}
   {}{}
 
 \renewbibmacro*{cite:ibid}{%
   \printtext{%
     \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
       \ifloccit
         {\bibstring[\mkibid]{ibidemloccit}%
          \global\toggletrue{cbx:loccit}}
         {\bibstring[\mkibid]{ibidemnoloccit}}}}}
 
  \addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \footcite{aristotle:anima}
Lorem \footcite[14]{aristotle:anima}
Lorem \footcite[198]{aristotle:anima}
ipsum \footcite[198]{aristotle:anima}

\printbibliography
\end{document}

давая вывод:

Когда я использую стиль, ext-verbose-trad2он дает другой результат. Последняя цитата — простое повторение предыдущей, в то время как должна появиться строка 'Ibid':

введите описание изображения здесь

решение1

Ответ из связанного вопроса все еще работает для (ext-)verbose-trad2. Вы просто пропустили самый важный ингредиент ответа (который упомянут в первом предложении): Вам нужно установить опцию ibidpage=true,.

\documentclass[12pt, a4paper]{memoir}
\usepackage[italian]{babel}
\usepackage[style=ext-verbose-trad2, ibidpage=true]{biblatex}

%patch to use ibid and ivi
\usepackage{xpatch}     
\NewBibliographyString{ibidemloccit,ibidemnoloccit}
\DefineBibliographyStrings{italian}{%
  idem           = {\autocap{i}d},
  ibidemloccit   = {\mkbibemph{\autocap{i}bid\adddot}},
  ibidemnoloccit = {\mkbibemph{\autocap{i}vi}},
}

\xpatchbibmacro{author}
  {\printnames{author}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
       {\usebibmacro{cite:idem}}
       {\printnames{author}}}
     {\printnames{author}}}
  {}{}
\xpatchbibmacro{bbx:editor}
  {\printnames{editor}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
        {\usebibmacro{cite:idem}}
        {\printnames{editor}}}
     {\printnames{editor}}}
  {}{}
\xpatchbibmacro{bbx:translator}
  {\printnames{translator}}
  {\iffootnote
     {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
        {\usebibmacro{cite:idem}}
        {\printnames{translator}}}
     {\printnames{translator}}}
  {}{}

\renewbibmacro*{cite:ibid}{%
  \printtext{%
    \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
      \ifloccit
        {\bibstring[\mkibid]{ibidemloccit}%
         \global\toggletrue{cbx:loccit}}
        {\bibstring[\mkibid]{ibidemnoloccit}}}}}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \footcite{aristotle:anima}
Lorem \footcite[14]{aristotle:anima}
Lorem \footcite[198]{aristotle:anima}
ipsum \footcite[198]{aristotle:anima}

\printbibliography
\end{document}

4 Там же.

Связанный контент