在引用中世纪文本时使用biblatex-chicago
,我经常想引用一本书的作者和书名,然后打印章节或段落编号,然后打印这本书的编辑(即整理手稿并制作我使用的文本版本的现代编辑),然后才显示页码,或者在多卷版的(常见)情况下,显示卷号和页码。是否有引用命令可以让我这样做(类似于芝加哥格式手册14.260)?
以下是我正在寻找的示例。第一个引用应该是:
福蒂奥斯,图书馆,鳕鱼。 172,编辑勒内·亨利(巴黎:Les Belles Lettres,1959–1991),第一卷2,页169.
那么后续的引用应该是:
福蒂奥斯,图书馆,编 172,Henry 主编,第 2 卷,第 169 页。
为此,我希望能够写下:
Photios, \emph{Bibliotheca}, cod.\ 172, \editorvolcite{2}[169]{photios:bibliotheca:henry}.
文件.bib
包含以下内容:
@book{photios:bibliotheca:henry,
Address = {Paris},
Author = {Photios},
Booktitle = {Bibliothèque},
Editor = {Henry, René},
Entrysubtype = {primary},
Note = {index by Jacques Schamp},
Publisher = {Les Belles Lettres},
Title = {Bibliothèque},
Volumes = {9},
Year = {1959--1991}}
也许已经有类似的命令了\editorvolcite
?
(同样,对于单卷作品的情况,会有一个\editorcite
仅打印“ editor
, p. pagenumber
”的命令。)
更新 2017-09-09
MWE(使用\volcite
而不是期望的\editorvolcite
以满足 MWE 的“W”部分):
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\addbibresource{editor-cite.bib}
\begin{document}
Photios, \emph{Bibliotheca}, cod.\ 172,\mancite{}
\volcite{2}[169]{photios:bibliotheca:henry}.
Photios, \emph{Bibliotheca}, cod.\ 172,\mancite{}
\volcite{2}[169]{photios:bibliotheca:henry}.
\end{document}
更新 2017-09-10
根据评论,我研究biblatex-source-division
了打印编号段落并尝试实现它。但它仍然没有完全实现我想要的功能。
这是我的 MWE 版本 2:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}
\renewcommand*\newunitpunct{\addcomma\space}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
Address = {Paris},
Author = {Photios},
Booktitle = {Bibliothèque},
Editor = {Henry, René},
Entrysubtype = {primary},
Note = {index by Jacques Schamp},
Publisher = {Les Belles Lettres},
Title = {Bibliothèque},
Volumes = {9},
Year = {1959--1991}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
\mancite{}
Again after \verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
\end{document}
第一次引用的结果是完美的。但我认为下面的引用应该只是“ibid。”虽然“ibid., cod. 172”也不错。但真正的问题是后面的(完整)简短引用缺少\mancite
编辑器。这是我的结果的一个片段:
有没有办法将最后一个变成以下内容?
福蒂奥斯,图书馆,编 172,Henry 主编,第 2 卷,第 169 页。
更新 2017-09-21
正如我在下面的评论中提到的,@moewe 提出的解决方案在与 的复杂功能(biblatex-chicago
尤其是 )交互时会产生轻微错误shorthandibid
。这是一个新的 MWE,它会产生一个虚假的逗号,导致
同上,
应该只是
同上。
\documentclass{article}
\usepackage[notes,
alldates= comp,
backend= biber,
bibwarn= false,
cmsdate= both, % reprints: print `origdate` as well as `year`
compresspages= true,
doi= false,
eprint= false,
ibidtracker= true,
inheritshorthand, % feature added for me by D.Fussner
isbn= false,
mincrossrefs = 2,
shorthandibid,
strict= true,
url= false,
usetranslator= true,
uniquename= true
]{biblatex-chicago}
\usepackage{biblatex-source-division}
\AtEveryCite{\renewcommand*\newunitpunct{\addcomma\space}}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
Address = {Paris},
Author = {Photios},
Booktitle = {Bibliothèque},
Editor = {Henry, René},
Entrysubtype = {primary},
Note = {index by Jacques Schamp},
Publisher = {Les Belles Lettres},
Title = {Bibliothèque},
Volumes = {9},
Year = {1959--1991},
options = {medinfo},
}
@book{loci:communes:ihm,
Author = {{ps.-Maximos the Confessor}},
Booktitle = {Erste kritische Edition einer Redaktion des sacro-profanen Florilegiums Loci communes},
Editor = {Ihm, Sibylle},
Entrysubtype = {primary},
Keywords = {Loci communes},
Publisher = {Franz Steiner Verlag},
Shorthand = {\emph{Loc.comm.}\ Ihm},
Shorttitle = {Loci communes},
Sortname = {Maximos the Confessor},
Title = {Erste kritische Edition einer Redaktion des sacro-profanen Florilegiums Loci communes},
Year = {2001}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\newtoggle{bbx:ar:medinfo}
\togglefalse{bbx:ar:medinfo}
\DeclareEntryOption[boolean]{medinfo}[true]{\settoggle{bbx:ar:medinfo}{#1}}
\makeatletter
\renewbibmacro*{cite:short}{%
\usebibmacro{allshort+firstcite+xref}%
\ifthenelse{\ifnameundef{labelname}\OR%
\ifentrytype{inreference}\OR%
\ifentrytype{reference}\OR%
\ifentrytype{mvreference}}%
{\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
\ifentrytype{periodical}}% Simplify .bib creation
{\ifuseauthor%
{\ifboolexpr{%
not test {\iffieldundef{shortjournal}}%
and
((
test {\ifcitation}%
and
togl {cms@citejtabb}%
)
or
(
test {\ifbibliography}%
and
togl {cms@bibjtabb}%
))
}%
{\printfield[shortjournal]{shortjournal}\newcunit}%
{\printfield[journaltitle]{journaltitle}\newcunit}}%
{}}%
{\ifentrytype{manual}%
{\printlist{organization}\isdot\newcunit}%
{}}}%
{\ifboolexpr{%
test {\ifciteidem}%
and
not test {\ifbibliography}%
and
not test {\iffirstonpage}%
and
not togl {cms@noidem}%
and
not togl {cms@headlessnote}%
}%
{\bibstring[\mkibid]{idem\thefield{gender}}%
\classicpunct}%
{\iffieldequalstr{authortype}{anon}%
{\bibleftbracket\printnames{labelname}%
\bibrightbracket\classicpunct}%
{\iffieldequalstr{authortype}{anon?}%
{\bibleftbracket\printnames{labelname}?%
\bibrightbracket\classicpunct}%
{\printnames{labelname}%\usebibmacro{choose+labelname}%
\isdot\classicpunct}}}}%
\ifboolexpr{%
togl {cms@allshort}%
or
test {\ifbibliography}%
}%
{\printtext[bibhyperref]{%
\printfield[citetitle]{labeltitle}}}%
{\printtext[cmshyperlink]{%
\printfield[citetitle]{labeltitle}}}%#
\iftoggle{bbx:ar:medinfo}
{\newcunit
\printfield{titleaddon}%
\newcunit
\usebibmacro{cbyeditor:short}}
{}}
\DeclareNameFormat{family}{%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\usebibmacro{name:andothers}}
\renewbibmacro*{cbyeditor:short}{%
\ifnameundef{editor}%
{}%
{\usebibmacro{cbytypestrg}{editor}{editor}%
\setunit{\addspace}%
\printnames[family]{editor}%
\newcunit}%
\usebibmacro{cbyeditorx:short}}
\renewbibmacro*{cbyeditorx:short}{%
\ifnameundef{editora}%
{}%
{\usebibmacro{cbytypestrg}{editora}{editor}%
\setunit{\addspace}%
\printnames[family]{editora}%
\newcunit}%
\ifnameundef{editorb}%
{}%
{\usebibmacro{cbytypestrg}{editorb}{editor}%
\setunit{\addspace}%
\printnames[family]{editorb}%
\newcunit}%
\ifnameundef{editorc}%
{}%
{\usebibmacro{cbytypestrg}{editorc}{editor}%
\setunit{\addspace}%
\printnames[family]{editorc}%
\newcunit}}
\makeatother
\begin{document}
\section{editor-cite with volume}
1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
After \mancite\verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
Again: \volcite{2}[(cod.\ 172)169\textsubscript{11}]{photios:bibliotheca:henry}.
\section{problem with shorthand/ibid}
1st time: \cite[3]{loci:communes:ihm}.
2nd time: \cite[3]{loci:communes:ihm}.
After \mancite\verb`\mancite`: \cite[3]{loci:communes:ihm}.
Again: \cite[3]{loci:communes:ihm}.
Without final period in source: \cite[3]{loci:communes:ihm}
\printbibliography
\end{document}
答案1
根据您上次使用 MWE,biblatex-source-division
我们可以实现一个名为 的新选项,medinfo
它可以与编辑器交互biblatex-source-division
并打印编辑器。
biblatex-chicago
由于宏非常复杂,因此必要的更改非常长。
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}
\renewcommand*\newunitpunct{\addcomma\space}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
Address = {Paris},
Author = {Photios},
Booktitle = {Bibliothèque},
Editor = {Henry, René},
Entrysubtype = {primary},
Note = {index by Jacques Schamp},
Publisher = {Les Belles Lettres},
Title = {Bibliothèque},
Volumes = {9},
Year = {1959--1991},
options = {medinfo},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\newtoggle{bbx:ar:medinfo}
\togglefalse{bbx:ar:medinfo}
\DeclareEntryOption[boolean]{medinfo}[true]{\settoggle{bbx:ar:medinfo}{#1}}
\makeatletter
\renewbibmacro*{cite:short}{%
\usebibmacro{allshort+firstcite+xref}%
\ifthenelse{\ifnameundef{labelname}\OR%
\ifentrytype{inreference}\OR%
\ifentrytype{reference}\OR%
\ifentrytype{mvreference}}%
{\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
\ifentrytype{periodical}}% Simplify .bib creation
{\ifuseauthor%
{\ifboolexpr{%
not test {\iffieldundef{shortjournal}}%
and
((
test {\ifcitation}%
and
togl {cms@citejtabb}%
)
or
(
test {\ifbibliography}%
and
togl {cms@bibjtabb}%
))
}%
{\printfield[shortjournal]{shortjournal}\newcunit}%
{\printfield[journaltitle]{journaltitle}\newcunit}}%
{}}%
{\ifentrytype{manual}%
{\printlist{organization}\isdot\newcunit}%
{}}}%
{\ifboolexpr{%
test {\ifciteidem}%
and
not test {\ifbibliography}%
and
not test {\iffirstonpage}%
and
not togl {cms@noidem}%
and
not togl {cms@headlessnote}%
}%
{\bibstring[\mkibid]{idem\thefield{gender}}%
\classicpunct}%
{\iffieldequalstr{authortype}{anon}%
{\bibleftbracket\printnames{labelname}%
\bibrightbracket\classicpunct}%
{\iffieldequalstr{authortype}{anon?}%
{\bibleftbracket\printnames{labelname}?%
\bibrightbracket\classicpunct}%
{\printnames{labelname}%\usebibmacro{choose+labelname}%
\isdot\classicpunct}}}}%
\ifboolexpr{%
togl {cms@allshort}%
or
test {\ifbibliography}%
}%
{\printtext[bibhyperref]{%
\printfield[citetitle]{labeltitle}}}%
{\printtext[cmshyperlink]{%
\printfield[citetitle]{labeltitle}}}%#
\iftoggle{bbx:ar:medinfo}
{\newcunit
\printfield{titleaddon}%
\newcunit
\usebibmacro{cbyeditor}}
{}}
\makeatother
\begin{document}
1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
\cite{sigfridsson}
Again after \verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
\end{document}
如果你只想要姓氏,请将\makeatletter...\makeatother
块替换为更长的
\makeatletter
\renewbibmacro*{cite:short}{%
\usebibmacro{allshort+firstcite+xref}%
\ifthenelse{\ifnameundef{labelname}\OR%
\ifentrytype{inreference}\OR%
\ifentrytype{reference}\OR%
\ifentrytype{mvreference}}%
{\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
\ifentrytype{periodical}}% Simplify .bib creation
{\ifuseauthor%
{\ifboolexpr{%
not test {\iffieldundef{shortjournal}}%
and
((
test {\ifcitation}%
and
togl {cms@citejtabb}%
)
or
(
test {\ifbibliography}%
and
togl {cms@bibjtabb}%
))
}%
{\printfield[shortjournal]{shortjournal}\newcunit}%
{\printfield[journaltitle]{journaltitle}\newcunit}}%
{}}%
{\ifentrytype{manual}%
{\printlist{organization}\isdot\newcunit}%
{}}}%
{\ifboolexpr{%
test {\ifciteidem}%
and
not test {\ifbibliography}%
and
not test {\iffirstonpage}%
and
not togl {cms@noidem}%
and
not togl {cms@headlessnote}%
}%
{\bibstring[\mkibid]{idem\thefield{gender}}%
\classicpunct}%
{\iffieldequalstr{authortype}{anon}%
{\bibleftbracket\printnames{labelname}%
\bibrightbracket\classicpunct}%
{\iffieldequalstr{authortype}{anon?}%
{\bibleftbracket\printnames{labelname}?%
\bibrightbracket\classicpunct}%
{\printnames{labelname}%\usebibmacro{choose+labelname}%
\isdot\classicpunct}}}}%
\ifboolexpr{%
togl {cms@allshort}%
or
test {\ifbibliography}%
}%
{\printtext[bibhyperref]{%
\printfield[citetitle]{labeltitle}}}%
{\printtext[cmshyperlink]{%
\printfield[citetitle]{labeltitle}}}%#
\iftoggle{bbx:ar:medinfo}
{\newcunit
\printfield{titleaddon}%
\newcunit
\usebibmacro{cbyeditor:short}}
{}}
\DeclareNameFormat{family}{%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\usebibmacro{name:andothers}}
\newbibmacro*{cbyeditor:short}{%
\ifnameundef{editor}%
{}%
{\usebibmacro{cbytypestrg}{editor}{editor}%
\setunit{\addspace}%
\printnames[family]{editor}%
\newcunit}%
\usebibmacro{cbyeditorx:short}}
\newbibmacro*{cbyeditorx:short}{%
\ifnameundef{editora}%
{}%
{\usebibmacro{cbytypestrg}{editora}{editor}%
\setunit{\addspace}%
\printnames[family]{editora}%
\newcunit}%
\ifnameundef{editorb}%
{}%
{\usebibmacro{cbytypestrg}{editorb}{editor}%
\setunit{\addspace}%
\printnames[family]{editorb}%
\newcunit}%
\ifnameundef{editorc}%
{}%
{\usebibmacro{cbytypestrg}{editorc}{editor}%
\setunit{\addspace}%
\printnames[family]{editorc}%
\newcunit}}
\makeatother
'ibid.' 后面的额外逗号是由 引入的biblatex-source-division
。我认为这个包biblatex-chicago
在编写时并没有考虑到这一点。
事实证明,这可能被视为 中的一个错误biblatex-source-division
。我已将这个问题报告给了https://github.com/maieul/biblatex-source-division/issues/2Maïeul 的反应非常迅速。该软件包的 2.4.2 版本已修复此问题,此版本现已在 MikTeX 和 TeX live 中可用。
(该答案的早期版本包含针对该问题的临时修复。在更新版本后,该修复不再需要biblatex-source-division
,因此我将其删除,可以在编辑历史记录中找到。)