
我想要bibliography style
一本凱利的書通用拓撲:
LaTeX
我一直在閱讀有的選項這裡顯然沒有人能像凱利的書那樣。
有可能得到我想要的嗎?
謝謝
PD:我沒有說過,但它應該使用標準bibtex
,即data_base.bib
+ style_file.bst
,但我不介意是否需要額外的軟體包。 @AlanMunn 說這個選擇很困難。請隨意給出另一個解決方案。我只關注風格,而不是方式。
附錄。
根據 @moewe 的建議,我將強調我想要重新創建的主要部分。顯然是格式
作者(在sc
)引用(縮排並與每個新作者重新開始)。
正確引用的格式並不重要。例如,我想
標題(版本)、社論、國家(年份)。筆記
對於書籍,也許
期刊的標題、期刊、卷數(中bf
)頁數(年份),
但這根本不重要。
我想要一個領域字幕能夠正確地編寫字幕,因為有時它們是用筆記字段。
最後,如果我使用\cite{kuratowski:topologie2}
,我想自動取得 Kuratowski [2]。
謝謝。
答案1
我專注於風格中“有趣”的部分:作者+引文編號和粗略的參考書目佈局。剩下的調整應該可以透過在這個網站上進行一些研究來實現。
如果我們的風格是基於biblatex-philosophy
,philosophy-modern
我們只需要確保引用不是“作者年份”,而是“作者編號”。
我目前想不出一個簡單的方法來做到這一點(功能請求已出:https://github.com/plk/biblatex/issues/718),所以我想出了以下內容。我們假設我們使用的字母樣式僅在標籤中使用作者姓名。通常style=alphabetic
只使用作者姓名和年份的位元(例如SR98、Knu84)。如果標籤不明確,Biber 會計算一個extraalpha
值(例如 Knu86A, 克努86乙)。由於我們的標籤只是名稱,extraalpha
因此我們會得到“Nussbaum”(如果“Nussbaum”沒有其他作品)和“Knutha”、“Knuthb”。這extraalpha
幾乎就是我們的數字:如果沒有extraalpha
(「Nussbaum」),我們就取 1,否則extraalpha
就是我們的值。
\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 具有一個新的extraname
計數器,我們可以在這裡使用它來代替extraalpha
.只需將上面程式碼中的替換extraalpha
為並刪除該選項即可。extraname
\DeclareLabelalphaTemplate
labelalpha
\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}
輸出是相同的。