我的参考文献确实有问题,我想在打印参考文献时删除标题和期刊名称之间的点“。”。有人能帮忙吗?这是我当前的代码:
\usepackage[style=numeric]{biblatex}
\renewbibmacro{in:}{\newline}
\renewcommand{\bibfootnotewrapper}[1]{%
\bibsentence#1}
\renewcommand*{\finentrypunct}{}
对于.bib
条目:
@article{Adams.2007,
author = {{Adams RH, Alitalo K}},
year = {2007},
title = {Molecular regulation of angiogenesis and lymphangiogenesis},
pages = {464--478},
volume = {8},
number = {6},
journal = {Nat Rev Mol Cell Biol}
}
结果如下:
答案1
裸露的标点/间距命令(例如\newunit
bibmacro 中的命令)会抛出 的标点符号跟踪器。如果标点和间距命令出现在 bibmacros 或驱动程序中,则应始终用/biblatex
包装它们;它们只能在字段格式中不带这些包装器出现。\setunit
\printunit
代替
\renewbibmacro{in:}{\newline}
你需要类似的东西
\renewbibmacro{in:}{\printunit{\newunitpunct\newline}}
这种方式\newunitpunct\newline
被添加到标点符号缓冲区,并且只在需要时打印。您可以在\setunit 和 \newunit 起什么作用?和第 4.11.7 节使用标点符号追踪器(第 3.14 版第 312-317 页)biblatex
文档。
请注意这author = {{Adams RH, Alitalo K}},
是错误的。多个名称必须始终用分隔符分隔,and
并且应以Family, Given
或Given Family
格式给出,而不管所需的输出是什么(请参阅我应该如何在 bib 文件中输入作者姓名?和如何在bibtex文件中正确写入多位作者?)。输出可以通过样式来控制(请参阅下面的 MWE:您需要选项terseinits
和一些其他内容)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=numeric,
giveninits, terseinits]{biblatex}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\renewcommand*{\revsdnamepunct}{}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\renewbibmacro{in:}{\printunit{\newunitpunct\newline}}
\renewcommand{\bibfootnotewrapper}[1]{\bibsentence#1}
\renewcommand*{\finentrypunct}{}
\begin{filecontents}[force]{\jobname.bib}
@article{adams,
author = {Adams, R. H. and Alitalo, K.},
title = {Molecular Regulation of Angiogenesis and Lymphangiogenesis},
journal = {Nat Rev Mol Cell Biol},
volume = {8},
number = {6},
year = {2007},
pages = {464--478},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,adams}
\printbibliography
\end{document}