使用没有额外标题的 multibib

使用没有额外标题的 multibib

使用时

\newcites{novels}{Novels}

在 multibib 包中,那么我可以引用

\citenovels{entry}.

我得到了一份题为“小说”的额外书目。

不幸的是,我不想为这个额外的参考书目设置标题,但是使用

\newcites{novels}{}

出现错误。我该怎么做才能删除该标题?

答案1

解决方案取决于文档类别。

文章在序言中添加以下几行:

\usepackage{xpatch}
\makeatletter
\newcommand\removebibheader
  {\xpatchcmd\std@thebibliography
    {\section*{\refname}%
     \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
    }{}{}{}%
  }
\makeatother

scrartcl、scrreprt、scrbook在序言中添加以下几行:

\makeatletter
\newcommand\removebibheader{\let\bib@heading\relax}
\makeatother

此外,对于上述所有类别:使用你喜欢的任何标题定义新的参考书目,例如

\newcites{novels}{Novels}

在包含参考书目的地方,执行\removebibheader前面的命令。为了不影响其他参考书目,请\bibliograhy...用括号将其和命令括起来。

{\removebibheader
 \bibliographynovels{novels}
}

这是一个包含完整代码的示例。

在此处输入图片描述

\documentclass{article}
\usepackage{multibib}
\newcites{novels}{Novels}
\usepackage{xpatch}
\makeatletter
\newcommand\removebibheader
  {\xpatchcmd\std@thebibliography
    {\section*{\refname}%
     \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
    }{}{}{}%
  }
\makeatother
\usepackage{blindtext}
\begin{document}
\citenovels{entry}
\blindtext
\bibliographystylenovels{plain}
{\removebibheader
 \bibliographynovels{novels}
}
\end{document}

或者,对于scrartcl类:

\documentclass{scrartcl}
\usepackage{multibib}
\newcites{novels}{Novels}
\makeatletter
\newcommand\removebibheader{\let\bib@heading\relax}
\makeatother
\usepackage{blindtext}
\begin{document}
\citenovels{entry}
\blindtext
\bibliographystylenovels{plain}
{\removebibheader
 \bibliographynovels{novels}
}
\end{document}

内容novels.bib

@article{entry,
author = {The author},
title = {The novel},
journal = {The journal},
year=2016
}

答案2

通过报告或书籍课程,您可以使用:

\begingroup
   \def\chapter*#1{}
   \bibliography ...
\endgroup

答案3

经过三天的努力,我找到了一个非常简单的解决方案,可以删除标题,无论文件类或同时使用的任何其他包如何:不要将标题参数留空,而是需要使用 {} 作为每个新引用的参数:

简而言之:\newcites{main,method}{{},{}}

\documentclass{extarticle} 
%any other class should work, i have tried IEEEtran and article and it did work just %fine
\usepackage{multibib}
\newcites{main,method}{{},{}} 

% here rather than leaving the argument as empty use  empty curly brackets

\usepackage{blindtext}
\begin{document}
\blindtext
\citemain{entry1}
%assuming there exist references with the key named "entry1" and "entry2"  in the bib file
\bibliographystylemain{plain}
\bibliographymain{refs} 
 %assuming there is a bib file with the name "refs"
\blindtext
\citemethod{entry2}
\bibliographystylemethod{plain}
\bibliographymethod{refs}  
\end{document}

假设 .tex 文件的名称是“document”,运行

pdflatex 文档

bibtex 主目录

bibtex 方法.aux

pdflatex 文档

pdflatex 文档


答案4

如果您的文档类是moderncv,您可以\renewcommand*{\bibliographyhead}[1]{}在 之前执行 。如果只应删除其中一个参考书目的标题,则\bibliography用括号将两者括起来:{}

{\renewcommand*{\bibliographyhead}[1]{}
 \bibliographynovels{novels}
}

相关内容