Obtenha o estilo bibliográfico do livro Topologia geral de Kelley usando bibtex

Obtenha o estilo bibliográfico do livro Topologia geral de Kelley usando bibtex

Gostaria de receber bibliography styleo livro do KelleyTopologia Geral: insira a descrição da imagem aqui insira a descrição da imagem aqui

Eu estive lendo as opções que LaTeXtemaquie aparentemente não há ninguém como o livro de Kelley.

É possível conseguir o que quero?

Obrigado

PD: Eu não disse isso, mas é suposto usar o padrão bibtex, ou seja, data_base.bib+ style_file.bst, mas não me importo se precisar de pacotes extras. @AlanMunn diz que essa opção é difícil. Fique à vontade para fornecer outra solução. Estou focado apenas no estilo, não no jeito.

Termo aditivo.

Seguindo o conselho de @moewe vou destacar qual é a parte principal que quero recriar. É obviamente o formato

Autor (in sc) Citar (recuado e reiniciado a cada novo autor).

O formato da citação adequada não importa. Por exemplo, eu gostaria

Título (Edição), Editorial, País (Ano). Notas

para livros e talvez

Título, Periódico, Volume (em bf) Páginas (ano) para periódicos,

mas isso não importa nada.

O que eu gostaria de ter um campolegendapoder escrever legendas direito, porque às vezes elas são escritas emobservaçãoCampos.

E finalmente, se eu usar \cite{kuratowski:topologie2}, quero obter Kuratowski [2] automaticamente.

Obrigado.

Responder1

Concentrei-me na parte 'interessante' do estilo: a citação do autor + número e o layout aproximado da bibliografia. Os ajustes restantes devem ser possíveis com um pouco de pesquisa neste site.

Se basearmos nosso estilo em biblatex-philosophy's, philosophy-modernprecisamos apenas ter certeza de que as citações não sejam 'ano do autor', mas sim 'número do autor'.

Não consigo pensar em uma maneira simples de fazer isso no momento (a solicitação de recurso foi lançada:https://github.com/plk/biblatex/issues/718), então eu descobri o seguinte. Pretendemos usar um estilo alfabético que usa apenas os nomes dos autores em seu rótulo. Normalmente style=alphabeticutiliza apenas bits do nome do autor e do ano (por exemplo, SR98, Knu84). Se um rótulo for ambíguo, Biber calcula um extraalphavalor (por exemplo, Knu86a, Knu86b). Como nossos rótulos são apenas os nomes, extraalphanos daria 'Nussbaum' (se não houver outro trabalho de 'Nussbaum') e 'Knutha', 'Knuthb'. Esse extraalphaé quase o nosso número: se não houver extraalpha('Nussbaum'), pegamos 1, caso contrário, extraalphaé o que escolhemos.

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

insira a descrição da imagem aqui


biblatex3.12 apresenta um novo extranamecontador que podemos usar aqui em vez do hack com extraalpha. Simplesmente substitua extraalphapor extranameno código acima e solte \DeclareLabelalphaTemplatea labelalphaopção.

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

A saída é a mesma.

informação relacionada