我的 scrbook 有一个问题,当我编译时,ï 和 î 不起作用\printbibliography
。但问题只出现在这两个重音符号上……
我从 Papers2 for Mac 应用程序导出我的 .bib,我使用 TexShop、UTF8 编码,并且我是 Biber 和 Biblatex 的新手。
请帮忙!谢谢。
我的参考:
@book{GoncalvesdaCosta:2000tw,
author = {Goncalves Da Costa, H{\'e}lo{\"\i}sa},
title = {{Les mus{\'e}es d'histoire de ville leur contribution au d{\'e}veloppement social contemporain.}},
publisher = {Universit{\'e} du Qu{\'e}bec {\`a} Montr{\'e}al},
year = {2000},
address = {Montr{\'e}al}}
我的最低配置:
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt]{scrbook}
\usepackage[english,frenchb]{babel}
\usepackage[quiet]{fontspec}
\usepackage[automark]{scrpage2}
\usepackage[babel,french=guillemets*]{csquotes}
\usepackage[backend=biber,style=authortitle-ticomp,doi=false]{biblatex}
\frenchbsetup{FrenchFootnotes=false}
\MakeOuterQuote{"}
\setmainfont[Mapping=tex-text, Ligatures={Common, Rare}, Numbers={OldStyle}]{Adobe Garamond Pro}
\addtokomafont{disposition}{\normalfont}
\addtokomafont{pageheadfoot}{\normalfont}
\addtokomafont{pagenumber}{\normalfont}
\addtokomafont{footnote}{\normalfont}
\addtokomafont{footnotereference}{\normalfont}
\addbibresource{Biblio.bib}
\AtBeginBibliography{\def\UrlFont{\scriptsize}}
\begin{document}
"Héloïse"\footcite{GoncalvesdaCosta:2000tw}.
\printbibliography
\end{document}
答案1
简短回答
Biber 无法理解{\"\i}
。使用以下方法修复编码recode
:
recode -d latex..UTF-8 biblio.bib
答案太长
问题似乎出在你的参考书目中的字符串{\"\i}
(它本来应该代表ï
)。Biber 搞混了,把它解释为{\"ı}
,这是无意义的,反过来,这导致了糟糕的输出。
那么问题是,如何处理这个有问题的角色?一般有两种答案:
- 改变参考书目的处理方式
- 从参考书目中删除有问题的字符串
1. 改变参考书目的处理方式
1.1 用 呼叫 biber --output_safechars
。
要强制biber
传递{\"\i}
不变的内容,从而获得正确的输出,只需使用以下选项--output_safechars
:
xelatex document
biber --output_safechars document
xelatex document
xelatex document
1.2. 用作bibtex8
后端。
BibTeX
{\"\i}
过程中不进行修改和它可以与“BibLaTeX”一起使用。(可以但不建议使用BibTeX
代替biber
,因为许多高级功能只能与后者一起使用。)为此,请设置选项backend=bibtex8
。您的 MWE 将如下所示:
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt]{scrbook}
\usepackage[english,frenchb]{babel}
\usepackage[quiet]{fontspec}
\usepackage[automark]{scrpage2}
\usepackage[babel,french=guillemets*]{csquotes}
\usepackage[backend=bibtex8,style=authortitle-ticomp,doi=false]{biblatex} % <-- changed backend
\frenchbsetup{FrenchFootnotes=false}
\MakeOuterQuote{"}
\setmainfont[Mapping=tex-text, Ligatures={Common, Rare}, Numbers={OldStyle}]{Adobe Garamond Pro}
\addtokomafont{disposition}{\normalfont}
\addtokomafont{pageheadfoot}{\normalfont}
\addtokomafont{pagenumber}{\normalfont}
\addtokomafont{footnote}{\normalfont}
\addtokomafont{footnotereference}{\normalfont}
\addbibresource{biblio.bib}
\AtBeginBibliography{\def\UrlFont{\scriptsize}}
\begin{document}
"Héloïse"\footcite{GoncalvesdaCosta:2000tw}.
\printbibliography
\end{document}
要编译文档,请调用:
xelatex document
bibtex document
xelatex document
xelatex document
两种方式都可以生成正确呈现的 PDF ï
:
2. 避免{\"\i}
陷入参考书目
2.1. 更改导出的书目
通用方法是将\"\i
参考书目中的所有 替换为\"i
。任何能够搜索和替换字符串的文本编辑器都可以做到这一点。当然,有工具可以为您做到这一点。sed
是其中之一:
sed s/\\"\\i/\\"i/g < in.bib > out.bib
别担心,除了 之外还有其他的sed
。命令行上最好的工具当然是recode
,您要做的就是:
recode -d latex..UTF-8 biblio.bib
(遗憾的是,recode 并未预装在 Mac OS X 中,但可以通过Homebrew
。
由于您使用的是 Mac,因此您可以使用BibDesk
:
- 使用 BibDesk 打开你的参考书目:
- 导出(菜单 --> 文件 --> 导出...)为
BibTeX
和Unicode (UTF-8)
:
这将为您提供有效的 UTF-8 BibLaTeX 兼容文件:
%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/
%% Created for you at 2014-02-11 23:42:00 +0000
%% Saved with string encoding Unicode (UTF-8)
@book{GoncalvesdaCosta:2000tw,
Address = {Montréal},
Author = {Goncalves Da Costa, Héloïsa},
Publisher = {Université du Québec à Montréal},
Title = {{Les musées d'histoire de ville leur contribution au développement social contemporain.}},
Year = {2000}}
2.2. 使用可以导出 BibLaTeX 的软件
答案2
LuaTeX 的字形不适用于 Garamond Regular。我尝试使用 Garamond Pro 和 Garamond Premier Pro。只有斜体和粗体版本显示该字符。但 EBGaramond 有:
xelatex
如果我用而不是 来运行示例,lualatex
那么 AGaramondPro 也一切正常:
正如 Enrico 所说,如果您没有 EBGaramond,请使用其他字体,至少对于参考书目来说是这样。但是,您可以使用 unicode 字符编写参考书目:
@book{GoncalvesdaCosta:2000tw,
author = {Goncalves Da Costa, Héloïsea},
title = {Les musées d'histoire de ville leur contribution au développement social contemporain.},
publisher = {Université du Québec à Montréal},
year = {2000},
address = {Montréal}}
Biber 可以处理所有这些。