我已经读完了这个问题,另一个问题,以及其他一些(以及biblatex
手册中的第 1.5.5 节)。我知道titlesec
重新定义了biblatex
用于 的东西citereset
。有没有简单的解决方法?
biblatex
以下是详细风格的MWE :
\documentclass[letterpaper,12pt]{book}
\usepackage[explicit,largestsep]{titlesec}
\usepackage{polyglossia}
\setmainlanguage[variant=us]{english}
\usepackage[english=american]{csquotes}
\usepackage[style=verbose,citepages=omit,citereset=chapter]{biblatex}
\begin{filecontents}[overwrite]{temp.bib}
@book{Book1,
author = {John Smith},
title = {A Good Book},
publisher = {Good Publishing House},
address = {NY},
year = {2020}
}
\end{filecontents}
\addbibresource{temp.bib}
\usepackage{xparse}
\begin{document}
%%% TEMP
\titleformat{\chapter}[display]
{\normalsize\rmfamily\center}
{\MakeUppercase{\chaptername~\thechapter}}
{0pt}
{\MakeUppercase{#1}}
%%%
\null\vfill
I like good books.\footcite[6]{Book1} But now a short ref.\footcite[10]{Book1}
\chapter{New Chapter}
\null\vfill
This should be a full citation.\footcite[15]{Book1}
\clearpage
\printbibliography
\end{document}
对于第一次引用:
对于新章节中的引用,如下所示:
有趣的是,只有citereset
当我使用该titleformat
命令时才会出现问题。仅包含命令titlesec
不会导致问题。
biblatex-chicago
同样有趣的是,有些解决这个问题。以下是 的 MWE biblatex-chicago
:
\documentclass[letterpaper,12pt]{report}
\usepackage[explicit,largestsep]{titlesec}
\usepackage{polyglossia}
\setmainlanguage[variant=us]{english}
\usepackage[english=american]{csquotes}
\begin{filecontents}[overwrite]{customstyles.dbx}
\DeclareDatamodelEntrytypes{tdict}
\end{filecontents}
\usepackage[noibid,backend=biber,notes,isbn=false,shorthandfull,shorthandfirst,inheritshorthand=true,citereset=chapter]{biblatex-chicago}
\begin{filecontents}[overwrite]{temp.bib}
@book{Book1,
author = {John Smith},
title = {A Good Book},
publisher = {Good Publishing House},
address = {NY},
year = {2020}
}
\end{filecontents}
\addbibresource{temp.bib}
\usepackage{xparse}
\begin{document}
%%% TEMP
\titleformat{\chapter}[display]
{\normalsize\rmfamily\center}
{\MakeUppercase{\chaptername~\thechapter}}
{0pt}
{\MakeUppercase{#1}}
%%%
\null\vfill
I like good books.\footcite[6]{Book1} But now a short ref.\footcite[10]{Book1}
\chapter{New Chapter}
\null\vfill
This should be a full citation.\footcite[15]{Book1}
\clearpage
\printbibliography
\end{document}
首次引用:
新章节后的引用:
在第一个后续引用中,它是作者。然后在新章节中,它是作者标题。所以biblatex-chicago
可以区分。
我知道我所要做的就是citereset
在每个\chapter
命令之后发出命令。所以这是我的安全措施。但是,我想要一个不需要手动操作的解决方案(我正试图将其放入包中)。
谢谢!
编辑
经过进一步测试,的行为biblatex-chicago
与在新页面上引用 author-title 的行为完全相同。因此,\chapter
并没有做任何不同的事情。所以biblatex-chicago
上面的例子没有帮助。我已经删除了biblatex-chicago
标签。
答案1
文档 §1.5.5 不兼容的软件包中提到了这个问题。解决方案是将此选项键替换为命令中的相应命令\titleformat
:
\documentclass[letterpaper,12pt]{book}
\usepackage[explicit,largestsep]{titlesec}
\usepackage{polyglossia}
\setmainlanguage[variant=us]{english}
\usepackage[english=american]{csquotes}
\usepackage[style=verbose, citepages=omit]{biblatex}
\begin{filecontents}[overwrite]{temp.bib}
@book{Book1,
author = {John Smith},
title = {A Good Book},
publisher = {Good Publishing House},
address = {NY},
year = {2020}
}
\end{filecontents}
\addbibresource{temp.bib}
\usepackage{xparse}
\begin{document}
%%% TEMP
\titleformat{\chapter}[display]
{\normalsize\rmfamily\center}
{\MakeUppercase{\chaptername~\thechapter}}
{0pt}
{\citereset\MakeUppercase{#1}}
%%%
\null\vfill
I like good books.\footcite[6]{Book1} But now a short ref.\footcite[10]{Book1}
\chapter{New Chapter}
\null\vfill
This should be a full citation.\footcite[15]{Book1}
\clearpage
\printbibliography
\end{document}