我一直在为论文使用 LaTeX,总体来说,我对我的设置非常满意。但是有一个问题我无法理解,也找不到解决方案。使用 Biber 和biblatex
,verbose-trad1
作为选项,我希望每次调用 opcit 时,输出都是
{作者} 同上。
它是
{作者} 同上。#REF
其中 #REF 指的是引用首次出现的脚注编号。
这是 M(n)WE:
%!TEX program = xelatex
% Add packages
\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage{fontspec}
\usepackage[autostyle=true]{csquotes}
\usepackage[citestyle=ext-verbose-trad1, articlein=false, bibstyle=ext-authortitle]{biblatex}
\addbibresource{ref.bib}
\usepackage{hyperref}
% Citation settings
\DefineBibliographyStrings{french}{opcit = {\textit{supra}, note \ref{}},} %<= I guess it'd go there?
% Test proper
\begin{document}
Some text string\autocite{A}, some other\autocite{B}, some more\autocite{A}.
\end{document}
我希望脚注输出的位置是:
- 作者A,完整参考
- 作者B,完整参考
- 作者 A,上文,注释 1。
这个答案是可行的但这会非常繁琐,而且只能在最后完成,一旦引用固定下来,这就违背了 LaTeX 等语言的初衷。无论如何,我都无法应付。
答案1
如果您只是想要一种verbose
引用第一个脚注和“ibidem”的样式,您可以使用(ext-)verbose-inote
。
\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage[style=ext-verbose-inote, articlein=false]{biblatex}
\usepackage{hyperref}
\DefineBibliographyStrings{french}{
seenote = {supra, note},
}
\addbibresource{biblatex-examples.bib}
\begin{document}
Some text string\autocite{sigfridsson},
some other\autocite{worman},
some more\autocite{sigfridsson}.
\end{document}
如果要保留 的所有其他学术缩写verbose-trad1
,则需要做更多工作。在此示例中,我仅替换同上。不是位置同上。或任何其他缩写。
\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage[style=ext-verbose-trad1, articlein=false]{biblatex}
\usepackage{hyperref}
\DefineBibliographyStrings{french}{
seenote = {supra, note},
}
\newtoggle{cbx:pageref}
\DeclareBibliographyOption[boolean]{pageref}[true]{%
\settoggle{cbx:pageref}{#1}%
\iftoggle{cbx:pageref}
{\ExecuteBibliographyOptions{pagetracker}}
{}}
\DeclareFieldFormat{bibhyperlink}{%
\bibhyperlink{%
\thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
\DeclareFieldFormat{bibhypertarget}{%
\bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}
\providecommand*{\mkibid}[1]{#1}
\renewbibmacro*{cite:save}{%
\csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
\iffootnote
{\csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
\label{cbx@\the\value{instcount}}}
{}%
\global\boolfalse{cbx:noidem}}
\newbibmacro{seenote}{%
\printtext{%
\bibstring{seenote}\addnbspace
\ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
\iftoggle{cbx:pageref}
{\ifsamepage{\the\value{instcount}}
{\csuse{cbx@f@\thefield{entrykey}}}
{}
{\addcomma\space\bibstring{page}\addnbspace
\pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
{}}}
\renewbibmacro*{cite:opcit}{%
\iffootnote
{\usebibmacro{seenote}}
{\printtext[bibhyperlink]{\bibstring[\mkibid]{opcit}}}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Some text string\autocite{sigfridsson},
some other\autocite{worman},
some more\autocite{sigfridsson}.
\end{document}