我刚刚开始一个大项目,大概会达到 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}
生产
对于参考书目超过两列的版本,请加载multicols
和relsize
包(即\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}}
{}
得出的结果为: