如何使用 \putbib 和 \bibliography 更新 \sectiontitle 和 \chaptertitle?

如何使用 \putbib 和 \bibliography 更新 \sectiontitle 和 \chaptertitle?
  • 页面样式定义如下标题安全。使用双面模板,在主页面样式中\chaptertitle偶数页显示页眉,\sectiontitle奇数页显示页眉。

  • 纳特比布用于允许作者引用(\citeauthor)。此外,还\bibsection提供了命令,我将其更新为\section*{}在显示部分列表和\chapter*{}显示全局参考列表时显示标题。

  • 比布尼茨用于定义和显示部分参考列表。

我希望\sectiontitle\chaptertitle更新为\putbib\bibliography,这样标题就会显示\bibname,而不是上一节/章节。但是,由于使用了带星号的变体,我无法完成此操作。

我曾尝试在致电之前手动更新它们\putbib,或者\bibliography

\renewcommand{\sectiontitle}{\bibname}
\renewcommand{\chaptertitle}{\bibname}

但我没有发现任何区别。

您知道在创建带星号的章节或部分时如何更新标题吗?

梅威瑟:

\documentclass[a4paper,titlepage,10pt,twoside,openright]{report}

\usepackage{etoolbox}

\usepackage[]{natbib}
\usepackage[globalcitecopy]{bibunits}
\defaultbibliography{IEEEfull,IEEEexample}
\defaultbibliographystyle{IEEEtranSN}
\renewcommand{\bibsection}{\section*{\bibname}}

\usepackage[pagestyles,explicit]{titlesec}

\newpagestyle{main}{ \headrule \footrule %head and foot rules
 \sethead[][][\chaptertitle] %head-even
 {\sectiontitle}{}{} %head-odd
 \setfoot[][\thepage][] %foot-even
 {}{\thepage}{} %foot-odd
}

\usepackage{lipsum}

\begin{document}

\pagestyle{main}
\assignpagestyle{\chapter}{main}

 \begin{bibunit}
  \chapter{Introduction}

  \lipsum[1-5] \cite{IEEEexample:article_typical}

  \section{First section}
  \cite{IEEEexample:shellCTANpage} \lipsum[1-4]

  \section{Second section}
  \lipsum[2-6] \cite{IEEEexample:IEEEwebsite} \lipsum[7-11]

  \nocite*{IEEEexample:book_typical,IEEEexample:articledualmonths}  

 \renewcommand*{\sectiontitle}{\bibname}
  \putbib
 \end{bibunit}

 \cleardoublepage
 \renewcommand{\bibsection}{\chapter*{\bibname}}
 \bibliographystyle{IEEEtranSN}
 \bibliography{IEEEfull,IEEEexample}
 \cleardoublepage

\end{document}

我希望显示第 5、7 和 8 页的页眉\bibname。第 6 页是正确的,因为它是第一章(简介)的偶数页。


在@cfr 回答之后,你尝试了下一个更改:

\renewcommand{\bibsection}{\section*{\bibname}\sectionmark{\bibname}}

代替

\renewcommand{\bibsection}{\section*{\bibname}}

\renewcommand{\bibsection}{\chapter*{\bibname}\chaptermark{\bibname}}

代替

\renewcommand{\bibsection}{\chapter*{\bibname}}

并且它有效!


如果比布拉特克斯用来代替纳特比布,可以通过以下方式实现:

\defbibheading{bibliography}[\bibname]{\chapter*{#1}\chaptermark{#1}}
\defbibheading{subbibliography}[\bibname]{\section*{#1}\sectionmark{#1}}

答案1

由于我无法正确编译 MWE,因此尚未进行全面测试:

\documentclass[a4paper,titlepage,10pt,twoside,openright]{report}
\usepackage[]{natbib}
\usepackage[globalcitecopy]{bibunits}
\defaultbibliography{IEEEfull,bibfile}
\defaultbibliographystyle{IEEEtranSN}
\renewcommand{\bibsection}{\section*{\bibname}\markboth{\leftmark}{\bibname}}

\usepackage[pagestyles,explicit]{titlesec}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
  \fancyhf{}
  \renewcommand{\footrulewidth}{.4pt}
  \fancyhf[reh]{\leftmark}%
  \fancyhf[loh]{\rightmark}%
  \fancyhf[cf]{\thepage}%
}

\usepackage{lipsum}

\begin{document}

\pagestyle{main}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\assignpagestyle{\chapter}{main}

 \begin{bibunit}
  \chapter{Introduction}

  \lipsum[1-5] \cite{schreiber86}

  \section{First section}
  \cite{hestenes58} \lipsum[1-4]

  \section{Second section}
  \lipsum[2-6] \cite{rutishauser66} \lipsum[7-10]

  \nocite{brent85,cavallaro88}

 \renewcommand*{\sectiontitle}{\bibname}
  \putbib
 \end{bibunit}

 \cleardoublepage
 \renewcommand{\bibsection}{\chapter*{\bibname}}
 \bibliographystyle{IEEEtranSN}
 \bibliography{IEEEfull,bibfile}
 \cleardoublepage

\end{document}

相关内容