我需要在论文中引用中国作者。使用 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 生成字符,那么这种间接方法就没有必要了。不幸的是,文档似乎只有中文。
我还在sortname
bib 条目中添加了一个字段,以便获得正确的字母排序(我希望谷歌翻译猜对了)。
\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}