使用 LuaLaTeX 在 biblatex 中使用特殊字符时出错

使用 LuaLaTeX 在 biblatex 中使用特殊字符时出错

我正在使用 LuaLaTeX,biblatex手册上biblatex说它应该能够编译utf。此消息的底部是一个最小的非工作示例。在最终的 PDF 中,它只是删除了所有重音字符。我可以进入并手动更正文件.bbl(替换√®\'e√∂ = \"o),但这不是一个理想的解决方案。

biber运行 BibTeX(当然是默认引擎)时出现的错误是

信息 - 这是 Biber 1.5
信息 - 日志文件是“Biblatex.blg”
信息 - 阅读“Biblatex.bcf”
信息 - 在 bib 部分 0 中找到 3 个 citekeys
信息 - 处理第 0 节
信息 - 正在查找第 0 节的 bibtex 格式文件“Biblatex.bib”
信息 - 将 LaTeX 字符宏解码为 UTF-8
信息 - 找到 BibTeX 数据源“Biblatex.bib”
信息 - 使用“level = 2”覆盖区域设置“en_US.UTF-8”默认定制“level = 4”
信息 - 使用“variable = non-ignorable”覆盖语言环境“en_US.UTF-8”默认定制“variable = shifted”
信息 - 对“entry”列表“cms”键进行排序
信息 - 没有适用于语言环境“en_US.UTF-8”的排序定制
信息 - 使用编码“UTF-8”写入“Biblatex.bbl”
INFO - 输出至 Biblatex.bbl

然后在 LuaLaTeX 中我收到此错误:

l.50 ...句子~\citep[1666]{Loschel:2010dn}。                                               
./Biblatex.tex:50:包 inputenc 错误:使用的键盘字符未定义
(inputenc)输入编码为“utf8”。
请参阅 inputenc 包文档以获取解释。
输入 H 即可获得紧急帮助。
 ...                                              

l.50 ...句子~\citep[1666]{Loschel:2010dn}。

[1{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]

./Biblatex.tex:53:包 inputenc 错误:Unicode 字符 \u8:√®vr 未设置为用于 LaTeX。

带输入

    \documentclass{report}  

    \usepackage[utf8]{inputenc}     %Use utf-8 encoding for foreign characters
    \usepackage[authordate,natbib,backend=biber,bibencoding=utf8]{biblatex-chicago}

    \begin{filecontents}{\jobname.bib}

    @article{Cherp:2011dt,
    author = {Cherp, Aleh and Jewell, Jessica},
    title = {{The three perspectives on energy security: intellectual history, disciplinary roots and the potential for integration}},
    journal = {Current Opinion in Environmental Sustainability},
    year = {2011},
    volume = {3},
    number = {4},
    pages = {202--212},
    month = sep,
    annote = {(0) {\&}lt;ce:title{\&}gt;Energy Systems{\&}lt;/ce:title{\&}gt;

    }
    }

    @article{Loschel:2010dn,
    author = {L{\"o}schel, Andreas and Moslener, Ulf and R{\"u}bbelke, Dirk T G},
    title = {{Indicators of energy security in industrialised countries}},
    journal = {Energy Policy},
    year = {2010},
    volume = {38},
    number = {4},
    pages = {1665--1671},
    month = may
    }

    @article{Lefevre:2010kz,
    author = {Lef{\`e}vre, Nicolas},
    title = {{Measuring the energy security implications of fossil fuel resource concentration}},
    journal = {Energy Policy},
    year = {2010},
    volume = {38},
    number = {4},
    pages = {1635--1644},
    month = jan
    }


    \end{filecontents}
    \addbibresource{\jobname.bib}

    \begin{document}

    This is the first meaningless sentence ~\citep{Cherp:2011dt}. This is another meaningless sentence ~\citep{Lefevre:2010kz}. A third meaningless example sentence ~\citep[1666]{Loschel:2010dn}.

    \printbibliography

    \end{document}

答案1

如果您进行以下更改(并坚持biber),一切都会顺利进行:

% \usepackage[utf8]{inputenc}
\usepackage{fontspec}

无论如何,您都fontspec拥有更多字体选项。我建议texdoc fontspec在终端提示符下输入(假设您使用 TeX Live 并且没有被困在 Windows 上)。

latex通过/pdflatex或使您的文件可编译的简单方法lualatex是(假设没有其他软件包决定您可以做什么或不能做什么):

\usepackage{ifluatex}

\ifluatex % LuaTeX
  \usepackage{fontspec}
  \defaultfontfeatures{Ligatures=TeX} 
  % load your system fonts; e.g.:
  \setmainfont{LinLibertineO}
  \setsansfont{LinBiolinumO}
  \setmonofont{Inconsolata}
\else % pdfTeX
  \usepackage[utf8]{inputenc}                   
  \usepackage[T1]{fontenc}
  % load some Type 1 font; e.g.:
  \usepackage[fulloldstylenums,largesmallcaps]{kpfonts}
\fi

可以对该包进行类似操作ifxetex....

相关内容