4

I would like to get the bibliography style of the Kelley's book General Topology: enter image description here enter image description here

I've been reading the options that LaTeX has here and there is no one like Kelley's book apparently.

Is it possible to get what I want?

Thanks

PD: I haven't said it but it is supposed to use the standard bibtex, i.e. data_base.bib + style_file.bst, but I don't mind if I would need extra packages. @AlanMunn says with that option is difficult. Please fell free to give another solution. I'm focus on only in the style, not in the way.

Addendum.

Following @moewe's advice I'm going to highlight what is the main part I want to recreate. It is obviously the format

Author (in sc) Cite (indented and restarted with each new atuthor).

The format of the proper cite doesn't mind. For example, I would like

Title (Edition), Editorial, Country (Year). Notes

for books and maybe

Title, Journal, Volume (in bf) Pages (year) for journals,

but it doesn't matter at all.

What I would like to have a field subtitle to be able to write subtitles right, because sometimes they are written in note fields.

And finally, if I use \cite{kuratowski:topologie2}, I want to obtain Kuratowski [2] automatically.

Thanks.

21
  • 1
    Well, "the standard bibtex" with \bibliography{bib_data_base} is not biblatex with which you tagged your question and which you included in the title... If this is indeed a requirement, please retag and edit the title.
    – gusbrs
    Commented Feb 20, 2018 at 22:30
  • 6
    The reason it doesn't have a LaTeX equivalent might probably be because this is a terrible style.
    – percusse
    Commented Feb 24, 2018 at 19:20
  • 3
    biblatex-philosophy's philosophy-modern style looks very, very remotely like this (if you squint really hard and close one one completely). It's quite different, but it shows that something like this is not entirely impossible. The biggest problem with a style like this is that it is so very unusual. People know and can deal with author-year citations and they know numeric citation styles. They even know numeric citation styles that add the author. But the fact that the number resets for each author is definitely unusual at first.
    – moewe
    Commented Feb 24, 2018 at 19:33
  • 2
    It's subjective of course but few obvious ones are; can't handle same- or similar-named authors (load on the reader for no good reason), can't handle citing multiple authors and so on.
    – percusse
    Commented Feb 24, 2018 at 19:38
  • 1
    You may want to emphasise in your question what particularly it is about this style that you want to recreate. Writing a complete style is a huge ask, and such requests are not really suitable on this site. You may have a better chance of getting an answer if you focus on one particular abstract question. Note that the style is inconsistent when it comes to punctuation: Compare an contrast Kuratowski [1] and Landau [1].
    – moewe
    Commented Feb 24, 2018 at 19:46

1 Answer 1

14
+100

I focused on the 'interesting' bit of the style: The author+number citation and rough bibliography layout. The remaining tweaks should be doable with a bit of research on this site.

If we base our style on biblatex-philosophy's philosophy-modern we only need to make sure that citations are not 'author year', but 'author number' instead.

I can't think of a simple way to do that at the moment (feature request is out: https://github.com/plk/biblatex/issues/718), so I came up with the following. We pretend that we use an alphabetic style that uses only the author names in its label. Normally style=alphabetic uses only bits of the author name and the year (e.g. SR98, Knu84). If a label is ambiguous, Biber calculates an extraalpha value (e.g. Knu86a, Knu86b). Since our labels are the names only, extraalpha would get us 'Nussbaum' (if there is no other work by 'Nussbaum') and 'Knutha', 'Knuthb'. That extraalpha is almost our number: If there is no extraalpha ('Nussbaum') we take 1, otherwise extraalpha is what we go with.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=philosophy-modern, backend=biber, labelalpha, giveninits, uniquename=init, mergedate=false, volnumformat=plain]{biblatex}
\addbibresource{biblatex-examples.bib}


\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{shorthand}
    \field{label}
    \field{labelname}
  }
}

\renewbibmacro*{relateddate}{%
  \setunit*{\addspace}%
  \printtext[parens]{\printdate}}
\renewbibmacro*{commarelateddate}{\usebibmacro{relateddate}}

\DeclareFieldFormat{extraalpha}{\mkbibbrackets{#1}}
\renewbibmacro{date+extradate}{%
  \postsepyear{%
    \usebibmacro{extralabel}}}

\newbibmacro{extralabel}{%
  \iffieldundef{extraalpha}
    {\printtext[extraalpha]{1}}
    {\printfield{extraalpha}}}

\newbibmacro{cite:extralabel}{%
  \printtext[bibhyperref]{\usebibmacro{extralabel}}}

\makeatletter
\renewbibmacro*{cite:AY:noshorthand}{%
  \ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \usebibmacro{cite:reinit}}
       {\iffieldequals{namehash}{\cbx@lasthash}
          {\setunit{\addcomma\space}%
           \usebibmacro{cite:extralabel}}
          {\printnames{labelname}%
           \setunit{\addspace}%
           \usebibmacro{cite:extralabel}%
           \savefield{namehash}{\cbx@lasthash}}}}
\makeatother

\DeclareNameAlias{sortname}{given-family}
\AtBeginBibliography{\renewcommand*{\mkbibnamefamily}{\textsc}}

\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}

\begin{document}
\cite{sigfridsson,worman,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

enter image description here


biblatex 3.12 features a new extraname counter that we can use here instead of the hack with extraalpha. Simply replace extraalpha with extraname in the code above and drop \DeclareLabelalphaTemplate and the labelalpha option.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=philosophy-modern, backend=biber, giveninits, uniquename=init, mergedate=false, volnumformat=plain]{biblatex}
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{relateddate}{%
  \setunit*{\addspace}%
  \printtext[parens]{\printdate}}
\renewbibmacro*{commarelateddate}{\usebibmacro{relateddate}}

\renewbibmacro{date+extradate}{%
  \postsepyear{%
    \usebibmacro{extralabel}}}

\DeclareFieldFormat{extraname}{\mkbibbrackets{#1}}
\newbibmacro{extralabel}{%
  \iffieldundef{extraname}
    {\printtext[extraname]{1}}
    {\printfield{extraname}}}

\newbibmacro{cite:extralabel}{%
  \printtext[bibhyperref]{\usebibmacro{extralabel}}}

\makeatletter
\renewbibmacro*{cite:AY:noshorthand}{%
  \ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \usebibmacro{cite:reinit}}
       {\iffieldequals{namehash}{\cbx@lasthash}
          {\setunit{\addcomma\space}%
           \usebibmacro{cite:extralabel}}
          {\printnames{labelname}%
           \setunit{\addspace}%
           \usebibmacro{cite:extralabel}%
           \savefield{namehash}{\cbx@lasthash}}}}
\makeatother

\DeclareNameAlias{sortname}{given-family}
\AtBeginBibliography{\renewcommand*{\mkbibnamefamily}{\textsc}}

\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}

\begin{document}
\cite{sigfridsson,worman,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

The output is the same.

11
  • Very clever! I hadn't thought about using the alpha style.
    – Alan Munn
    Commented Feb 27, 2018 at 13:17
  • @AlanMunn It isn't ideal as the alphabetic style doesn't do name disambiguation as nicely as authoryear, but I couldn't think of a better way to get the numbers.
    – moewe
    Commented Feb 27, 2018 at 13:19
  • Why does it non work for me? :( . I have only replaced your bib file to my own file and cite other books.
    – Dog_69
    Commented Feb 28, 2018 at 18:08
  • 1
    @Dog_69 Did you manage to run the exact MWE from my answer without any modifications? Since the answer requires biblatex+Biber and you used to work with BibTeX, there may be things you need to modify in your workflow. Please have a look at tex.stackexchange.com/q/25701/35864, tex.stackexchange.com/q/154751/35864, tex.stackexchange.com/q/63852/35864. I need to know what you tried, what exactly is not working, what warnings and errors you get.
    – moewe
    Commented Mar 1, 2018 at 7:46
  • I only change my` bib` file and the cited book. I'm using TeXStudio so I've follow the steps of tex.stackexchange.com/questions/154751/… but it doesn't work. An error messages appears: Found biblatex control file version 3.4, expected version 3.3. This means that your biber (2.7) and biblatex (3.10) versions are incompatible. So I don't get the bibliography list and all references appear in bold (as tex.stackexchange.com/questions/63852/… says).
    – Dog_69
    Commented Mar 1, 2018 at 20:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .