在文件中进行全局搜索和替换.bib?

在文件中进行全局搜索和替换.bib?

我学校的规则之一是使用“~”而不是“--”来合并参考文献引用列表中的页码。我尝试修改原始的 .bst 样式文件,但我对 biblatex 的语法还不熟悉。我发现定义页码默认行为的关键代码如下所示:

   FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
    { t #1 #2 substring$ "--" = not
        { "--" *
          t #2 global.max$ substring$ 't :=
        }
        {   { t #1 #1 substring$ "-" = }
        { "-" *
          t #2 global.max$ substring$ 't :=
        }
          while$
        }
      if$
    }
    { t #1 #1 substring$ *
      t #2 global.max$ substring$ 't :=
    }
      if$
    }
  while$
}

有了这些代码,原始编译后的 latex 文件如下所示: 原始效果

但我希望页码用“~”符号而不是‘--’连接,如下所示: 想要的效果 如果有人能提供帮助我将非常感激。

答案1

给你:

FUNCTION { n.dashify }
{
  't :=
  ""
    { t empty.or.unknown not }
    {
      t #1 #1 substring$ "-" =
        {
          t #1 #2 substring$ "--" = not
            { "\textasciitilde{}" *
              t #2 global.max$ substring$ 't :=
            }
            {
              { t #1 #1 substring$ "-" = }
              {
                t #2 global.max$ substring$ 't :=
              }
              while$
              "\textasciitilde{}" t * 't :=
            }
          if$
        }
        {
          t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

未命名bst语言使用逆波兰表示法,因此程序的逻辑不太容易理解。基本上,如果我们看到一个单独的-,我们就用 代替它\textasciitilde{},如果我们看到一串-,我们就删除它们并\textasciitilde{}用 代替。

答案2

在文件中进行全局搜索和替换.bib

我认为更简单的方法是避免更改任何样式文件,只需在您拥有的.bst任何文件中进行全局搜索和替换。虽然这更容易,但我认为如果其中有任何(长破折号),这不是一个好主意,所以要小心进行任何替换。(此外,我不确定这是否会很好地换行,并对此表示怀疑)。.bib---

在此处输入图片描述

\begin{filecontents}{references.bib}
@article{author00,
title = {{A Title}},
author= {Person, Some},
journal={SIAM Journal on Something},
volume={10},
number={1},
pages={25\textasciitilde2587},
year={2011},
publisher={SIAM}
}

@article{author01,
title = {{A Title}},
author= {Person, Some},
journal={SIAM Journal on Something},
volume={10},
number={1},
pages={25$\sim$2587},
year={2011},
publisher={SIAM}
}
\end{filecontents}

\documentclass[11pt, a4paper, twoside]{extarticle}
\usepackage[numbers, sort&compress]{natbib} % Nice references.
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\bibliographystyle{unsrtnat}
\begin{document}
\noindent
\citet{author00} and \citet{author01}.
\bibliography{references}
\end{document}

相关内容