我找到了一个两列参考书目的代码片段这个答案:
\usepackage{multicol}
\makeatletter
\renewenvironment{thebibliography}[1]
{\begin{multicols}{2}[\section*{\refname}]%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist\end{multicols}}
\makeatother
这基本上满足了我的要求(即分为两列,因此占用的空间较少),只是每个项目前面都有 [1]、[2]、... 因为我使用的是参考书目,所以文本中moderncv
没有引用,所以不需要标签。如果标签很难避免,我更喜欢项目符号之类的东西。
我想这可能会让事情变得更加复杂,但无论好坏,我目前正在使用plainyr-rev.bst也是。不过那不是很重要;书目只包含十几个项目,我可能只需更改标签并按这些项目排序即可。
答案1
答案是贡萨洛·梅迪纳我在问题中链接的内容提供了我需要的大部分功能,并根据建议进行了调整蝉满足了我的要求。所以我最终得到了这个:
\makeatletter
\ifthenelse{\boolean{twocolbib}}{
\renewenvironment{thebibliography}[1]
{\begin{multicols}{2}[\section*{\refname}]%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{}
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist\end{multicols}}
}{}
\makeatother
但事实证明,我的简历的其他部分已经太长了,一页也放不下,所以两栏参考书目的优势就消失了,所以我添加了一个,\ifthenelse
以防我再次需要它。