이것은 2개의 답변된 질문에 대한 후속 질문입니다.biblatex에서 2가지 종류의 속기 목록을 설정할 수 있나요?그리고참고문헌에서 관련 항목의 제목만 인쇄하기 위해 biblatex를 사용할 수 있습니까?
나는 이러한 답변을 결합하여 섹션별 약어 목록과 섹션별 참고문헌을 생성하려고 합니다.
프레게 작품의 약어 부분에 독일어 제목이 아닌 관련 영어 제목을 붙이고 싶습니다.
a와 a를 정의하는 두 번째 질문에 대한 David Purton의 대답은 참고 relatedtype={englishtitle}
문헌 \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"을 뒤에 어떻게 붙이는지,PCN, 그리고 날짜 이전에?
또 다른 몇 가지 질문:
- 『심판의 본질』 뒤에는 마침표가 있지만 뒤에는 쉼표가 있다.기호 논리에 대한 조사; 어떻게 균일하게 쉼표로 만들 수 있나요?
- 제목의 닫는 인용문(예: "심판의 본질") 안에 쉼표를 넣을 수 있나요?
답변1
사용
\DeclareBibliographyDriver{fregeabbrevs}{%
\iffieldequalstr{relatedtype}{englishtitle}
{\entrydata{\thefield{related}}{\usebibmacro{title}}}
{}%
\newunit\newblock
\printdate}
영어 제목을 얻으려면.
\DeclareBibliographyDriver
귀하의 구두점은 모두 s이지만 후자가 사용하는 동안 \DeclareBibliographyDriver{moreabbrevs}
사용 되기 때문에 균일하지 않습니다 . ; 를 정의 하고 사용할 수 있습니다 . 아니면 어디에서나 사용합니다. 무엇이 더 나은지는 실제 참고문헌에서 원하는 것이 무엇인지에 따라 달라집니다. 거기에 쉼표도 추가하려면 ; 를 사용하세요. 거기에서 완전 정지를 유지하려면 다른 곳에서 명시적으로 이동해야 합니다.\newunit
\setunit{\addcomma\space}
\renewcommand*{\newunitpunct}{\addcomma\space}
\newunit
\setunit{\addcomma\space}
\renewcommand*{\newunitpunct}{\addcomma\space}
\setunit{\addcomma\space}
babel
언어 옵션 으로 로드하면 쉼표가 따옴표 안으로 이동됩니다 american
.