BibLatex 参考文献中的中文字符,XeLatex 不是一个选项

BibLatex 参考文献中的中文字符,XeLatex 不是一个选项

我需要在论文中引用中国作者。使用 Latex 可以正常工作,但在 BibLatex 中则不行,我需要在参考文献中引用它。使用 Xelatex 不是一个选择,因为转换时显示太多错误。我之前尝试过几种方法,但没有一种适用于没有 Xelatex 的 Biblatex。有什么新建议吗?

提前致谢!

编辑:

有人要求我发布一个示例,我的 .bib 文件中的一个条目如下所示:

@misc{chin2012pat,
  author={彤陈},
  year={2012},
  title={Obtaining fatty acids from insect larvae},
  howpublished={Investigacion y Comercializacion
  Biotecnologica Omebit S.A, Santiago. US8895767 B2},
  note={Jun. 11, 2010},
}

至于我之前尝试过的方法:我尝试在 biblatex 中使用 CJK 块,当然无法正确编译。然后我尝试搜索 stackexchange,不幸的是所有解决方案都涉及 xelatex。

我的论文中没有很多中文参考文献,所以我想可以通过某种方式对其进行“硬编码”,但我猜不出来了。

多谢!

答案1

biblatex使用选项调用bibencoding=utf8可确保未知的 Unicode 点将保存为文件\x{<code point>}中的.bbl。借助 ,\bibsetup我们可以更改 的含义,\x以便对其参数执行我们想要的操作。

例如,我定义了\x\chinesechar我自己发明的宏名),它加载一个名为 的图形文件pia<code point>,该文件是我用 XeLaTeX 准备的;例如,这是pia5f64.tex

\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{Songti SC}
\begin{document}
^^^^5f64
\end{document}

另一个字符是 Unicode U+9648。

如果你能够强制CJKutf8从 Unicode 生成字符,那么这种间接方法就没有必要了。不幸的是,文档似乎只有中文。

我还在sortnamebib 条目中添加了一个字段,以便获得正确的字母排序(我希望谷歌翻译猜对了)。

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{chin2012pat,
  author={彤陈},
  sortname={{Chen Tong}},
  year={2012},
  title={Obtaining fatty acids from insect larvae},
  howpublished={Investigacion y Comercializacion
  Biotecnologica Omebit S.A, Santiago. US8895767 B2},
  note={Jun. 11, 2010},
}
@article{a,
  author={A. Uthor},
  title={Title},
  journal={Journal},
  year=2013,
}
@article{b,
  author={T. Best},
  title={Title},
  journal={Journal},
  year=2013,
}
\end{filecontents*}

\documentclass{article}

\usepackage{graphicx}

\usepackage[bibencoding=utf8]{biblatex}
\addbibresource{\jobname.bib}
\appto\bibsetup{\let\x\chinesechar}

\newcommand\chinesechar[1]{\includegraphics[height=\fontcharht\font`T]{pia#1}}

\begin{document}

\cite{chin2012pat}, \cite{a}, \cite{b}

\printbibliography

\end{document}

在此处输入图片描述

也许更好的方法

我做了一些盲测实验CJKutf8,这似乎有效。

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{chin2012pat,
  author={{\begin{CJK*}{UTF8}{gbsn}彤陈\end{CJK*}}},
  sortname={{Chen Tong}},
  year={2012},
  title={Obtaining fatty acids from insect larvae},
  howpublished={Investigacion y Comercializacion
  Biotecnologica Omebit S.A, Santiago. US8895767 B2},
  note={Jun. 11, 2010},
}
@article{a,
  author={A. Uthor},
  title={Title},
  journal={Journal},
  year=2013,
}
@article{b,
  author={T. Best},
  title={Title},
  journal={Journal},
  year=2013,
}
\end{filecontents*}

\documentclass{article}
\usepackage{CJKutf8}

\usepackage{graphicx}

\usepackage[bibencoding=utf8]{biblatex}
\addbibresource{\jobname.bib}

\begin{document}

\cite{chin2012pat}, \cite{a}, \cite{b}

\printbibliography

\end{document}

在此处输入图片描述

笔记

filecontents*环境只是为了方便准备自包含的示例。您不需要它,只需.bib在说明中提供您自己的文件即可\addbibresource

答案2

author={彤陈},仅供参考,现在(2019)使用xelatex 中的普通 bib 条目和fontspec合适的字体以及 biblatex/biber看起来一切正常:

中国文字

梅威瑟:

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{chin2012pat,
%  author={{\begin{CJK*}{UTF8}{gbsn}彤陈\end{CJK*}}},
  author={彤陈}, 
  sortname={{Chen Tong}},
  year={2012},
  title={Obtaining fatty acids from insect larvae},
  howpublished={Investigacion y Comercializacion
  Biotecnologica Omebit S.A, Santiago. US8895767 B2},
  note={Jun. 11, 2010},
}
@article{a,
  author={A. Uthor},
  title={Title},
  journal={Journal},
  year=2013,
}
@article{b,
  author={T. Best},
  title={Title},
  journal={Journal},
  year=2013,
}
\end{filecontents*}

\documentclass{article}
%\usepackage{CJKutf8}
\usepackage{fontspec}

\setmainfont{Noto Serif CJK SC}

%\usepackage{graphicx}

%\usepackage[bibencoding=utf8]{biblatex}
\usepackage{biblatex}
\addbibresource{\jobname.bib}

\begin{document}

\cite{chin2012pat}, \cite{a}, \cite{b}

\printbibliography

\end{document}

相关内容