使用 bibtex 取得 Kelley 的書《通用拓樸》的參考書目風格

使用 bibtex 取得 Kelley 的書《通用拓樸》的參考書目風格

我想要bibliography style一本凱利的書通用拓撲: 在此輸入影像描述 在此輸入影像描述

LaTeX我一直在閱讀有的選項這裡顯然沒有人能像凱利的書那樣。

有可能得到我想要的嗎?

謝謝

PD:我沒有說過,但它應該使用標準bibtex,即data_base.bib+ style_file.bst,但我不介意是否需要額外的軟體包。 @AlanMunn 說這個選擇很困難。請隨意給出另一個解決方案。我只關注風格,而不是方式。

附錄

根據 @moewe 的建議,我將強調我想要重新創建的主要部分。顯然是格式

作者(在sc)引用(縮排並與每個新作者重新開始)。

正確引用的格式並不重要。例如,我想

標題(版本)、社論、國家(年份)。筆記

對於書籍,也許

期刊的標題、期刊、卷數(中bf)頁數(年份),

但這根本不重要。

我想要一個領域字幕能夠正確地編寫字幕,因為有時它們是用筆記字段。

最後,如果我使用\cite{kuratowski:topologie2},我想自動取得 Kuratowski [2]。

謝謝。

答案1

我專注於風格中“有趣”的部分:作者+引文編號和粗略的參考書目佈局。剩下的調整應該可以透過在這個網站上進行一些研究來實現。

如果我們的風格是基於biblatex-philosophyphilosophy-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}

在此輸入影像描述


biblatex3.12 具有一個新的extraname計數器,我們可以在這裡使用它來代替extraalpha.只需將上面程式碼中的替換extraalpha為並刪除該選項即可。extraname\DeclareLabelalphaTemplatelabelalpha

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

輸出是相同的。

相關內容