根据我们大学的规定,如果使用了某个期刊的文章,则应该用//分隔。
例:Lyness JN 和 Jespersen D. 三角形的中等度对称求积规则//J. Inst. Math. Appl.
我该怎么做?我必须更改 *.bst 文件中的某些内容吗?
答案1
我认为您需要破解plain.bst
。用以下内容替换article
中的函数似乎可以解决问题:plain.bst
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
%new.block
"//" *
crossref missing$
{ journal emphasize *
format.vol.num.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
}
我个人认为 bst 语法非常痛苦,但你可以在 Patashnik 的设计 BibteX 文件。
我上面所做的就是注释掉该new.block
行,"\\" *
在标题后添加斜线,然后修改期刊名称的输出,这样就不会添加标点符号。我相信有更好的方法来做到这一点......
答案2
肮脏的黑客
这不涉及更改任何.bst
文件,但肯定会扰乱你的其余参考书目。如果我们查看.bbl
由创建的文件,bibtex
我们会发现
\newblock {\em The Journal of Narrative Technique}, ...
因此我们可以重新定义\em
以扩展为// em
。
% arara: pdflatex
% arara: bibtex
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\begin{document}
\cite{doody}
{\em Emphasized text}
\let\oldem=\em % save \em
\def\em{//\space\oldem}
\bibliographystyle{plain}
\bibliography{biblatex-examples.bib}
\let\em=\oldem % restore \em
{\em Emphasized text}
\end{document}
使用biblatex
一切biblatex
都变得简单。我们使用
\renewbibmacro{in:}{...}
到隐藏“在:”期刊标题前
\DeclareFieldFormat[article]{journaltitle}{// \emph{#1}}
得到两个斜线。
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage{biblatex}
\renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
\DeclareFieldFormat[article]{journaltitle}{// \emph{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{doody}
\printbibliography
\end{document}
(biblatex
显示比bibtex
默认更多的字段。)