如何确保所有 bibtex 格式数据和用户提供的内容之间都有“~”?

如何确保所有 bibtex 格式数据和用户提供的内容之间都有“~”?

我想确保在类似这样的内容中有一个 ~

\newblock {\cyr\textnumero}~{11-1 (39)}.

代替

\newblock {\cyr\textnumero} {11-1 (39)}.

所以我有类似的 bibtex 记录,其中有一个number={11-1 (39)},它位于行的末尾:

在此处输入图片描述

正如您所看到的,它变得丑陋并且跨行分离。我想消除这种可能性。我想知道如何让 bibtex 在其所有格式化内容(例如“№”、“C.”等)后放置“~”?

我使用 gost705 进行格式化并bibtex8 -B -8 %NAME%.aux使用命令运行支持俄语的 bibtex。但我希望得到一个通用的答案。

答案1

文字来自

FUNCTION {bbl.nr} % { "\bblno{}" }
{
  curlanguage "english" =
    { "no." }
    { curlanguage "german" =
      { "H." }
      { curlanguage "russian" =
        { "{\cyr\textnumero}" }
        { "language is not defined: " language * warning$ "no" }
      if$
      }
    if$
    }
  i
f$
}

或类似bbl.nnr

搜索这些字符串表明它们出现在各个地方,但例如

FUNCTION {format.number}
{ number empty$
    { "" }
    { bbl.nr number tie.or.space.connect }
  if$
}

该函数根据定义的逻辑tie.or.space.connect添加一个空格或~,但你想通过总是添加一个来替换它,这~"~" * 如此

FUNCTION {format.number}
{ number empty$
    { "" }
    { bbl.nr "~" * number * }
  if$
}

以及任何其他用途的类似变化。

\bibliographystyle如果进行这样的更改,您应该使用latex 文档中的命令更改 bst 文件的名称及其引用。

相关内容