我的想法是得到与之前相同的输出邮政但由于之前的方法存在一些局限性,因此采用了不同的方法。
因此,目标是让我的参考书目中每年的第一个参考文献在左侧显示相应的年份,因为这是正常的cventry
。
问题是我有多个书目,并且我使用多书目,\newcites
这样我就可以在每个书目中使用不同的标题(例如,“口头报告”、“海报展示”等)。但由于以前的方法删除了环境,因此thebibliography
我也丢失了标题信息。
我知道我可以简单地手动插入一个新标题,但我更喜欢不同的解决方案(比如说更自动化)。
上一篇文章(答案之一)建议使用此代码“如果你希望每年只出现在该年的第一篇论文中”
STRINGS {oldyear}
FUNCTION {year.or.none}
{ 's :=
oldyear empty$
{ s 'oldyear := s }
{ s oldyear =
{ "" }
{ s 'oldyear := s }
if$
}
if$
}
我想知道是否可以一起使用year.or.none
函数和biblabel
并在以下代码行中显示年份(或不显示):
\renewcommand\bibliographyitemlabel{\@biblabel{XXX}}
已编辑
以下是我想要实现的目标的模型:
如果您需要我使用的代码,请告诉我。请注意,显示的年份是在 Photoshop 上手动添加的。
编辑二
我使用的文件.bst
可以找到这里。我做了一些修改,以实现我想要的最终风格。下面是实际使用的书目风格的链接(由于这篇文章中可以使用的字符数有限制,我无法将其粘贴在这里)。
https://www.dropbox.com/s/evvx9dr7qhpbz2h/simon_bonner_cv.bst
答案1
经过一番尝试,我发现了两个解决方案:
- 使用您提到的前一个帖子,并进行一些调整以匹配多项式。
- 使用 biblatex(我更喜欢这个解决方案)。
对于第一个解决方案,请参阅回答到来自 bibtex 的 moderncv 出版物排序列表和平原评论书目格式(Christian Plessl 编写,参见这里)。我使用了这两种解决方案的组合,因为它们单独使用都不起作用。基本上,我使用了答案中给出的解决方案,添加了按年份反向排序,并在原始答案中更改了一件事 - 而不是留空FUNCTION {begin.bib}
,而是使用以下内容:
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\bibliographyhead{\refname}" write$ newline$
}
现在,您可以正常使用 multibib,并且可以删除thebibliography
中定义的环境moderncv.cls
。
第二种解决方案更优雅,使用比布拉特克斯功能。您可以查看来自 bibtex 的 moderncv 出版物排序列表设置biblatex
和moderncv
,并使用答案 Multibib 反向标签或排序顺序了解如何使用分段多参考书目biblatex
。
它只是“开箱即用”。我能想到的唯一缺点是此解决方案不使用\cvitem
提供的环境moderncv
,但我不认为这是一个真正的问题。
答案2
该软件包usebib
将帮助您。使用以下代码:
\makeatletter
\AtBeginDocument{%
\def\@lbibitem[#1]#2{\item[\usebibentry{#2}{year}]\if@filesw
{\let\protect\noexpand
\immediate
\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
}
\makeatother
标签被包中提取的字段年份替换usebib
。
以下是完整的 MWE:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{article-full,
author = {L[eslie] A. Aamport},
title = {The Gnats and Gnus Document Preparation System},
journal = {\mbox{G-Animal's} Journal},
year = 1986,
volume = 41,
number = 7,
pages = "73+",
month = jul,
note = "This is a full ARTICLE entry",
}
@BOOK{book-full,
author = "Donald E. Knuth",
title = "Seminumerical Algorithms",
volume = 2,
series = "The Art of Computer Programming",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts",
edition = "Second",
month = "10~" # jan,
year = 1981,
note = "This is a full BOOK entry",
}
\end{filecontents*}
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
% personal data
% personal data
\firstname{John}
\familyname{Doe}
\title{Resumé title}
\address{street and number}{postcode city}{country}
\mobile{+1~(234)~567~890}
\phone{+2~(345)~678~901}
\fax{+3~(456)~789~012}
\email{[email protected]}
\homepage{www.johndoe.com}
\extrainfo{additional information}
\photo[64pt][0.4pt]{example-image-a} % change image name
\quote{Some quote}
%\photo[64pt][0.4pt]{example-image-a} % change image name
\quote{Some quote}
\bibliographystyle{unsrtdin}
\usepackage{usebib}
\bibinput{\jobname}%name of the bib file
\makeatletter
\AtBeginDocument{%
\def\@lbibitem[#1]#2{\item[\usebibentry{#2}{year}]\if@filesw
{\let\protect\noexpand
\immediate
\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
}
\makeatother
\begin{document}
\nocite{*}
\bibliography{\jobname}
\end{document}