修改 .bst 文件以使期刊名称加粗

修改 .bst 文件以使期刊名称加粗

基于问题,我有一个问题。在我的参考文献列表中,我想让期刊标题既突出又加粗(而不是像现在这样只突出)。

按照上述问题中列出的步骤,我尝试定义自己的函数,如下所示

FUNCTION {makebold}{
  "\textbf{" swap$ * "}" * }
}

然后在调用日志名称时插入 makebold。

    % format journal, volume, number and pages
    % call with
    %   formatted.pages format.journal.vol.num.pages.check
FUNCTION { format.journal.vol.num.pages.check }
{ "journal" journal warning.if.empty
  duplicate$ empty$
  journal    empty$ and
  volume     empty$ and
  number     empty$ and
    { pop$ "" }
    { "\APACjournalVolNumPages{" journal "" makebold.check connect.check
      "}{" *                     volume  "" connect.check
      "}{" *                     number  "" connect.check
      "}{" *                     swap$   "" connect.check
      "}"  *
    }
  if$
}

与我引用的问题不同,可能是这不起作用的原因是文件只在定义以下函数“emphasize.check”的地方包含短语“emphasize”,而不在其他地方 - 正如您在上面看到的,期刊名称根本没有被强调。

    % emphasizes top of stack, call with
    %     "string" emphasize.check
FUNCTION {emphasize.check}
{ "\Bem{" swap$
  "}"     swap$
  enclose.check
}

那么,为什么我的参考文献列表中的期刊名称是斜体/强调的(.bst 文件既不包含“\textit”,也不包含任何类似内容),即使函数“emphasize”没有在任何地方使用?

我需要在这里处理另一个文件吗?

为了完成,可以从我的 dropbox 下载完整的 .bst 文件这里(142kb)。

调用参考书目并重现问题的 MWEmwe.bib如下:

\documentclass[12pt]{scrartcl}

\begin{filecontents}{mwe.bib}
% This file was created with JabRef 2.11.1.
% Encoding: UTF8

@Unpublished{Ham2015,
  Title                    = {Narcissism and Financial Reporting Quality},
  Author                   = {Charles Ham and Mark H. Lang and Nicholas Seybert and Sean Wang},
  Note                     = {Available at SSRN: http://ssrn.com/abstract=2581157 or http://dx.doi.org/10.2139/ssrn.2581157},
  Year                     = {2015}
}

@Article{Ham2013,
  Title                    = {Narcissism is a Bad Sign: {CEO} Signature Size, Investment, and Performance},
  Author                   = {Ham, Charles and Seybert, Nicholas and Wang, Sean and Lundblad, Justin Leiby and Sevilir, Merih and Tate, Geoff and Williams, Devin and Zarowin, Paul and Zheng, Yue},
  Journal                  = {UNC Kenan-Flagler Research Paper},
  Year                     = {2013},
  Number                   = {2013-1},
  Type                     = {Journal Article}
}

@Article{Wink1991,
  Title                    = {Two faces of narcissism},
  Author                   = {Wink, Paul},
  Journal                  = {Journal of Personality and Social Psychology},
  Year                     = {1991},
  Number                   = {4},
  Pages                    = {590},
  Volume                   = {61},
  ISSN                     = {1939-1315},
  Type                     = {Journal Article}
}
\end{filecontents}

\usepackage{apacite}

\begin{document}
blablabla    
\cite{Ham2013}
\cite{Ham2015}
\cite{Wink1991}

\bibliographystyle{apacite}
\bibliography{mwe}
\end{document}

答案1

您可以重新定义该命令(这是用于格式化期刊文章的\APACjournalVolNumPages格式化命令;请参阅apacite.bst当前(v6.03)手册):

\makeatletter
\renewcommand{\APACjournalVolNumPages}[4]{%
  \textbf{\Bem{#1}}%             journal
  \ifx\@empty#2\@empty
  \else
    \unskip, \Bem{#2}%  volume
  \fi
  \ifx\@empty#3\@empty
  \else
    \unskip({#3})%      issue number
  \fi
  \ifx\@empty#4\@empty
  \else
    \unskip, {#4}%      pages
  \fi
}
\makeatother

谢谢艾伦·芒恩感谢你注意到我的失踪\makeatletter- \makeatother。另外,请参阅第二部分nickie 的回答以便更优雅地实现这种方法。

编辑:或者,更符合您的问题精神,您可以修改文件.bst以实现相同的结果:

FUNCTION { format.journal.vol.num.pages.check }
{ "journal" journal warning.if.empty
  duplicate$ empty$
  journal    empty$ and
  volume     empty$ and
  number     empty$ and
    { pop$ "" }
    { "\APACjournalVolNumPages{\textbf{" journal "" connect.check
      "}}{" *                     volume  "" connect.check
      "}{" *                     number  "" connect.check
      "}{" *                     swap$   "" connect.check
      "}"  *
    }
  if$
}

回答你的第二个问题,期刊名称默认用斜体表示,因为它是用命令格式化的\Bem\let\emphapacite.sty

结果(两种方法都相同,使用您修改后的myapacite.bst):

myapacite 带有粗体期刊名称

完整 MWE (带有第一个选项且未修改myapacite.bst):

\documentclass[12pt]{scrartcl}

\begin{filecontents}{mwe.bib}
% This file was created with JabRef 2.11.1.
% Encoding: UTF8

@Unpublished{Ham2015,
  Title                    = {Narcissism and Financial Reporting Quality},
  Author                   = {Charles Ham and Mark H. Lang and Nicholas Seybert and Sean Wang},
  Note                     = {Available at SSRN: http://ssrn.com/abstract=2581157 or http://dx.doi.org/10.2139/ssrn.2581157},
  Year                     = {2015}
}

@Article{Ham2013,
  Title                    = {Narcissism is a Bad Sign: {CEO} Signature Size, Investment, and Performance},
  Author                   = {Ham, Charles and Seybert, Nicholas and Wang, Sean and Lundblad, Justin Leiby and Sevilir, Merih and Tate, Geoff and Williams, Devin and Zarowin, Paul and Zheng, Yue},
  Journal                  = {UNC Kenan-Flagler Research Paper},
  Year                     = {2013},
  Number                   = {2013-1},
  Type                     = {Journal Article}
}

@Article{Wink1991,
  Title                    = {Two faces of narcissism},
  Author                   = {Wink, Paul},
  Journal                  = {Journal of Personality and Social Psychology},
  Year                     = {1991},
  Number                   = {4},
  Pages                    = {590},
  Volume                   = {61},
  ISSN                     = {1939-1315},
  Type                     = {Journal Article}
}
\end{filecontents}

\usepackage{apacite}
\makeatletter
\renewcommand{\APACjournalVolNumPages}[4]{%
  \textbf{\Bem{#1}}%             journal
  \ifx\@empty#2\@empty
  \else
    \unskip, \Bem{#2}%  volume
  \fi
  \ifx\@empty#3\@empty
  \else
    \unskip({#3})%      issue number
  \fi
  \ifx\@empty#4\@empty
  \else
    \unskip, {#4}%      pages
  \fi
}
\makeatother
\begin{document}
blablabla    
\cite{Ham2013}
\cite{Ham2015}
\cite{Wink1991}

\bibliographystyle{myapacite}
\bibliography{mwe}
\end{document}

答案2

编辑:我不确定我是否理解了你的问题。期刊论文标题您希望以粗体和斜体显示的内容,或者期刊名称本身?首先阅读您的问题时,我假设是前者,因此我的回答的第一部分解决了这个问题。如果您想要的是后者,请阅读我的回答的第二部分,其中有一个比 Guho 在他的回答中建议的更简单的解决方案。


将标题排版为粗体和斜体

引自包的文档apacite,第 42 页 --- 巧合吗?我不这么认为…… :-)

目前已实现以下命令来格式化参考列表。如果您想要自定义它们,您可以研究文件 apacite.sty 中的源代码,将其复制到您自己的包文件中,并根据需要调整代码。

(剪辑)

\APACrefatitle   Title (article style, default upright)
\APACrefbtitle   Title (book style, default italicized)

因此,如果我正确理解了您想要做什么,那么只需在代码之后添加以下行即可\usepackage{apacite}

\renewcommand\APACrefatitle[2]{\textbf{\textit{#1}}}

也许复制包文件源代码的建议是误导性的;您可能不想为排版一篇论文而这样做,但如果这种情况经常发生,您会考虑这样做。您不需要触碰书目样式(.bst),因为包提供了您想要执行的操作的简单自定义。

但请注意,这只会改变文章,因此第一个未发表的关于哈姆的参考文献不会改变。

结果 1

如果您也想改变这一点,您也必须重新定义其他宏:

\renewcommand\APACrefbtitle[2]{\textbf{\textit{#1}}}

结果 2


以粗体和斜体显示期刊名称

之后\usepackage{apacite}你可以添加以下三行:

\let\oldAPACjournalVolNumPages\APACjournalVolNumPages
\renewcommand{\APACjournalVolNumPages}[4]{%
  \oldAPACjournalVolNumPages{\textbf{#1}}{#2}{#3}{#4}}

这使用了的现有定义\APACjournalVolNumPages,而不是重新定义它,并且仅确保期刊的名称为粗体(现有定义也将确保使用斜体)。

结果 3

相关内容