可以在參考書目和縮寫列表中使用相關條目的標題嗎?

可以在參考書目和縮寫列表中使用相關條目的標題嗎?

這是 2 個已回答問題的後續回答:biblatex中可以設定2種速記清單嗎?可以使用 biblatex 僅列印參考書目中相關條目的標題嗎?

我試著將這些答案結合起來,產生一個縮寫詞分段列表和一個分段參考書目。

我希望弗雷格作品的縮寫部分不給出德文標題,而給出相關的英文標題。

David Purton 對第二個問題的回答,定義 arelatedtype={englishtitle}和 a\newbibmacro*{related:englishtitle}解決了參考書目中弗雷格條目給出英文標題的問題。

在下面的 MWE 中,我嘗試放入\usebibmacro{related:englishtitle}一個新的驅動程序\DeclareBibliographyDriver{fregeabbrevs},以在縮寫列表部分中列印英文弗雷格標題:

\documentclass{book}

\usepackage[backend=biber,style=authoryear]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@Inproceedings{Frege1897a,
  author        = {Frege, Gottlob},
  title         = {Über die Begriffsschrift des Herrn Peano und meine eigene},
  booktitle     = {Berichte über die Verhandlungen der Königlich Sächsischen Gesellschaft der Wissenschaften zu Leipzig: Mathematisch-physische Klasse},
  date          = {1897},
  pages         = {361--378},
  volume        = {48},
  related       = {Frege1984h},
  relatedtype   = {englishtitle},
  shorthand     = {PCN},
}
@Inbook{Frege1984h,
  author   = {Frege, Gottlob},
  title    = {On Mr. Peano's Conceptual Notation and My Own},
  date     = {1984},
  pages    = {234--248},
  crossref = {Frege1984},
}
@Book{Frege1984,
  author     = {Frege, Gottlob},
  title      = {Collected Papers on Mathematics, Logic, and Philosophy},
  date       = {1984},
  location   = {Oxford},
  publisher  = {Blackwell},
  translator = {Black, Max},
  editor     = {McGuinness, Brian},
  shorthand  = {CP},
}
@Article{Moore1899,
  author       = {Moore, G. E.},
  title        = {The Nature of Judgment},
  journaltitle = {Mind},
  date         = {1899},
  volume       = {8},
  number       = {30},
  pages        = {176--193},
  shorthand    = {NJ},
}
@Book{Lewis1918,
  author         = {Lewis, C. I.},
  title          = {A Survey of Symbolic Logic},
  date           = {1918},
  location       = {Berkeley, CA},
  publisher      = {University of California Press},
  series         = {Semicentennial publications of the University of California, 1868-1918},
  shorthand  = {SL}
}
@Collection{Beaney2013,
  editor    = {Michael Beaney},
  title     = {The Oxford Handbook of the History of Analytic Philosophy},
  date      = {2013},
  publisher = {Oxford University Press},
  location  = {Oxford},
}

\end{filecontents}
\addbibresource{\jobname.bib}

% Main primary sources categories
\newcommand*{\generateauthorcategory}[3]{%   
    \DeclareBibliographyCategory{by#1}%   
    \DeclareIndexNameFormat{cat#1}{%     
        \ifboolexpr{
            test {\ifdefstring{\namepartfamily}{#2}}         
            and 
            test {\ifdefstring{\namepartgiven}{#3}}
        }%
        {\addtocategory{by#1}{\thefield{entrykey}}}       
        {}}%   
    \AtDataInput{\indexnames[cat#1][1-999]{author}}}

\generateauthorcategory{frege}{Frege}{Gottlob}
\generateauthorcategory{moore}{Moore}{G.\bibnamedelimi E.}

% Filter for other, i.e., not main, primary sources
\defbibfilter{notmainprimary}{%
not category=byfrege %
and not category=bymoore %
}

% Check to distinguish primary from secondary sources
\defbibcheck{primarysource}{%
\iffieldint{year}
{\ifnumless{\thefield{year}}{1936}
{}
{\skipentry}}
{\skipentry}}
\defbibcheck{secondarysource}{%
\iffieldint{year}
{\ifnumgreater{\thefield{year}}{1935}
{}
{\skipentry}}
{\skipentry}}

% Generating entries for the 3 abbreviations lists
\DeclareBiblistFilter{fregeabbrevs}{
    \filter[type=field,filter=shorthand]
}
\DeclareBiblistFilter{mainabbrevs}{
    \filter[type=field,filter=shorthand]
}
\DeclareBiblistFilter{moreabbrevs}{
    \filter[type=field,filter=shorthand]
}

% Sorting the abbreviations lists
\DeclareSortingTemplate{fregeabbrevs}{ \sort[final]{ \field{sortshorthand} } \sort{ \field{shorthand} } }
\DeclareSortingTemplate{mainabbrevs}{ \sort[final]{ \field{sortshorthand} } \sort{ \field{shorthand} } }
\DeclareSortingTemplate{moreabbrevs}{ \sort[final]{ \field{sortshorthand} } \sort{ \field{shorthand} } }

%
\newbibmacro*{related:englishtitle}[1]{%
  \entrydata{#1}{%
    \printtext{English title:}%
    \setunit{\addspace}%
    \usebibmacro{title}}}

% Drivers for printing abbreviations lists
\DeclareBibliographyDriver{fregeabbrevs}{%   
\usebibmacro{related:englishtitle}%   
\newunit\newblock   
\printdate}
\DeclareBibliographyDriver{mainabbrevs}{%   
\usebibmacro{title}%   
\newunit\newblock   
\printdate}
\DeclareBibliographyDriver{moreabbrevs}{%
\renewbibmacro*{date+extradate}{}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\addcomma\space}\newblock
\usebibmacro{title}%
\setunit{\addcomma\space}\newblock
\printdate}

% Environment for abbreviation lists, to italicize by \emph the shorthands
\defbibenvironment{abbrevs}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{\emph{##1}\hss}}}
{\endlist}
{\item}

% Titles for 4 parts of Bibliography: two main authors, other primary sources, secondary sources
\defbibheading{subbibtitleonly}[\bibname]{%
\section*{#1}}

\begin{document}
\chapter*{Abbreviations}

Full details of these works are in the Bibliography.

\printbiblist[env=abbrevs,title={Works of Frege}, heading=subbibtitleonly, category=byfrege]{fregeabbrevs}
\printbiblist[env=abbrevs,title={Works of Moore}, heading=subbibtitleonly, category=bymoore]{mainabbrevs}
\printbiblist[env=abbrevs,title={Other Primary Works}, heading=subbibtitleonly, check=primarysource, notcategory=byfrege, notcategory=bymoore]{moreabbrevs}

\nocite{Frege1897a,Moore1899,Lewis1918,Beaney2013}

\chapter*{Bibliography}

\printbibliography[title={Works by Frege}, heading=subbibtitleonly, category=byfrege]
\printbibliography[title={Works by Moore}, heading=subbibtitleonly, category=bymoore]
\printbibliography[title={Other Primary Sources}, heading=subbibtitleonly, check=primarysource, notcategory=byfrege, notcategory=bymoore]
\printbibliography[title={Secondary Sources}, heading=subbibtitleonly, check=secondarysource, notcategory=byfrege, notcategory=bymoore]

\end{document}

但結果根本沒有產生任何標題:

在此輸入影像描述

那麼,如何將英文標題「On Mr. Peano's Conceptual Notation and My Own」放在後面聚氯乙烯,以及日期之前?

另外幾個問題:

  • 「The Nature of Judgement」後面有一個句號,但後面有一個逗號符號邏輯綜述;我怎樣才能讓它們統一逗號?
  • 逗號可以出現在標題的結束引號內,即:「判斷的本質」嗎?

答案1

使用

\DeclareBibliographyDriver{fregeabbrevs}{%   
  \iffieldequalstr{relatedtype}{englishtitle}
    {\entrydata{\thefield{related}}{\usebibmacro{title}}}
    {}%   
  \newunit\newblock   
  \printdate}

以獲得英文標題。

您的標點符號不統一,因為所有\DeclareBibliographyDrivers but\DeclareBibliographyDriver{moreabbrevs}使用\newunit,而後者使用\setunit{\addcomma\space}。您可以定義\renewcommand*{\newunitpunct}{\addcomma\space}並使用\newunit;或者你\setunit{\addcomma\space}到處都用。哪個更好取決於您在實際參考書目中想要什麼。如果您還想在那裡使用逗號,請使用\renewcommand*{\newunitpunct}{\addcomma\space};如果你想在那裡保留句號,你需要在\setunit{\addcomma\space}其他地方明確。

babel如果使用語言選項加載,逗號將移至引號內american

相關內容