我正在运行我的 CV,它是通过调用 pdflatex,然后调用 biber,然后调用 pdflatex 两次来编译的。我在 Mendeley 中生成了一个 .bib 文件,biber 正在读取该文件。
当我在 Mac 笔记本电脑上运行此脚本时,我收到 Unicode \u8 未设置为用于 Latex 的错误,此错误已在本站的许多问题中提及。但是,当我在 Linux Mint 机器上运行完全相同的代码时,我没有收到任何错误,并且一切都编译得很顺利。
我推测这可能与我所使用的 biber 版本有关(我的 Linux 机器上是 1.8,Mac 上是 2.1),但对此我有点困惑。
请注意:原始版本包含有关编号的附加问题,但我将把它移至新问题。我进行了编辑,以便将来浏览此问题的人不会感到困惑。
MWE 如下(仅作为两个单独的文件):
我的论文集
@unpublished{exampletwo,
author = {Last-name, Firstname and lname, En\'{e}as},
booktitle = {In Review},
title = {{Pick a Title}}
}
@inproceedings{exampleone,
author = {Jones, Jim and Example, Jos\'{e}},
booktitle = {Sustentabilidade H{\'{\i}}drica}},
year = {2014}
}
主文本
\documentclass[11pt,letterpaper,roman]{moderncv}
% moderncv themes
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}% character
\usepackage{csquotes}
%---------------------Bibliography and BiBLaTeX--------------------
% Use BibLaTeX
\usepackage[backend=biber,
sorting=ynt]{biblatex}
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\makeatletter
% Print labelnumber as actual number, plus item total, minus one
\newrobustcmd{\mkbibdesc}[1]{%
\number\numexpr\csuse{bbx@itemtotal}+1-#1\relax}
% Initialize category counters
\def\bbx@initcategory#1{\csnumgdef{bbx@count@#1}{0}}
\forlistloop{\bbx@initcategory}{\blx@categories}
% Increment category counters
\def\bbx@countcategory#1{%
\ifentrytype{#1}
{\csnumgdef{bbx@count@#1}{\csuse{bbx@count@#1}+1}%
\addtocategory{#1}{\thefield{entrykey}}%
\listbreak}
{}}
\AtDataInput{\forlistloop{\bbx@countcategory}{\blx@categories}}
% Modify \bibbycategory to set item total
\patchcmd{\blx@bibcategory}
{\blx@key@heading{#1}}
{\blx@key@heading{#1}%
\csnumdef{blx@labelnumber@\the\c@refsection}{0}%
\csnumgdef{bbx@itemtotal}{\csuse{bbx@count@#1}}}
{}{}
\makeatother
\DeclareBibliographyCategory{unpublished}
\DeclareBibliographyCategory{inproceedings}
\defbibheading{bibliography}{\section*{Publications and Presentations}}
\defbibheading{unpublished}{\subsection*{Articles In Review}}
\defbibheading{inproceedings}{\subsection*{Conference Papers}}
\addbibresource{MyPapers.bib}
%------------------------ personal data -------------------------------------
\name{Firstname}{Name}
\begin{document}
\makecvtitle
% Publications
\nocite{*} % count all pubs as cited
\printbibheading
\bibbycategory
\end{document}
答案1
在处理和排序过程中,biber 将重音字符的数字命令转换为“字形 + 组合重音符号”,在您的情况下为“i + COMBINING GRAVE ACCENT (U+0300)”。
pdflatex 无法处理此类“组合重音”,因此您会收到 utf8-inputenc 错误。与大多数其他 inputenc 错误不同,您无法更正它,只能完全隐藏重音。
如果字体没有重音,xelatex 和 lualatex 就无法处理它们。
Hídrica
您可以通过在 bib 的输入中使用正确的字形 ( ) 来避免该问题 - 正如 cfr 已经写过的一样。
您也可以通过使用 来避免这种情况biber --output-safechars
。然后 biber 将尝试将此类字符作为宏写入 bbl。您还可以编写自己的重新编码数据并使用 加载它biber --recodedata=myrecode.xml
。使用这样的文件,您可以完全控制输出。
答案2
根据我的经验,使用 unicode 字符而不是 LaTeX 宏更可靠。例如,以下内容编译时没有错误:
\begin{filecontents}{\jobname.bib}
@unpublished{exampletwo,
author = {Last-name, Firstname and lname, En\'{e}as},
booktitle = {In Review},
title = {{Pick a Title}}
}
@inproceedings{exampleone,
author = {Jones, Jim and Example, Jos\'{e}},
booktitle = {Sustentabilidade Hídrica}},
year = {2014}
}
\end{filecontents}
\documentclass[11pt,letterpaper,roman]{moderncv}
% moderncv themes
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}% character
\usepackage{csquotes}
%---------------------Bibliography and BiBLaTeX--------------------
% Use BibLaTeX
\usepackage[backend=biber,
sorting=ynt]{biblatex}
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\makeatletter
% Print labelnumber as actual number, plus item total, minus one
\newrobustcmd{\mkbibdesc}[1]{%
\number\numexpr\csuse{bbx@itemtotal}+1-#1\relax}
% Initialize category counters
\def\bbx@initcategory#1{\csnumgdef{bbx@count@#1}{0}}
\forlistloop{\bbx@initcategory}{\blx@categories}
% Increment category counters
\def\bbx@countcategory#1{%
\ifentrytype{#1}
{\csnumgdef{bbx@count@#1}{\csuse{bbx@count@#1}+1}%
\addtocategory{#1}{\thefield{entrykey}}%
\listbreak}
{}}
\AtDataInput{\forlistloop{\bbx@countcategory}{\blx@categories}}
% Modify \bibbycategory to set item total
\patchcmd{\blx@bibcategory}
{\blx@key@heading{#1}}
{\blx@key@heading{#1}%
\csnumdef{blx@labelnumber@\the\c@refsection}{0}%
\csnumgdef{bbx@itemtotal}{\csuse{bbx@count@#1}}}
{}{}
\makeatother
\DeclareBibliographyCategory{unpublished}
\DeclareBibliographyCategory{inproceedings}
\defbibheading{bibliography}{\section*{Publications and Presentations}}
\defbibheading{unpublished}{\subsection*{Articles In Review}}
\defbibheading{inproceedings}{\subsection*{Conference Papers}}
\addbibresource{\jobname.bib}
%------------------------ personal data -------------------------------------
\name{Firstname}{Name}
\begin{document}
\makecvtitle
% Publications
\nocite{*} % count all pubs as cited
\printbibheading
\bibbycategory
\end{document}
并产生预期的输出:
不要问我为什么可以用e
而不能用i
。我不知道 ;)。