重新定义的部分使 biblatex 标题损坏

重新定义的部分使 biblatex 标题损坏

我重新定义了section,但不知何故它搞乱了参考书目标题。这是 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}

\newcommand{\linia}{\rule{\linewidth}{0.5pt}}
\renewcommand{\section}[1]{%
  \bigskip%
  {\LARGE\MakeUppercase{#1}}\\[-1ex]%
  \linia\medskip
}

\usepackage{biblatex}
\addbibresource{sample.bib}

\begin{document}
\nocite{*}

\printbibliography

\end{document}

输出如下:

在此处输入图片描述

答案1

biblatex的默认bibliography标题用于在类似类\section*{<title>}中排版参考书目标题。article

重新定义

\renewcommand{\section}[1]{%
  \bigskip%
  {\LARGE\MakeUppercase{#1}}\\[-1ex]%
  \linia\medskip
}

禁用的星号版本,\section从而导致不良的输出。

\section{<title>}要么提供一个可以处理星号版本的定义\section*{<title>},要么告诉biblatex使用另一个标题(例如\section)。后者可以通过多种方式完成,其中一种是

\documentclass{article}
\usepackage[utf8]{inputenc}

\newcommand{\linia}{\rule{\linewidth}{0.5pt}}
\renewcommand{\section}[1]{%
  \bigskip%
  {\LARGE\MakeUppercase{#1}}\\[-1ex]%
  \linia\medskip
}

\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{sigfridsson}

\printbibliography[heading=bibnumbered]
\end{document}

定义带星号和不带星号版本的部分命令的一种方法是使用(请参阅定义带星号的命令版本(* 宏)更多选项,特别是xparse/expl3选项(如果你使用的是现代 TeX 系统)

\documentclass{article}
\usepackage[utf8]{inputenc}

\newcommand{\linia}{\rule{\linewidth}{0.5pt}}

\makeatletter
\renewcommand{\section}{\@ifstar\@section\@section}
\newcommand{\@section}[1]{%
  \bigskip%
  {\LARGE\MakeUppercase{#1}}\\[-1ex]%
  \linia\medskip
}
\makeatother

\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{*}

\printbibliography
\end{document}

相关内容