删除文章中的“in”,修改为 inbooks

删除文章中的“in”,修改为 inbooks

我希望文章显示为

Kowalski Jan,《Reforma reformatorska》,Przeglad Historyczny 1(1953 年),第 101-152 页。

Inbook 和 incollction 必须显示为

Kwiatkowska Anna,“Liczenie dla dzieci” [in:] Studia matematyczne,华沙:DiG,2014 年,第 247-272 页。

请注意两种情况下的分隔符(文章的期刊标题前有逗号,而 inbooks 的“in”前后没有逗号)。

我的代码如下:

\documentclass{article}

\usepackage[style=verbose-trad1]{biblatex}

%comma instead of dot as default delimiter
\renewcommand*{\newunitpunct}{\addcomma\space}

%no comma between first name and last name
\renewcommand*{\revsdnamepunct}{}

\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\setunit{\space}%
       \printtext{%
       %\mkbibbrackets{\bibstring{in}\addcolon}}}}
       \bibstring{in}\addcolon}}}

\begin{filecontents}{\jobname.bib}
    @article{a1,
          author        ={Kowalski, Jan},
          title         ={Reforma reformatorska},
          journaltitle  ={Przeglad Historyczny},
          date          ={1953},
          number        ={1},
          pages         ={101-152},
    }
@inbook{b1,
  author        ={Kwiatkowska, Anna},
  location      ={Warszawa},
  publisher     ={DiG},
  booktitle     ={Studia matematyczne},
  title         ={Liczenie dla dzieci},
  pages         ={247-272},
  date          ={2014},
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
a\footcite{a1}

b\footcite{b1}

\printbibliography

\end{document}

如果不需要括号,一切都会很好。但是如果我使用\mkbibbrackets{\bibstring{in}\addcolon}而不是 ,\bibstring{in}\addcolon后面会有多余的逗号[in:]。我怎样才能删除后面的逗号[in:]并保留其他所有内容?

带有括号和冗余逗号的结果:

带括号

结果没有逗号,也没有括号: 无括号

答案1

在您的解决方案中,in:您只是缺少一种方法来确保“[in:]”后面打印的标点符号始终是空格。这可以用 来实现\printunit{\addspace}。请注意,\printunitin:(ll. 2927-2929 的biblatex.def),您的重新定义似乎是基于旧版本的in:

\mkbibbrackets根据新代码并遵循bibmacro 中永远不应该有裸露的原则,我建议

\documentclass{article}

\usepackage[style=verbose-trad1]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewcommand*{\revsdnamepunct}{}

\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\setunit{\addspace}%
     \printtext[brackets]{%
       \bibstring{in}%
       \addcolon}%
     \printunit{\addspace}}}

\begin{filecontents}{\jobname.bib}
@article{a1,
  author        = {Kowalski, Jan},
  title         = {Reforma reformatorska},
  journaltitle  = {Przeglad Historyczny},
  date          = {1953},
  number        = {1},
  pages         = {101-152},
}
@inbook{b1,
  author        = {Kwiatkowska, Anna},
  location      = {Warszawa},
  publisher     = {DiG},
  booktitle     = {Studia matematyczne},
  title         = {Liczenie dla dzieci},
  pages         = {247-272},
  date          = {2014},
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
Lorem \autocite{a1}

ipsum \autocite{b1}

\printbibliography
\end{document}

Kowalski Jan,“Reforma reformatorska”,Przeglad Historyczny 1(1953 年),第 101-152 页。 Kwiatkowska Anna,“Liczenie dla dzieci” [in:] Studia matematyczne,华沙:DiG,2014 年,第 247-272 页。

相关内容