biber
我正在尝试使用 biblatex-chicago 和作为后端来获取完整的参考书目样式的引文(我使用的是 XelaTeX;biblatex 2.9a;biblatex-chicago 2014.1.31)。我知道这通常是用命令完成的,但是当我输入此命令时,我得到的输出与我用\fullcite
替换时完全相同,即在出版商、地址和日期周围加上括号的引文。(实际上,我的文档中的和之间有一个区别:如果参考文献之前出现在文档中,则防止缩写。)当我使用 时,引文会以参考书目格式正确显示。\fullcite
\cite
\fullcite
\cite
\fullcite
\printbibliography
我不知道这是否重要,但我正在使用\documentclass{article}
(如果我将课程改为,比如说,没有任何变化,{book}
)。我还使用了一些不寻常的代码来格式化 CJK 书目条目,这些代码是从 Audrey 在 stackexchange 上的一篇文章中复制而来的(顺便说一句,我对此永远心存感激!芝加哥风格的 CJK 文献引文(例如美国东方学会):姓名顺序;转录/翻译的标题)。我不明白这段代码,所以不知道它是否可能导致 \fullcite 的行为。一个最小的工作示例如下:
\documentclass{article}
\usepackage{xltxtra}
\usepackage[fallback]{xeCJK}
\usepackage[backend=biber,bibencoding=utf8]{biblatex-chicago}
\addbibresource{C:/dissertate/Dissertation.bib}
\setmainfont[Mapping=tex-text, Ligatures={Common, Contextual, TeX}]{Times New Roman}
\setCJKmainfont[Scale=0.9]{仿宋}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\forcsvlist{\listadd\nameaffixlist}{Junior,Senior}
\newcommand{\ifnameaffix}[1]{%
\ifboolexpr{ test {\ifrmnum{#1}} or test {\ifinlist{#1}{\nameaffixlist}} }}
% Based on definitions from biblatex.def
\newbibmacro*{name:cjk}[3]{%
\usebibmacro{name:delim}{#2#3#1}%
\usebibmacro{name:hook}{#2#3#1}%
\mkbibnamelast{#1}%
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}}%
\ifblank{#3}{}{\bibnamedelimd\mkbibnameaffix{#3}}}
\DeclareNameFormat{first-last}{%
\ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
{\iffirstinits
{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}
{\usebibmacro{name:cjk}{#1}{#3}{#7}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{last-first}{%
\ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
{\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}}
{\usebibmacro{name:cjk}{#1}{#3}{#7}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{last-first/first-last}{%
\ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
{\ifnumequal{\value{listcount}}{1}
{\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
\ifblank{#3#5}
{}
{\usebibmacro{name:revsdelim}}}
{\iffirstinits
{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}}
{\usebibmacro{name:cjk}{#1}{#3}{#7}}%
\usebibmacro{name:andothers}}
% Based on definitions from biblatex-chicago's notes.cbx
\DeclareFieldFormat[book]{title}{%
\mkbibemph{#1}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat{booktitle}{%
\mkbibemph{#1}%
\iffieldundef{booktitleaddon}{}{\nopunct}}
\DeclareFieldFormat{maintitle}{%
\mkbibemph{#1}%
\iffieldundef{maintitleaddon}{}{\nopunct}}
\DeclareFieldFormat[article]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat{usere}{\mkbibparens{#1}}
\begin{document}
\fullcite{ChengShankai}
\fullcite{Dudbridge}
\printbibliography
\end{document}
编辑:抱歉没有包含参考书目。这里包含 CJK 和普通参考资料。
@book{ChengShankai,
author = {Cheng, 成善楷, Shankai},
title = {Du shi jianji},
titleaddon = {杜诗笺记},
publisher = {BaShu shudian},
address = {Chengdu},
year = {1989}
}
@book{Dudbridge,
author = {Dudbridge, Glen},
title = {Lost Books of Medieval China} ,
publisher = {The British Library},
address = {London},
year = {2000},
}
结果如下。如您所见,它是引用样式,而不是参考书目样式:
答案1
不幸的是,您遇到的情况是 biblatex-chicago 重新调整了命令的用途\fullcite
,使其不再使用与参考书目相同的驱动程序显示条目,而是确保引用完整条目,而不是简短形式或同上。手册几乎不鼓励您这样做。
但是,生成所需结果相当简单。下面,我刚刚创建了一个新的 cite 命令,\fullcite*
它表现出所需的行为:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,bibencoding=utf8]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\makeatletter
% new code
\DeclareCiteCommand*{\fullcite}
{\usebibmacro{prenote}}%\bibsentence
{\usebibmacro{citeindex}%
\toggletrue{cms@fullnote}%
\togglefalse{cms@shortnote}%
\usebibmacro{cite:full*}
\usebibmacro{cite:save}}
{\multicitedelim}
{}
\newbibmacro*{cite:full*}{%
\printtext[bibhypertarget]{%
\usedriver
{\DeclareNameAlias{sortname}{default}\frenchspacing}
{\thefield{entrytype}}}}%
\makeatother
\begin{document}
\fullcite{aristotle:physics}
\fullcite*{aristotle:physics}
\printbibliography
\end{document}
为了简洁起见,我在前言中加入了新的定义,以\makeatletter
\makeatother
确保它能按预期工作。不过,理想情况下,这些命令应该放在 中biblatex.cfg
。
答案2
您的最小示例不可用:缺少 bib 条目,并且您使用的是不常见的字体。不清楚您得到了什么以及您期望得到什么。此外,您可以轻松测试附加定义是否是导致您出现问题的原因(我对此表示怀疑):只需对其进行注释并尝试看看会发生什么。
如果我使用 pdflatex + biber 编译此示例:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,bibencoding=utf8]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\begin{document}
\fullcite{angenendt}
\printbibliography
\end{document}
我使用 biblatex v2.9a 和 biblatex-chicago 2013/10/29 获得了预期结果: