\bibliography 命令是否在任何地方指定了 \section*?

\bibliography 命令是否在任何地方指定了 \section*?

我正在使用基于类的类scrartcl。我需要在某个部分中包含参考书目条目,但它显示该条目具有*该部分标题。如果我使用命令

\section*{hello} 

在文档中显示为

*
___
hello

同样地

\section{Publications}
\nocite{ref1}
\bibliographystyle{test}
\bibliography{myreflist}

显示为

PUBLICATIONS
--
*
___
[1] Ref1 etc,

我用过

\renewcommand{\refname}{} 

命令可从参考书目中删除标题“参考文献”,但这个星号很烦人。有人知道参考书目命令是否\section*在任何地方使用该命令,以及如何更改/删除它吗?

最小工作示例:

\documentclass{tccv}

\section{Publications}
\nocite{ref1}
\bibliographystyle{test}
\bibliography{References}
\end{document}

答案1

这并不能解决class文件的不足,但是:

\documentclass[bibliography=totocnumbered]{tccv}
\begin{document}
\nocite{companion}
\section{Publications}
\bibliographystyle{plain}
\bibliography{biblatex-examples}
\end{document}

使用适当的记录界面来获取编号(即无星号)的参考书目。

或者说得更明显一点:

\listfiles
\documentclass[bibliography=totocnumbered]{tccv}
\renewcommand{\refname}{Publications}
\begin{document}
\nocite{companion}
\bibliographystyle{plain}
\bibliography{biblatex-examples}
\end{document}

1在此处输入图片描述

答案2

是的,确实thebibliography存在问题\section*tccv文档类。事实上,tccv重新定义\section以适应其自身需求,而没有考虑到\section可以以星号形式使用:

% Overrides the \section command to capitalize every
% word for cosmetic purposes and draws a rule under it.
\let\old@section\section
\renewcommand\section[2][]{%
  \old@section[#1]{\ucwords{#2}}%
  \newdimen\raising%
  \raising=\dimexpr-0.7\baselineskip\relax%
  \vskip\raising\hrule height 0.4pt\vskip-\raising}

您可以通过在文档序言中添加以下内容以两种方式更正此问题:

  1. 添加虚拟星号功能至\section

    \makeatletter
    \let\tccvsection\section
    \renewcommand{\section}{\@ifstar\tccvsection\tccvsection}
    \makeatother
    
  2. 补丁\bib@heading使用etoolbox

    \usepackage{etoolbox}
    \makeatletter
    % \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
    \patchcmd{\bib@heading}{\section*}{\section}{}{}
    \makeatother
    

下面是使用前一个选项的简单示例:

在此处输入图片描述

\documentclass{tccv}
\makeatletter
\let\tccvsection\section
\renewcommand{\section}{\@ifstar\tccvsection\tccvsection}
\makeatother

\begin{document}

\section{Publications}

\begin{thebibliography}{x}
  \bibitem{abc} Some bibliography item
\end{thebibliography}

\end{document}

现在你应该能够使用适当的

\renewcommnd{\refname}{<your new bibliography heading>}

如果你希望。

答案3

tccv这肯定是类重新定义中的一个错误,\section因此它不遵守*其后的 a。

\bib@heading您可以通过定义不执行任何操作来解决问题。

\documentclass{tccv}
\makeatletter
\renewcommand{\bib@heading}{}
\makeatother

\begin{document}

\section{Publications}
\nocite{Knuth:ct-a}
\bibliographystyle{plain}
\bibliography{texbook1}

\end{document}

在此处输入图片描述

相关内容