biblatex는 저자와 제목 뒤에 줄 바꿈을 추가합니다.

biblatex는 저자와 제목 뒤에 줄 바꿈을 추가합니다.

나는 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} 

여기에 이미지 설명을 입력하세요

관련 정보