如何從兩欄參考書目中消除數位標籤

如何從兩欄參考書目中消除數位標籤

我找到了兩列參考書目的程式碼片段這個答案:

\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以防萬一我再次需要它。

相關內容