Gostaria de receber bibliography style
o livro do KelleyTopologia Geral:
Eu estive lendo as opções que LaTeX
temaquie 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-modern
precisamos 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=alphabetic
utiliza apenas bits do nome do autor e do ano (por exemplo, SR98, Knu84). Se um rótulo for ambíguo, Biber calcula um extraalpha
valor (por exemplo, Knu86a, Knu86b). Como nossos rótulos são apenas os nomes, extraalpha
nos 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}
biblatex
3.12 apresenta um novo extraname
contador que podemos usar aqui em vez do hack com extraalpha
. Simplesmente substitua extraalpha
por extraname
no código acima e solte \DeclareLabelalphaTemplate
a labelalpha
opçã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.