我有一个主.tex
文件,我在其中输入了一些章节,这些章节是其他.tex
文件。然后我有一个参考书目,我将其输入到主文件中。如果我\section
的输入文件中有一些,那么一些引用就会变成“[0]”。
这是main.tex
\documentclass[12pt, twoside, openright]{book}
\linespread{1.3}
\usepackage[textheight=\textheight,textwidth=\textwidth,bindingoffset=3cm,vcentering]{geometry}
\usepackage{enumitem}
\usepackage[greek,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{sectsty,lmodern}
\usepackage{float}
\usepackage[backend=biber,style=numeric, defernumbers=true, refsection=section]{biblatex}
\addbibresource{bib/references.bib}
\graphicspath{ {img/} }
\chapternumberfont{\fontsize{20pt}{18pt}\selectfont}
\chaptertitlefont{\fontsize{20pt}{18pt}\selectfont}
\addtolength{\skip\footins}{2pc plus 2pt}
\usepackage{fancyhdr}
\usepackage{csquotes}
\usepackage[begintext=“, endtext=”]{quoting}
\SetBlockEnvironment{quoting}
\SetBlockThreshold{1}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot[LE,RO]{\thepage}
\usepackage[citecolor=black]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=blue,
bookmarks=true
}
\urlstyle{same}
\begin{document}
\chapter{chapter one}
\input{chapters/chapter01}
\newpage
\printbibliography[keyword={biblio}, heading=bibintoc, title={Bibliography}]
\newpage
\printbibliography[keyword={site}, heading=bibintoc, title={Sitography}]
\end{document}
这是references.bib
:
@online{addm,
url = {https://www.cdc.gov/ncbddd/autism/addm-community-report/key-findings.html},
keywords = {site}
}
@article{kenny2016terms,
title={Which terms should be used to describe autism? Perspectives from the UK autism community},
author={Kenny, Lorcan and Hattersley, Caroline and Molins, Bonnie and Buckley, Carole and Povey, Carol and Pellicano, Elizabeth},
journal={Autism},
volume={20},
number={4},
pages={442--462},
year={2016},
publisher={SAGE Publications Sage UK: London, England},
keywords = {biblio}
}
这是chapter01.tex
\section{Terminology and Data}
STUFF STUFF STUFF\cite{addm}
\section{Therapies}
stuff\cite{kenny2016terms} stuff\cite{addm}
奇怪的是,第二个之后的引用\section
有效,而第一个之后的引用\section
无效。
答案1
这与之无关\input
,并且可以在更小的环境中重现,在更小的环境中更容易诊断问题。
\documentclass[12pt, twoside, openright]{book}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[backend=biber, style=numeric, defernumbers=true, refsection=section]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\chapter{chapter one}
\section{Section One}
Lorem\cite{sigfridsson,worman}
\section{Section Two}
ipsum\cite{sigfridsson} dolor\cite{ctan}
\newpage
\printbibliography[nottype=online, heading=bibintoc, title={Bibliography}]
\newpage
\printbibliography[type=online, heading=bibintoc, title={Sitography}]
\end{document}
请注意,第一部分中的所有引用都显示为“[0]”,并且只有第二部分中的参考文献才有编号。参考书目仅显示第二部分的条目。worman
(仅在第一部分中被引用)无处可见。
罪魁祸首是refsection=section
,并且问题因而加剧(这真是太幸运了,否则可能会被忽视)defernumbers=true
。
告诉refsection=section
您在文档中的biblatex
每个命令处开始一个新的引用部分。特别是\section
第一节和第二节位于两个不同的参考节中。参考节是一种组织完全独立的书目和引文的方式。它们彼此分开,每个参考节都有自己的排序和编号。\printbibliography
您发布的 s 属于第二个打开的参考节第二节worman
因此只会从那里选取引用。这解释了为什么我们从未在任何参考书目中看到它——它只在第一部分被引用。
事情更进一步说,就而言,第一部分中的biblatex
条目与第二部分中的条目完全独立,它们只是共享相同的条目数据。特别是它们不需要具有相同的标签编号(引用标签)或相同的排序。由于您使用条目,因此将根据整体排序为它们分配标签编号。相反,它们在第一次出现在参考书目中时会获得标签编号。这就是为什么第二部分中的 是“[1]”和是“[2]”,尽管按字母顺序排序会先于。(更改为以查看此内容。)第一部分的条目从未出现在任何参考书目中,因此从未被分配任何编号。因此,它们总是显示“[0]”。sigfridsson
sigfridsson
defernumbers
sigfridsson
ctan
ctan
sigfridsson
defernumbers=false
有几种方法可以解决这个问题。
\printbibliography
为每个添加一个\section
以获得独立的书目\section
。- 切换到以按而不是
refsection=chapter
按 生成独立的书目和引文。\chapter
\section
- 完全放弃该
refsection
选项以生成所有章节的全局书目和全局引用。