绝对的 Latex 初学者在这里有一个问题:我改变了\自动引用命令添加文内引用,格式如下:(作者年份:[页码])(例如:(Dylan 1967:5))。我在 main.tex 中使用了以下代码:
\DeclareCiteCommand{\autocite}
{\usebibmacro{prenote}}
{\printtext[parens]{\printnames{labelname} \printfield{year}\addcolon\addspace\usebibmacro{postnote}}}
{\multicitedelim}
问题就在这里。每次引用之后(它们确实发挥了神奇的作用),Latex 都会出现换行符,而我并不想这样做。有没有办法消除换行符,或者有更智能的方法来实现我想要的文内引用?
谢谢你!
答案1
由于不完全清楚biblatex
您使用的是哪种样式,因此这里有一个简单的解决方案style=authoryear
。但它也可能适用于其他样式,具体取决于某些宏的定义。
这里是具有更新代码的完整工作MWE:
\documentclass{article}
\begin{filecontents*}[overwrite]{bibfile.bib}
@article{bouche_2006,
author = {Bouche, Thierry},
journal = {Tugboat},
title = {A {pdfLaTeX}-based automated journal production system},
year = {2006},
number = {1},
pages = {45--50},
volume = {27},
}
\end{filecontents*}
\usepackage[style=authoryear]{biblatex}
\addbibresource{bibfile.bib}
% code snippet for you to copy:
\DeclareDelimFormat{postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareCiteCommand{\autocite}[\mkbibparens]
{\usebibmacro{prenote}}
{\printnames{labelname}\space\printfield{year}}
{\multicitedelim}
{\usebibmacro{postnote}}
% end snippet
\begin{document}
test \autocite[227]{bouche_2006}. test
\printbibliography
\end{document}
如您所见,引用后没有换行符。如果您使用我改编的代码片段时,您的文档中仍然出现换行符,我们需要有关您的代码的更多信息。
如果你仍然想要页面前缀p.
在给定的页码前面,只需取消注释该DeclareFieldFormat
行。