带有这些项且在其他项前没有空格的 bibitems 的简写

带有这些项且在其他项前没有空格的 bibitems 的简写

我在这个问题中使用过这种方法:在参考书目中添加文本/评论 为了在我的 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这里有两个障碍

  1. \AtEveryBibitem与 配合不佳\setunit,您可以改用\renewbibmacro{begentry}(事实上,这也是我建议的)。
  2. 即使这样,\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}

<code>简写</code> 与条目其余部分之间的四边形

顺便说一句:您知道吗\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}

两个书目列表:一个是速记列表,一个是常规书目。速记列表的左边空白处有速记标签。

相关内容