我在这个问题中使用过这种方法:在参考书目中添加文本/评论 为了在我的 bibitems(有它们)之前打印速记。
我希望它们在同一行,因此我修改了代码,\quad
在每个简写后使用间距命令,而不是新的\item
:
\\AtEveryBibitem{\printfield{shorthand}\clearfield{shorthand}\quad}
但我想抑制\quad
在没有任何速记可打印的 bibitems 之前生成的空格。
也许存在一个间距命令,如果在它之前没有打印任何内容,那么该命令就会被抑制?
梅威瑟:
\documentclass{book}
\usepackage[bibstyle=authoryear, backend=bibtex8]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Vismann2017Lagen-och-arkiv,
Author = {Cornelia Vismann},
Publisher = {Gl{\"a}nta produktion},
Shorttitle = {Lagen och arkivet},
Title = {Lagen och arkivet : Akternas mediehistoria},
Year = {2017},
}
@book{sou2018:25,
Address = {Stockholm},
Author = {Digitaliseringsr{\"a}ttsutredningen},
Keywords = {sou},
Publisher = {Norstedts juridik},
Shorthand = {SOU 2018:25},
Title = {Juridik som st{\"o}d f{\"o}r f{\"o}rvaltningens digitalisering},
Year = {2018},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\AtEveryBibitem{\printfield{shorthand}\clearfield{shorthand}\quad}
\begin{document}
\nocite{Vismann2017Lagen-och-arkiv,sou2018:25}
\printbibliography[keyword=sou,title={Utredningsbet{\"a}nkanden}]
\nopagebreak
\printbibliography[notkeyword=sou]
\end{document}
答案1
通常\setunit
应该在这种情况下有所帮助。但\setunit
这里有两个障碍
\AtEveryBibitem
与 配合不佳\setunit
,您可以改用\renewbibmacro{begentry}
(事实上,这也是我建议的)。- 即使这样,
\setunit
当作者被破折号替换时也会出现问题(破折号按原样排版,而不是用\printtext
,这意味着标点符号跟踪器被丢弃)。
所以我首选的解决方案
\renewbibmacro*{begentry}{%
\printfield{shorthand}%
\clearfield{shorthand}%
\setunit{\quad}}
在这种情况下,出局了。因此,我不得不建议更尴尬的
\renewbibmacro*{begentry}{%
\iffieldundef{shorthand}
{}
{\printfield{shorthand}%
\clearfield{shorthand}%
\quad}}
这使
\documentclass{article}
\usepackage[style=authoryear, backend=bibtex8]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewbibmacro*{begentry}{%
\iffieldundef{shorthand}
{}
{\printfield{shorthand}%
\clearfield{shorthand}%
\quad}}
\begin{document}
\nocite{knuth:ct:a,knuth:ct:b,kant:kpv,kant:ku}
\printbibliography
\end{document}
顺便说一句:您知道吗\printbiblist{shorthand}
?(最好与 Biber 一起使用,而不是 BibTeX(8))。
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibcheck{noshorthand}{\iffieldundef{shorthand}{}{\skipentry}}
\begin{document}
\nocite{knuth:ct:a,knuth:ct:b,kant:kpv,kant:ku}
\printbiblist{shorthand}
\printbibliography[check=noshorthand]
\end{document}