更改参考书目的布局

更改参考书目的布局

我刚刚开始一个大项目,大概会达到 70 页,包括相当多的书目。所以我想让它看起来整洁有序。

到目前为止,我对默认结果感到满意\usepackage[round,sort]{natbib}\bibliographystyle{agsm}但我一直想改变它。我希望最终的结果应该是(斜线之间的文本应该是斜体,大写字母应为小写字母):

AUTHOR, F.O.
    2000 - /This is my First Book/, Address: Publisher

SCHREIBER, K.
    1802 - /Wenn Wir Auf Deutsch Geschrieben Habe/, Address: Publisher
    1803 - 'Ich weiss nicht wie das heisst', in: Etwas, E. (ed.), /Das Buch/, Address: Publisher, pp. 5-6

如果能放入两列就好了。但我不知道有什么选择。这可能吗?或者这不是 latex 中的选项,我必须接受它吗?

这是由基本书目样式生成的输出agsm;请注意,它与上面列出的首选样式有几点不同。

在此处输入图片描述

梅威瑟:

\documentclass{report}
\usepackage[round,sort]{natbib}
\bibliographystyle{agsm}

\begin{document}
\nocite{*}
\bibliography{bibl}
\end{document}

bibl.bib文件:

@book{auth00,
author={Author, First One},
title={This is my First Book},
year={2000},
publisher={Publisher},
address={Address}}

@book{schr02,
author={Schreiber, Kugel},
title={Wenn Wir Auf Deutsch Geschrieben Habe},
year={1802},
publisher={Publisher},
address={Address}}

@incollection{schr03,
author={Schreiber, Kugel},
title={Ich weiss nicht wie das heisst},
year={1803},
booktitle={Das Buch},
editor={Etwas, Edward},
publisher={Publisher},
address={Address}}

答案1

以下是调整这个答案对于这个问题

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{fruits,
  title = {The apple and the banana},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange},
  year = {1970}
}
@book{fruits2,
  title = {The pineapple and the banana},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange},
  year = {1971}
}
@book{fruits3,
  title = {The mangos and the banana and other tropical fruits},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange and Peachy Pear},
  year = {1970}
}
\end{filecontents*}


\usepackage[utf8]{inputenc}
\usepackage[firstinits,citestyle=authoryear]{biblatex}

\addbibresource{\jobname.bib}

\makeatletter
\newcommand{\@currentauthor}{}
\newcommand{\@current}{}

\AtEveryBibitem{%
  \savename{labelname}{\@current}%
  \ifdefstrequal{\@currentauthor}{\@current}
    {\par}
    {\item[]%
      \printnames[last-first/first-last]{labelname}\par}%
    \usedriver{}{special}%
    \makebox[0em][r]{\printfield{labelyear}\addspace--\addspace}%
    \clearfield{year}%
}

\DeclareBibliographyDriver{special}{%
\savename{labelname}{\@currentauthor}%
}
\makeatother

\renewbibmacro{editor+others}{}
\renewbibmacro{author/translator+others}{}
\renewbibmacro{author/editor+others/translator+others}{}

\defbibenvironment{bibliography}
  {\list
    {}
    {\setlength{\itemindent}{-4em}%
      \setlength{\leftmargin}{4em}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {}


\begin{document}
Hello world \cite{fruits,fruits2,fruits3}.

\printbibliography

\end{document}

生产

在此处输入图片描述

对于参考书目超过两列的版本,请加载multicolsrelsize包(即\usepackage{mulitcols,relksize}),然后使用以下(重新)定义环境bibliography

\defbibenvironment{bibliography}
  {\begin{multicols}{2}\smaller\list
    {}
    {\setlength{\itemindent}{-4.5em}%
      \setlength{\leftmargin}{4.5em}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist\end{multicols}}
  {}

得出的结果为:

在此处输入图片描述

相关内容