非英语文内引用

非英语文内引用

我已将 lyx 文档中的语言设置更改为丹麦语,但文内引用仍然为例如 ( Jones and Jones, 2013) 而不是 ( Jones og Jones, 2013),后者是丹麦语的对应词。

可以改变这一点吗?或者and改成&

答案1

我假设您正在使用包natbib。然后在文档的序言中尝试:

\renewcommand\betweenauthors{og}
\providecommand\harvardand{}
\renewcommand\harvardand{og}

答案2

如果您使用依赖于样式的包.bst,则必须.bst自己手动编辑文件。

例如,如果你使用\bibliographystyle{plain},我们需要修改plain.bst(你可以在 中找到样式texmf/bibtex/bst),相关的功能是FUNCTION {format.names}

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
        { "," * }
        'skip$
          if$
          t "others" =
        { " et~al." * }% change this if you like
        { " og " * t * }% <----- change this from " and " to " og "
          if$
        }
      if$
    }
    't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

以不同的名称保存此文件,例如plaindan.bst,LaTeX 可以找到它并将行更改\bibliographystyle{plain}\bibliographystyle{plaindan}

答案3

嗯,就我而言,Herbert 和 moewe 的建议没有帮助。我不得不改变FUNCTION {format.lab.names}

%                       There are three apalike cases: one person (Jones),
%                       two (Jones and de~Bruijn), and more (Jones et~al.).
%                       This function is much like format.crossref.editors.
%
FUNCTION {format.lab.names}
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " et~al." * }
            { " and " * s #2 "{vv~}{ll}" format.name$ * } <-- Change here
          if$
        }
      if$
    }
  if$
}

相关内容