肮脏的黑客

肮脏的黑客

根据我们大学的规定,如果使用了某个期刊的文章,则应该用//分隔。

例: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默认更多的字段。)

在此处输入图片描述

相关内容