biblatex-chicago + 'seenote' 交叉引用

biblatex-chicago + 'seenote' 交叉引用

我正在尝试修改 biblatex-chicago 以适应特定期刊的独特风格。他们坚持的一点是,作品的后续引用应以缩写形式出现,并附上可以找到完整引用的注释的参考;例如:

Goossens、Mittelbach 和 Samarin,LaTeX 伴侣(见注1),23-32。

遵循建议这里,我研究了biblatexverbose-note.cbx做了以下补充:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[american]{babel}
\usepackage[backend=biber]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{cite:save}{% <--- based on verbose-note.cbx
  \csxdef{cbx@\thefield{entrykey}}{\the\value{instcount}}}

\renewbibmacro*{cite:short}{%
  \ifthenelse{\ifnameundef{labelname}\OR%
    \iffieldequalstr{entrytype}{inreference}\OR%
    \iffieldequalstr{entrytype}{reference}}%
  {\iffieldequalstr{entrysubtype}{magazine}% Simplify .bib creation
    {\ifuseauthor%
      {\printfield[journaltitle]{journaltitle}\isdot\newcunit}%
      {}}%
    {\iffieldequalstr{entrytype}{manual}%
      {\printlist{organization}\isdot\newcunit}%
      {}}}%
  {\iffieldequalstr{authortype}{anon}%
    {\bibleftbracket\printnames{labelname}%
      \bibrightbracket\classicpunct}%
    {\iffieldequalstr{authortype}{anon?}%
      {\bibleftbracket\printnames{labelname}?%
         \bibrightbracket\classicpunct}%
      {\printnames{labelname}%
        \isdot\classicpunct}}}%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}}%
\addspace% <--- additions start here
\mkbibparens{%
  \bibstring{seenote}\addnbspace%
  \ref{cbx@\csuse{cbx@\thefield{entrykey}}}}%
  }%

\begin{document}

Test.%
\footnote{\cite{companion}.}%
Test.%
\footnote{\mancite\cite{companion}.}%

\end{document}

这不管用(我更复杂的尝试也没有用),而且我仍在浪费时间担心这个问题,而我还有修改要做。如果有人能指出为什么这个解决方案不完整,我将不胜感激。

答案1

\ref由于没有定义,所以没有目标。\label因此,您必须将添加到 bibmacro\labelcite:save。我已相应地改进了您的示例:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[american]{babel}
\usepackage[backend=biber]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}

\makeatletter
\renewbibmacro*{cite:save}{% <--- based on verbose-note.cbx
  \savefield{entrykey}{\cbx@lastkey}% <-- this is in the original chicago-notes.cbx
  \csxdef{cbx@\thefield{entrykey}}{\the\value{instcount}}%
  \label{cbx@\the\value{instcount}}}

\renewbibmacro*{cite:short}{%
  \ifthenelse{\ifnameundef{labelname}\OR%
    \iffieldequalstr{entrytype}{inreference}\OR%
    \iffieldequalstr{entrytype}{reference}}%
  {\iffieldequalstr{entrysubtype}{magazine}% Simplify .bib creation
    {\ifuseauthor%
      {\printfield[journaltitle]{journaltitle}\isdot\newcunit}%
      {}}%
    {\iffieldequalstr{entrytype}{manual}%
      {\printlist{organization}\isdot\newcunit}%
      {}}}%
  {\iffieldequalstr{authortype}{anon}%
    {\bibleftbracket\printnames{labelname}%
      \bibrightbracket\classicpunct}%
    {\iffieldequalstr{authortype}{anon?}%
      {\bibleftbracket\printnames{labelname}?%
         \bibrightbracket\classicpunct}%
      {\printnames{labelname}%
        \isdot\classicpunct}}}%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}}%
\addspace% <--- additions start here
\mkbibparens{%
  \bibstring{seenote}\addnbspace%
  \ref{cbx@\csuse{cbx@\thefield{entrykey}}}}%
  }%
\makeatother

\begin{document}

Test.%
\footnote{\cite{companion}.}
Test.%
\footnote{\mancite\cite{companion}.}%

\end{document}

相关内容