问题描述

问题描述

问题描述

我想volume成为number​​journalvolume斜体number如下图所示,斜体部分为:
期望输出
但是我的输出是将volumenumber与分开journal,并且volume不在斜体如下图所示:
我的问题描述
我的直觉是,这个问题与apalike2.bst尽管我不知道在哪里以及在这个文件上修改什么。 以下是我的 MWE:

\begin{filecontents*}{\jobname.bib}
@article{wainwright2008graphical,
    author   = {Wainwright, M. J. and Jordan, M. I.},
    title    = {Graphical Models, Exponential Families, and Variational Inference},
    journal  = {Foundations and Trends\textsuperscript{\normalfont\footnotesize\textregistered} in Machine Learning},
    year     = {2008},
    volume   = {1},
    number   = {1--2},
    pages    = {1--305}
}
\end{filecontents*}

\documentclass[11pt,openany]{book}

\usepackage{natbib}
\usepackage[table]{xcolor}
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    citecolor=red,      
    urlcolor=yellow,
}

\begin{document} 
    
    \nocite{*}
    
    \bibliographystyle{apalike2}
    \bibliography{\jobname}
    
\end{document}

答案1

要隐藏后面的逗号journal title,可以使用add.blank函数。它的作用是添加一个空白标点符号。解决方案来自这里这里

在 的本地副本中apalike2.bst,找到该FUNCTION {article}块。在块之前添加以下代码(无论在哪里,只要它在 之前即可FUNCTION {article}):

FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}

然后在中调用此函数FUNCTION {article},紧接着所说的行journal emphasize "journal" output.check,如下所示:

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output              % special for
  output.year.check                 % apalike
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
    add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

这应该可以。

相关内容