基于这问题,我有一个问题。在我的参考文献列表中,我想让期刊标题既突出又加粗(而不是像现在这样只突出)。
按照上述问题中列出的步骤,我尝试定义自己的函数,如下所示
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
即\emph
。apacite.sty
结果(两种方法都相同,使用您修改后的myapacite.bst
):
完整 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
),因为包提供了您想要执行的操作的简单自定义。
但请注意,这只会改变文章,因此第一个未发表的关于哈姆的参考文献等不会改变。
如果您也想改变这一点,您也必须重新定义其他宏:
\renewcommand\APACrefbtitle[2]{\textbf{\textit{#1}}}
以粗体和斜体显示期刊名称
之后\usepackage{apacite}
你可以添加以下三行:
\let\oldAPACjournalVolNumPages\APACjournalVolNumPages
\renewcommand{\APACjournalVolNumPages}[4]{%
\oldAPACjournalVolNumPages{\textbf{#1}}{#2}{#3}{#4}}
这使用了的现有定义\APACjournalVolNumPages
,而不是重新定义它,并且仅确保期刊的名称为粗体(现有定义也将确保使用斜体)。