나는 종종 여러 권을 포함하여 여러 섹션(또는 부분)으로 나누어져 있는 고전 철학자의 전집을 인용해야 합니다. 다음은 올바른 형식의 예입니다.
볼프, 크리스티안 폰(1962).철학 프리마시브 온톨로지아. 에드. 장 에콜 지음.Gesammelte Werke. Abteilung 2: Lateinische Schriften, Bd. 3. 힐데스하임: 올름스.
이 출력을 생성하도록 biblatex에 지시하는 방법을 알 수 없습니다. 아래 참조와 같이 "part" 및 "volume" 필드를 사용해 보았습니다.
@Book{Wolff1962,
Title = {Philosophia prima sive Ontologia},
Author = {Wolff, Christian von},
Editor = {Jean Ecole},
Publisher = {Olms},
Address = {Hildesheim},
Year = {1962},
Part = {Abt. 2: Lateinische Schriften},
Maintitle = {Gesammelte Werke},
Volume = {3},
Language = {german}
}
불행하게도 biblatex는 부품이 부피에 종속되어 매우 다른 출력을 생성한다고 생각하는 것 같습니다. 또한 책 제목 앞에 메인 제목이 인쇄됩니다. 또한 이와 같은 항목(문서 언어는 영어)에 대해 부품 및 볼륨에 대한 현지화된(독일어) 약어를 갖고 싶습니다. 언어 태그가 이를 처리하겠지만 분명히 그렇지는 않습니다. 출력은 다음과 같습니다.
볼프, 크리스티안 폰(1962).Gesammelte Werke. Vol. 3.2: Lateinische Schriften:철학 프리마시브 온톨로지아. 에드. 장 에콜 지음. 힐데스하임: 옴스.
제안해 주셔서 감사합니다.
편집: 라텍스 및 (포함) 턱받이 참조가 포함된 MWE:
\documentclass{article}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Wolff1962,
Title = {Philosophia prima sive Ontologia},
Author = {Wolff, Christian von},
Editor = {Jean Ecole},
Publisher = {Olms},
Year = {1962},
Address = {Hildesheim},
Language = {German},
Volume = {3},
Maintitle = {Gesammelte Werke},
Owner = {stefano},
Part = {2: Lateinische Schriften}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
A citation of a multi-part work: \cite{Wolff1962}
\printbibliography
\end{document}
최종 편집: Carols의 솔루션을 통합하고 약간 수정하여 MWE를 수정했습니다.
\documentclass{article}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BookInGesamm{Wolff1962,
Title = {Philosophia prima sive Ontologia},
Author = {Wolff, Christian von},
Editor = {Jean Ecole},
Publisher = {Olms},
Year = {1962},
Address = {Hildesheim},
langid = {german},
Volume = {3},
Maintitle = {Gesammelte Werke},
Part = {2: Lateinische Schriften}
}
@Inbook{Pogliano2011,
Title = {At the Periphery of the Rising Empire: The Case of Italy (1945-1968)},
Author = {Claudio Pogliano},
Editor = {Stefano Franchi and Francesco Bianchini},
Pages = {119-147},
Publisher = {Rodopi},
Year = {2011},
Address = {Amsterdam},
Booktitle = {The Search for a Theory of Cognition: Early Mechanisms and New Ideas}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[BookInGesamm]{title}{{\mkbibemph{#1}}}
\DeclareBibliographyDriver{bookingesamm}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
%\printlist{language}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\newbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield[default]{part}%
\setunit{\addcomma\space}
\printfield{volume}}}%
\usebibmacro{booktitle}%
\newunit}
\begin{document}
A citation of a multi-part work: \cite{Wolff1962} and a citation of a real inbook ref: \cite{Pogliano2011}
\printbibliography
\end{document}
답변1
를 사용하는 것이 더 낫다고 생각합니다 inbook
. 참고문헌의 항목에 다른 언어를 사용하려면 항목에 및 bibltex 옵션을 추가 해야 langid
합니다 .autolang=other
language=autobib
inbook
필요한 주문을 얻기 위해 수정했습니다 . 하지만 book
더 좋다고 생각되면 드라이버를 수정할 수 있습니다 .
\documentclass{article}
\begin{filecontents}{wolff.bib}
@inBook{Wolff1962,
Title = {Philosophia prima sive Ontologia},
Author = {Wolff, Christian von},
Editor = {Jean Ecole},
Publisher = {Olms},
Address = {Hildesheim},
Year = {1962},
Part = {Abt. 2: Lateinische Schriften},
Maintitle = {Gesammelte Werke},
Volume = {3},
langid = {german}
}
\end{filecontents}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
\addbibresource{wolff.bib}
\DeclareFieldFormat[inbook]{title}{{\mkbibemph{#1}}}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
%\printlist{language}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\newbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield[default]{part}%
\setunit{\addcomma\space}
\printfield{volume}}}%
\usebibmacro{booktitle}%
\newunit}
\begin{document}
\cite{Wolff1962}
\printbibliography
\end{document}
편집하다
위의 답변에서 매크로가 재정의되었기 때문에 최종 편집에서 문제가 발생할 가능성이 있습니다 maintitle+booktitle
(대답에는 매크로가 이미 정의되어 있기 때문에 사용하는 \renewbibmacro
것이 아니라 실수가 더 좋습니다). 매크로도 and 와 함께 사용됩니다 . 그런 다음 변경 사항은 다른 드라이버에 영향을 미칩니다( 및 필드의 순서를 의미함).\newbibmacro
maintitle+booktitle
incollection
inprocedings
volume
part
동시에 및 다른 언어 inbook
와 함께 사용할 수 있습니다 . is : 일부 작업을 수행하고 else: 다른 작업을 수행 german
하는 논리를 추가하면 됩니다 . 두 개의 항목이 있는 MWE 아래 . 다른 하나 는 .langid
german
macro
macro
inbook
german
english
\documentclass{article}
\begin{filecontents}{wolff.bib}
@inBook{Wolff1962,
Title = {Philosophia prima sive Ontologia},
Author = {Wolff, Christian von},
Editor = {Jean Ecole},
Publisher = {Olms},
Address = {Hildesheim},
Year = {1962},
Part = {Abt. 2: Lateinische Schriften},
Maintitle = {Gesammelte Werke},
Volume = {3},
langid = {german}
}
@inBook{other1999,
Title = {The title in english},
Author = {Last, Name},
Editor = {Editor Name},
Publisher = {Springer},
Address = {New York},
Year = {1999},
Part = {1},
Maintitle = {The Maintitle},
Volume = {3},
}
\end{filecontents}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
\addbibresource{wolff.bib}
\DeclareFieldFormat[inbook]{title}{%
\iffieldequalstr{langid}{german}{\mkbibemph{#1}}{\mkbibquote{#1}}}
\newbibmacro*{inbookgerman}{%
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle/german}%
\newunit\newblock
\printlist{language}%
}
\newbibmacro*{inbookother}{%
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
}
\newbibmacro*{maintitle+booktitle/german}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield[default]{part}%
\setunit{\addcomma\space}
\printfield{volume}}}%
\usebibmacro{booktitle}%
\newunit}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\iffieldequalstr{langid}{german}{\usebibmacro{inbookgerman}}{\usebibmacro{inbookother}}
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\begin{document}
\cite{Wolff1962}
\cite{other1999}
\printbibliography
\end{document}