修改plain.bst文件

修改plain.bst文件

我想修改文件 plain.bst 以自定义我的参考书目。我想要几件东西:

  1. 名字以粗体显示后接日期(月年)
  2. 在作者姓名和文章或书籍标题、文章名称之间跳过一行。 在此处输入图片描述 最后,我希望在正文中(我使用 \cite{} 的地方)参考文献显示如下:[name-year],其中 name 是第一作者的姓名。对于这一点,我完全不知道该用什么!我给出的示例是使用 biber 获得的,我想将 bibtex 与 bst 文件一起使用。

答案1

这种定制的书目风格正是新吸水工程可能是最好的工具。使用 OP 建议的数据库文件的一个子集(main.bib),

@article{Abrahams1986,
  title = {Scaling description of the dielectric function near the mobility edge},
  author = {Abrahams, Elihu and Lee, P. A.},
  journal = {Phys. Rev. B},
  volume = {33},
  issue = {2},
  pages = {683--689},
  year = {1986},
  month = {1},
  publisher = {American Physical Society},
  url = {http://link.aps.org/doi/10.1103/PhysRevB.33.683}
}

@book{Nakayama2003,
  title = {Fractal Concepts in Condensed Matter Physics},
  series = {Springer Series in Solid-State Sciences},
  volume = {140},
  author = {Nakayama, Tsuneyoshi and Yakubo, Kousuke},
  address = {New York},
  publisher = {Springer},
  issn = {0171-1873},
  year = {2003}
}

@article{Chalker1988,
  title = {Scaling, diffusion, and the integer quantized Hall effect},
  author = {Chalker, J. T. and Daniell, G. J.},
  journal = {Phys. Rev. Lett.},
  volume = {61},
  issue = {5},
  pages = {593--596},
  year = {1988},
  month = {8},
  publisher = {American Physical Society},
  url = {http://link.aps.org/doi/10.1103/PhysRevLett.61.593}
}

@article{Chalker1990,
  journal = {Physica A: Statistical Mechanics and its Applications},
  volume = {167}, 
  issue = {1},
  month = {8},
  year = {1990},
  day = {1},
  pages = {253-258},
  title = {Scaling and eigenfunction correlations near a mobility edge},
  author = {J. T. Chalker}
}

@article{Pook1991,
  year = {1991},
  issn = {0722-3277},
  journal = {Zeitschrift für Physik B Condensed Matter},
  volume = {82},
  number = {2},
  title = {Multifractality and scaling in disordered mesoscopic systems},
  url = {http://dx.doi.org/10.1007/BF01324339},
  publisher = {Springer-Verlag},
  author = {Pook, Werner and Janßen, Martin},
  pages = {295-298}
}

我们可以整理以下(Bibulous 格式)样式文件(main.bst

TEMPLATES:
article = \textbf{<au>, (<year>[-<month.monthabbrev()>[-<day>]]):}\\ [\href{<url>}{<title>}|\href{<doi>}{<title>}|<title>|], \textit{<journal>} \textit{<volume>}([<number>|<issue>|]), [<startpage>--<endpage>|<startpage>|<eid>|].
book = \textbf{[<au>|<ed>|], (<year>[-<month.monthabbrev()>[-<day>]]):}\\ \textit{<title>}[, <edition_ordinal>~ed.][, <series>][ <issn>], <address>: <publisher>.

SPECIAL-TEMPLATES:
authorlist = <author.to_namelist()>
editorlist = <editor.to_namelist()>
authorname.n = [<authorlist.n.prefix> ]<authorlist.n.last>, <authorlist.n.first.initial()>.[ <authorlist.n.middle.initial()>.][, <authorlist.n.suffix>.]
au = <authorname.0>, ...{ \& }<authorname.9>
editorname.n = [<editorlist.n.prefix> ]<editorlist.n.last>, <editorlist.n.first.initial()>.[ <editorlist.n.middle.initial()>.][, <editorlist.n.suffix>.]
ed = <editorname.0>, ...{ \& }<editorname.5>
citelabel = <authorlist.0.last>-<year>
sortkey = <citelabel>

(请注意,上面的代码块给出了全部的文件。)最后,要实现格式化参考条目所要求的悬挂缩进格式,需要在main.tex文件序言中添加一些代码。取自@egreg 提出的解决方案, 我们可以用

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[paper=letterpaper, text={5.8in,8.5in},centering]{geometry}
\usepackage[colorlinks=True,urlcolor=blue,citecolor=black,breaklinks=true]{hyperref}
\usepackage{enumitem}
\makeatletter
   \renewcommand{\@biblabel}[1]{}
   \renewenvironment{thebibliography}[1]
      {\section*{\refname}%
         \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
         \begin{enumerate}[label={},itemindent=*,leftmargin=3em]
         \@openbib@code
         \sloppy
         \clubpenalty4000
         \@clubpenalty \clubpenalty
         \widowpenalty4000
         \sfcode`\.\@m}
         {\def\@noitemerr
            {\@latex@warning{Empty `thebibliography' environment}}%
      \end{enumerate}}
\makeatother

\begin{document}

{\noindent}Citations: \cite{Abrahams1986,Nakayama2003,Chalker1988,Chalker1990,Pook1991}

\bibliography{example8}
\bibliographystyle{example8}

\end{document}

产生如下所示的格式化结果:

格式化的参考文献列表

相关内容