
나는 biblatex+biber를 사용하고 있으며 저자가 인쇄된 후 새 줄이 시작되고 제목이 인쇄되고 다시 새 줄이 시작되어 나머지가 평소대로 인쇄되도록 하고 싶습니다. 이것해결책내 문제에 가까워졌지만 기본 스타일을 사용했는데 제목이 여전히 별도의 줄에 있지 않습니다.
여기에 예가 있습니다.
Author1, Author2, and Author3. Title. In: Proceedings. Ed. John Doe. World. 2017
그리고 그것이 어떻게 보여야 하는지
Author1, Author2, and Author3.
Title.
In: Proceedings. Ed. John Doe. World. 2017
다음은 최소한의 작업 예입니다.
\documentclass{scrartcl}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
author = {Author11 and Author12 and Author13},
editor = {Editor1},
title = {Title1},
booktitle = {Booktitle1},
year = {2017},
pages = {50--67},
publisher = {Publisher1}
}
@article{article,
author = {Author21 and Author22},
title = {Title2},
journal = {Journal2},
year = {2007},
volume = {29},
number = {5},
pages = {29:1--29:27}
}
@book{book,
author = {Author31},
title = {Title3},
year = {1970},
publisher = {Publisher3}
}
@incollection{inCollection,
author = {Author4},
title = {Title4},
booktitle = {Booktitle4},
pages = {843--993},
editor = {Editor4},
chapter = {15},
volume = {B},
series = {Series4},
publisher = {Publisher4},
year = {1990}
}
@techreport{techreport,
author = {Author5},
institution = {Institution5},
number = {Number5},
pages = {Pages5},
title = {Title5},
year = {5}
}
@phdthesis{phdthesis,
author = {Author6},
title = {Title6},
school = {School6},
month = {Month6},
publisher = {Publisher6},
address = {Address6},
year = {6}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
답변1
첫 번째 단계는
\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}
이름 뒤에 새 줄을 얻으려면.
그런 다음 제목 다음에 새 줄로 이동하려면 뭔가가 필요합니다. 불행하게도 여기서 재정의할 표준 구분 기호는 없습니다. 모든 항목 유형에 적용되는 가장 쉬운 방법은 다음과 같습니다.
\usepackage{xpatch}
\makeatletter
\def\do#1{
\ifcsdef{blx@bbx@#1}
{\xpatchbibdriver{#1}
{\printlist{language}%
\newunit\newblock}
{\printlist{language}%
\printunit{\newline\bibsentence}}
{}{}}
{}}
\abx@doentrytypes
\makeatother
이것은 모든 표준 드라이버에서 제목 바로 뒤에 오는 언어 뒤에 줄바꿈을 추가합니다. 패키지를 사용하여 참고 xpatch
문헌 드라이버를 변경하고 루프( \abx@doentrytypes
전체를 반복하는 내부 매크로)를 사용하여 모든 드라이버에 변경 사항을 적용합니다.
MWE
\documentclass{scrartcl}
\usepackage{biblatex}
\usepackage{filecontents}
\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}
\usepackage{xpatch}
\makeatletter
\def\do#1{
\ifcsdef{blx@bbx@#1}
{\xpatchbibdriver{#1}
{\printlist{language}%
\newunit\newblock}
{\printlist{language}%
\printunit{\newline\bibsentence}}
{}{}}
{}}
\abx@doentrytypes
\makeatother
\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
author = {Author11 and Author12 and Author13},
editor = {Editor1},
title = {Title1},
booktitle = {Booktitle1},
year = {2017},
pages = {50--67},
publisher = {Publisher1}
}
@article{article,
author = {Author21 and Author22},
title = {Title2},
journal = {Journal2},
year = {2007},
volume = {29},
number = {5},
pages = {29:1--29:27}
}
@book{book,
author = {Author31},
title = {Title3},
year = {1970},
publisher = {Publisher3}
}
@incollection{inCollection,
author = {Author4},
title = {Title4},
booktitle = {Booktitle4},
pages = {843--993},
editor = {Editor4},
chapter = {15},
volume = {B},
series = {Series4},
publisher = {Publisher4},
year = {1990}
}
@techreport{techreport,
author = {Author5},
institution = {Institution5},
number = {Number5},
pages = {Pages5},
title = {Title5},
year = {5}
}
@phdthesis{phdthesis,
author = {Author6},
title = {Title6},
school = {School6},
month = {6},
publisher = {Publisher6},
address = {Address6},
year = {6}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
이와 같은 느슨한 참고문헌에 대한 대안 솔루션은 block=par
다음에서 논의됩니다.BibTeX+Beamer와 유사한 BibLaTeX의 참고문헌 스타일.
답변2
다음 솔루션은 모든 항목에 "In:"이 있는 경우에만 원하는 결과를 제공합니다. 예를 들어 저널이 없는 기사의 경우 새 줄이 없습니다.
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Neu93,
author = {John von Neumann},
title = {First Draft of a Report on the EDVAC},
journaltitle = {IEEE Ann. Hist. Comput. },
date = {1993},
volume = {15},
number = {4},
pages = {27--75},
}
\end{filecontents*}
\usepackage{biblatex}
\renewcommand*{\labelnamepunct}{\newunitpunct\par}
\renewbibmacro{in:}{\newline In:}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}