Me gustaría conseguir bibliography style
el libro de Kelley.Topología general:
He estado leyendo las opciones que LaTeX
tiene.aquíy aparentemente no hay nadie como el libro de Kelley.
¿Es posible conseguir lo que quiero?
Gracias
PD: No lo he dicho pero se supone que debe usar el estándar bibtex
, es decir data_base.bib
+ style_file.bst
, pero no me importa si necesitaría paquetes adicionales. @AlanMunn dice que esa opción es difícil. No dude en dar otra solución. Me concentro sólo en el estilo, no en la forma.
Apéndice.
Siguiendo el consejo de @moewe voy a resaltar cuál es la parte principal que quiero recrear. obviamente es el formato
Autor (en sc
) Cita (sangrado y reiniciado con cada nuevo autor).
No importa el formato de la cita adecuada. Por ejemplo, me gustaría
Título (Edición), Editorial, País (Año). Notas
para libros y tal vez
Título, Revista, Volumen (en bf
) Páginas (año) para revistas,
pero no importa en absoluto.
Lo que me gustaría tener un camposubtitularpoder escribir bien los subtítulos, porque a veces están escritos ennotacampos.
Y finalmente, si uso \cite{kuratowski:topologie2}
, quiero obtener Kuratowski [2] automáticamente.
Gracias.
Respuesta1
Me concentré en la parte "interesante" del estilo: el autor + la cita numérica y el diseño aproximado de la bibliografía. Los ajustes restantes deberían poder realizarse con un poco de investigación en este sitio.
Si basamos nuestro estilo en biblatex-philosophy
's, philosophy-modern
solo necesitamos asegurarnos de que las citas no sean 'año del autor', sino 'número de autor'.
No puedo pensar en una forma sencilla de hacerlo en este momento (la solicitud de función ya no está disponible:https://github.com/plk/biblatex/issues/718), así que se me ocurrió lo siguiente. Pretendemos utilizar un estilo alfabético que utiliza sólo los nombres de los autores en su etiqueta. Normalmente style=alphabetic
utiliza sólo fragmentos del nombre del autor y el año (por ejemplo, SR98, Knu84). Si una etiqueta es ambigua, Biber calcula un extraalpha
valor (por ejemplo, Knu86a, Knu86b). Dado que nuestras etiquetas son sólo los nombres, extraalpha
obtendríamos 'Nussbaum' (si no hay otro trabajo de 'Nussbaum') y 'Knutha', 'Knuthb'. Ese extraalpha
es casi nuestro número: si no hay extraalpha
('Nussbaum') tomamos 1, de lo contrario extraalpha
es lo que elegimos.
\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 presenta un nuevo extraname
contador que podemos usar aquí en lugar del truco con extraalpha
. Simplemente reemplácelo extraalpha
con extraname
el código anterior y suelte \DeclareLabelalphaTemplate
la labelalpha
opción.
\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}
La salida es la misma.