当我编写一篇很长的论文,其中包含很长的参考书目时,我注意到在参考书目的某些地方,条目之间添加了一行:
我尝试通过删除部分内容并进行编译来缩减文档和参考书目,以找出导致问题的原因。这花了我几个小时,下面的示例是我想出的最小示例。我想说的是,我知道这个示例可能不是“最小的”,但我确实试图让它尽可能小。
我在使用不同字体的参考书目中看到了这个问题,但由于问题似乎与间距有关,因此只有在使用最小示例中的参考书目时才会出现问题,如果我使用可以下载的 Brill Roman 字体进行编译这里。
我正在使用Mac OS Mavericks 上的后端xelatex
进行编译。bibtex
biber
有人知道这里可能存在什么问题吗?
这是文档:
\documentclass[utf8,12pt,letterpaper]{article}
\usepackage{fontspec}
\setmainfont{Brill Roman}
\usepackage[authordate,strict,isbn=false,backend=biber,bibencoding=utf8,hyperref=true,noibid,annotation]{biblatex-chicago}
%The following is for automatic sorting of references (by Guido at http://tex.stackexchange.com/questions/84020/automatic-assignment-of-references-to-bibliography-categories-depending-on-origd) :
\defbibcheck{pre}{
\iffieldint{origyear}
{\ifnumless{\thefield{origyear}}{1911}
{}
{\skipentry}
}
{\iffieldint{year}
{\ifnumless{\thefield{year}}{1911}
{}
{\skipentry}
}
{\skipentry}
}
}
\defbibcheck{post}{
\iffieldint{origyear}
{\ifnumless{1910}{\thefield{origyear}}
{}
{\skipentry}
}
{\iffieldint{year}
{\ifnumless{1910}{\thefield{year}}
{}
{\skipentry}
}
{
\skipentry %comment out this line if unknown date check is not used.
}
}
}
\defbibcheck{dateunknown}{
\ifboolexpr{
test {\iffieldundef{year}}
and
test {\iffieldundef{origyear}}
}
{}
{\skipentry}
}
%End of automatic sorting
\addbibresource{bibliographySpacing2.bib}
\begin{document}
\nocite{*}
\part*{Bibliography}\addcontentsline{toc}{part}{Bibliography}
\printbibliography[heading=subbibintoc,check=dateunknown,title={Undated Works}] \clearpage \printbibliography[heading=subbibintoc,check=pre,title={Works Written Before 1911}] \clearpage \printbibliography[heading=subbibintoc,check=post,title={Works Written After 1911}]
\end{document}
这是bibliographySpacing2.bib
:
@book{Cawdry1604ATableAlphabeticall,
author = {Cawdry, Robert},
title = {A table alphabeticall},
address = {London},
publisher = {Edmund Weauer},
date = {1604}
}
@book{Klaproth1823Asia,
address = {Paris},
title = {Asia Polyglotta},
publisher = {A. Schubart},
author = {Klaproth, Julius},
date = {1823}
}
@book{Klaproth18261828Memoires,
author = {Klaproth, Julius},
title = {Mémoires relatifs à l'Asie, contenant des recherches historiques, géographiques et philologiques sur les peuples de l'Orient},
shorttitle = {Mémoires relatifs à l'Asie},
address = {Paris},
publisher = {Dondey-Dupré, père et fils},
date = {1826},%/1828},
volumes = {3}
}
@book{Laufer1908Skizze,
title = {Skizze der manjurischen Literatur},
date = {1908},
note = {extrait de la Revue orientale},
author = {Laufer, Berthold}
}
@book{LauferNDSkizze,
title = {Skizze der manjurischen Literatur},
note = {extrait de la Revue orientale},
author = {Laufer, Berthold}
}
@review{KuhnSherman1972ReviewContributionsToAHistoryOfAlphabetization,
author = {Kuhn, {Sherman M.}},
title = {\bibstring{reviewof} \mkbibemph{Contributions to a History of Alphabetization in Antiquity and the Middle Ages} \bibstring{by} Lloyd W. Daly},
shorttitle = {\bibstring{reviewof} \mkbibemph{Contributions to a History of Alphabetization}},
journal = {Medieval Academy of America},
year = {1972},
volume = {47},
number = {2},
pages = {300--3}
}
@book{KennedyGeorge1941SerianArrangementOfChineseCharacters,
author = {Kennedy, {George A.}},
title = {Serial Arrangement of Chinese Characters},
publisher = {Department of Oriental Studies, Yale university},
% date = {1948},
date = {1941},
% edition = {\autocap{r}evised 2\textsuperscript{nd} edition},
address = {\emph{S.l.}}
}
@book{Cawdry1604ATableAlphabeticall,
author = {Cawdry, Robert},
title = {A table alphabeticall},
address = {London},
publisher = {Edmund Weauer},
date = {1604}
}
@book{Cawdry1604ATableAlphabeticall,
author = {Cawdry, Robert},
title = {A table alphabeticall},
address = {London},
publisher = {Edmund Weauer},
date = {1604}
}
@book{Strahlenberg1730DasNordOst,
author = {Strahlenberg, {Philipp Johann von}},
title = {Das nord- und ostliche Theil von Europa und Asia},
address = {Stockholm},
date = {1730},
publisher = {In Verlegung des Autoris},
edition = {\autocap{m}icrofilm of printed edition}
}
答案1
首先,请注意文件中有一些奇怪的重音字符.bib
。例如,是普通重音字符(U+0065) 加上“组合重音”字符 (U+0301)é
的组合,而不是普通重音字符 e (U+00E9)。e
é
话虽如此,请注意,编译首先返回一个\hbox
由文件中的“géographiques”一词引起的“Overfull”警告.bib
,然后返回一个“Underfull \hbox
”,这是导致多出一行的原因。
解决方案是告诉 LaTeX 如何用连字符连接单词“géographiques”,所有问题就都消失了。
因此,只需添加以下行
\hyphenation{géo-gra-phi-ques}
在序言中(希望连字符是正确的)解决了所有问题。
梅威瑟:
\documentclass[12pt,letterpaper]{article}
\usepackage{fontspec}
\setmainfont{Brill Roman}
\usepackage[authordate,strict,isbn=false,backend=biber,bibencoding=utf8,hyperref=true,noibid,annotation]{biblatex-chicago}
\hyphenation{géo-gra-phi-ques}
%The following is for automatic sorting of references (by Guido at http://tex.stackexchange.com/questions/84020/automatic-assignment-of-references-to-bibliography-categories-depending-on-origd) :
\defbibcheck{pre}{
\iffieldint{origyear}
{\ifnumless{\thefield{origyear}}{1911}
{}
{\skipentry}
}
{\iffieldint{year}
{\ifnumless{\thefield{year}}{1911}
{}
{\skipentry}
}
{\skipentry}
}
}
\defbibcheck{post}{
\iffieldint{origyear}
{\ifnumless{1910}{\thefield{origyear}}
{}
{\skipentry}
}
{\iffieldint{year}
{\ifnumless{1910}{\thefield{year}}
{}
{\skipentry}
}
{
\skipentry %comment out this line if unknown date check is not used.
}
}
}
\defbibcheck{dateunknown}{
\ifboolexpr{
test {\iffieldundef{year}}
and
test {\iffieldundef{origyear}}
}
{}
{\skipentry}
}
%End of automatic sorting
\addbibresource{bibliographySpacing2.bib}
\begin{document}
\nocite{*}
\part*{Bibliography}\addcontentsline{toc}{part}{Bibliography}
\printbibliography[heading=subbibintoc,check=dateunknown,title={Undated Works}]
\clearpage
\printbibliography[heading=subbibintoc,check=pre,title={Works Written Before 1911}]
\clearpage
\printbibliography[heading=subbibintoc,check=post,title={Works Written After 1911}]
\end{document}
输出: