我正在写一篇班级论文,其中有一些很常见的速记,我不需要在第一篇论文中对它们进行任何介绍。
biblatex-chicago
有两种方法可以自定义速记简介,但我没有看到针对特定条目省略它的方法。
列出了两个可以修改条目的功能,默认情况下该条目为“(以下简称为shorthand
)”:
shorthandintro
:(手册中的 4.1biblatex-chicago
)将其添加到 bib 条目中将替换默认简介。但是,如果留空,则仍会显示默认简介。也就是说,shorthandintro = {},
没有效果。shorthandpunct
:(手册中的 4.4.2biblatex-chicago
)这是一个可以为整个文档或条目设置的选项,但我搞不清楚单个条目的语法。它控制前导标点符号:默认值为
\addspace
,但如果这不符合您的需要,尤其是当您更改shorthandintro
或不想将整个短语放在括号内时,那么您可以在序言或单个条目中更改它。
我尝试过shorthand = none,
、shorthand = {none},
和其他一些方法,但是没有效果。
有没有办法使用这些选项来省略简写介绍?我不想隐藏该shorthand
字段及其其他功能,只想隐藏在第一次完整引用中出现的介绍。
答案1
Biber 删除了空白字段,因此
shorthandintro = {},
效果与不提供任何shorthandintro
字段相同。如果不shorthandintro
存在任何字段,则biblatex-chicago
使用正常方法引入简写。
cms:shorthandintro
这是负责引入简写的 bibmacro的副本,它使值none
变得shorthandintro
特殊,并在这种情况下抑制简写的引入。
\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[notes, backend=biber]{biblatex-chicago}
\renewbibmacro*{cms:shorthandintro}{% For changing the citedas phrase
\iffieldundef{shorthand}%
{}%
{\iffieldundef{shorthandintro}%
{\ifthenelse{\ifentrytype{jurisdiction}\OR\ifentrytype{legal}\OR%
\ifentrytype{legislation}}%
{\printtext[brackets]{%
\bibstring{hereinafter}\addspace%
\printfield{shorthand}}}%
{\printtext[parens]{%
\bibstring{citedas}\addspace%
\printfield{shorthand}}}}%
{\iffieldequalstr{shorthandintro}{none}
{}
{\printfield{shorthandintro}}}}}
\begin{filecontents}{\jobname.bib}
@manual{realcms,
shorthand = {CMS},
shorthandintro = {none},
title = {The {Chicago} Manual of Style},
date = 2003,
subtitle = {The Essential Guide for Writers, Editors, and Publishers},
edition = 15,
publisher = {University of Chicago Press},
location = {Chicago, Ill.},
isbn = {0-226-10403-6},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem\autocite{realcms}
ipsum\autocite{kant:kpv}
dolor\autocite{sigfridsson}
sit\autocite{kant:kpv}
amet\autocite{sigfridsson}
consectur\autocite{realcms}.
\printbibliography
\end{document}
如果您不喜欢这种方法,还有其他几种替代方法。
如果你使用该execute
字段来清空你的定义,那么cms:shorthandintro
在序言中就不需要任何额外的代码了
@manual{realcms,
shorthand = {CMS},
execute = {\renewbibmacro*{cms:shorthandintro}{}},
title = {The {Chicago} Manual of Style},
date = 2003,
subtitle = {The Essential Guide for Writers, Editors, and Publishers},
edition = 15,
publisher = {University of Chicago Press},
location = {Chicago, Ill.},
isbn = {0-226-10403-6},
}
也可以实现一个入门级选项来隐藏简写介绍。但这种方法与shorthandintro = {none},
上面显示的方法非常相似。