我正在使用 overleaf 编写一份 LaTeX 文档,需要同时用法语和英语编写。我使用包\citalp
中的函数natbib
,它进行如下引用:
- Smith,1999。如果 1 位作者
- Smith 和 Jones,1999 年。如果有 2 位作者。
- Smith 等人,1999 年。如果有超过 2 位作者。
但是当我用法语写作时,对于两位作者的情况,我需要引用“Smith et Jones, 1999”,“et”代表“and”。但我仍然需要保留\citalp
英文段落。
下面是我所拥有的一个例子:
TeX 文件:
\documentclass[a4paper,12pt]{article}
\usepackage{natbib}
\begin{document}
\section{French section}
Let's say this is french text for which i need to cite "Smith et Jones, 1999" but sadly, the citealp function gives me this: \citealp{smith1999}
\section{English section}
This paragraph is written in English so using citealp is what i need: \citealp{smith1999}
\bibliographystyle{plainnat}
\bibliography{test}
\end{document}
测试文件
@article{smith1999,
author = {Smith, A. and Jones, B.},
title = {A very nice paper},
journal = {Great Journal},
year = {1999}
}
答案1
如果您不必绝对使用 -package natbib
,我建议您进行相当轻松的切换biblatex
(使用 natbib=true)。moewe 绝对正确,这种改变将使您的生活变得轻松很多。
有几件事需要改变,比如删除法语姓名中的小写字母(参见我的 MWE 中的评论)和几个首字母。这非常接近natbib
并将无限简化您的生活。
我已经使用 overleaf 测试了以下最小工作示例。它开箱即用:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Bibliography-Settings
\usepackage[
style=authoryear,giveninits=true,uniquename=init,natbib=true
]{biblatex}
% Remove small caps in the French version
\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}
\addbibresource{test.bib}
\usepackage{csquotes}
\usepackage[french,english]{babel}
\begin{document}
\section{French section}
\selectlanguage{french}
Let's say this is french text for which i need to cite "Smith et Jones, 1999" but sadly, the citealp function gives me this: \citealp{smith1999}
\section{English section}
\selectlanguage{english}
This paragraph is written in English so using citealp is what i need: \citealp{smith1999}
\printbibliography
\end{document}
它看起来是这样的: