双语文本的作者-年份书目

双语文本的作者-年份书目

我正在写一篇论文,其中引言是法语的,而章节是英语的。我想在引言和章节中引用一些论文,并使用适当的介词。例如,我想引用作者 1 和作者 2 于年份 1 发表的“论文 1”,这样在引言中会产生“作者 1 et 作者 2(年份)”,在章节中会产生“作者 1 and 作者 2”(年份),这两个参考文献都对应于末尾参考页中的一个条目(其中它是“et”还是“and”并不重要)。可以吗?我使用 natbib 和 econ-aer.bst 作为参考书目。

我曾尝试使用:

\newcommand*{\andname}{et }
  \addto \captionsenglish {\renewcommand*{\andname}{and }}
  \addto \captionsfrench  {\renewcommand*{\andname}{et }} 

\newcommand*{\liaisonname}{et }
  \addto \captionsenglish {\renewcommand*{\liaisonname}{and }}
  \addto \captionsfrench  {\renewcommand*{\liaisonname}{et }} 

\andname并在 econ-aer.bst中将“and”替换为FUNCTION {bst.and}& FUNCTION {bst.ands},将“and”替换\liaisonnameFUNCTION {bst.cite.and}& FUNCTION {bst.cite.ands}。这样就可以选择使用“et”还是“and”,并在文本和参考页面中使用不同的介词,但这并不能满足我的要求。

以下是参考书目样式的链接:http://shirotakeda.org/en/tex/econ-bst.html

举个例子(在这个例子中,引用是“Author1作者 2 (2003)”,而我希望在引言和章节中都使用“作者 1Author2 (2003)” 引言中写道):

\documentclass[a4paper,12pt]{report}
\usepackage[latin1]{inputenc}   
\usepackage[T1]{fontenc}
\usepackage{natbib} 
\usepackage[frenchb,english]{babel}

\newcommand*{\andname}{et }
  \addto \captionsenglish {\renewcommand*{\andname}{and }}
  \addto \captionsfrench  {\renewcommand*{\andname}{et }} 

\newcommand*{\liaisonname}{et }
  \addto \captionsenglish {\renewcommand*{\liaisonname}{and }}
  \addto \captionsfrench  {\renewcommand*{\liaisonname}{et }} 

\begin{document}

\selectlanguage{french}
\chapter{Introduction générale}

Bla bla bla bla bla bla bla \cite{author12003}.

\selectlanguage{english}
\chapter{A Fancy Title}

Bla bla bla bla bla bla bla \cite{author12003}.

\selectlanguage{english}
\bibliographystyle{econ-aer}
\renewcommand\bibname{References}
\bibliography{biblio}

\end{document}  

biblio.bib 中的条目是:

@Article{author12003,
  author={Author1 and Author2},
  title={{Title}},
  journal={Journal},
  year=2003,
  volume={71},
  number={5},
  pages={1491--1517},
  month={09}}

答案1

natbib\bibitem通过读取参考书目中的可选参数/来获取作者年份信息\harvarditem。但由于参考书目通常包含在文档末尾,因此该信息来得太晚而无法使用,因此 LaTeX 将其保存在文件中.aux,以便可以从文档开头使用。

(参考书目.bbl)包含以下行

\harvarditem[Author1 \andname{} Author2]{Author1 \andname{} Author2}{2003}{author12003}

.aux然后将其写入

\bibcite{author12003}{{1}{2003}{{Author1 and{} Author2}}{{Author1 and{} Author2}}}

为什么会发生这种情况?当 LaTeX 向.aux文件写入内容时,它会扩展写入的文本,请参阅关于写入和读取辅助文件(.aux、.toc 等)的基础知识.aux。写入的位置\andname具有含义and,因此最终会出现在.aux文件中。

一个简单的解决方案是使其\andname坚固。确保在写入文件时不会扩展.aux,以便.aux包含

\bibcite{author12003}{{1}{2003}{{Author1 \andname{} Author2}}{{Author1 \andname{} Author2}}}

与您已应用于文件的更改一起.bst(将更改的文件重命名为econ-aer-ml.bst

--- econ-aer.bst    2018-07-20 15:27:43.069689500 +0200
+++ econ-aer-ml.bst 2018-07-20 14:53:32.187363500 +0200
@@ -228,7 +228,7 @@
 % String replaced with _ in "Mr. A _ Mr. B "
 %
 FUNCTION {bst.and}
-{ ", and " }
+{ " \andname{} " }
 % { " and " }    % (default)

 %%% String used to separate author names in references (more than two authors).
@@ -236,21 +236,21 @@
 % String replaced with _ in "Mr. A, Mr. B _ Mr. C"
 %
 FUNCTION {bst.ands}
-{ ", and " }    % (default)
+{ " \andname{} " }    % (default)

 %%% String used to separate author names in citation part.
 %
 % String replaced with _ in "Mr. A _ Mr. B "
 %
 FUNCTION {bst.cite.and}
-{ " and " }    % (default)
+{ " \andname{} " }    % (default)

 %%% String used to separate author names in citation part (more than two authors).
 %
 % String replaced with _ in "Mr. A, Mr. B _ Mr. C"
 %
 FUNCTION {bst.cite.ands}
-{ " and " }    % (default)
+{ " \andname{} " }    % (default)

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

数学家协会

\documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{natbib}
\usepackage[frenchb,english]{babel}
\usepackage{etoolbox}

\newrobustcmd*{\andname}{et}
  \addto \extrasenglish {\renewrobustcmd*{\andname}{and}}
  \addto \extrasfrench  {\renewrobustcmd*{\andname}{et}}

\newrobustcmd*{\liaisonname}{et}
  \addto \extrasenglish {\renewrobustcmd*{\liaisonname}{and}}
  \addto \extrasfrench  {\renewrobustcmd*{\liaisonname}{et}}

%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{author12003,
  author={Author1 and Author2},
  title={{Title}},
  journal={Journal},
  year=2003,
  volume={71},
  number={5},
  pages={1491--1517},
  month={09}}
\end{filecontents}

\begin{document}
\selectlanguage{french}
\chapter{Introduction générale}
Bla bla bla bla bla bla bla \cite{author12003}.

\selectlanguage{english}
\chapter{A Fancy Title}
Bla bla bla bla bla bla bla \cite{author12003}.

\selectlanguage{english}
\bibliographystyle{econ-aer-ml}
\renewcommand\bibname{References}
\bibliography{\jobname}
\end{document}

给出

“作者 1 和作者 2 (2003)”

“作者 1 和作者 2 (2003)”


biblatex提供开箱即用的多种语言支持。因此,如果您不必使用natbibecon-aer,您可能需要考虑切换到biblatex。请参阅bibtex 与 biber 以及 biblatex 与 natbib 的比较要切换到 biblatex 该怎么做?

\documentclass[french,british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{sigfridsson}

\selectlanguage{french}\cite{sigfridsson}

\selectlanguage{british}\cite{sigfridsson}

\printbibliography
\end{document}

在此处输入图片描述

相关内容