[Tex/LaTex] modify plain.bst file

bibtex

I would like to modify the file plain.bst in order to customize my bibliography. I want several things :

  1. names in bold followed by date (month year)
  2. skip a line between name of authors and title of the article or book, name of the article.
    enter image description here
    Finally I would like that in the main text (where I use \cite{}) the reference appears as follow: [name-year] where name is the name of the first author. For this I don't know at all what to use!
    The example I gave is obtained using biber and I would like to use bibtex with a bst file.

Best Answer

This kind of custom bibliography style is exactly the type of thing that the new Bibulous project is probably the best tool for. Using a subset of the OP's suggested database file (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}
}

we can put together the following (Bibulous format) style file (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>

(Note that the above block of code gives the entire file.) Finally, achieving the requested format of a hanging indent for the formatted reference entries requires adding some code to the main.tex file preamble. Taking from @egreg's proposed solution, we can use

\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}

To produce the formatted result shown below:

Formatted reference list

Related Question