更改 \autocite 格式以包含页码

更改 \autocite 格式以包含页码

绝对的 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行。

相关内容