一个实战:如何定制本主页的参考文献样式

这是我提问在ctex.org上的问题: 如何将参考文献序号倒排?

1、需要将参考文献的序号[1],[2],...[10]倒排成为[10],[9],...[1]。注意,不是引用的时候倒排,而是在最后参看文献列示的区域。如何实现?

2、与此相关的一个问题,如何在正文区,出现完整的参考文献(如参考文献区显示一样),而非只是参考文献的引用符号?

3、另外顺带一个小问题,在双栏模式下如何排出一个通栏的长公式?或者,在双栏模式下,一个很长的公式,如何排得比较美观一些?

谢谢。

自问自答:如何将参考文献序号倒排?

本想偷懒问别人,没人理我。只好自己想办法解决了:

问题1解决方案:

1.1 挑一个最靠近我要求的.bst文件,如unsrt.bst;

1.2 增加下面的函数代码:
INTEGERS {counter} ;设定一个全局计数器变量

FUNCTION{ init.counter } ;计数器变量清零
{ #0  'counter := }

FUNCTION{ step.counter } ;计数器变量递增
{ #1 counter + 'counter := }

FUNCTION{ down.counter } ;计数器变量递减
{ counter #1 - 'counter := }

FUNCTION{ write.counter } ;输出当前计数器变量的值,并递减当前计数器变量
{ counter int.to.str$
write$
down.counter
counter top$
}

1.3 在函数调用EXECUTE {begin.bib}后增加下面两个函数调用,统计出全部的参考文献的数目:
EXECUTE{ init.counter }
ITERATE{ step.counter }

1.4 修改原有函数output.bibitem,增加如下代码:
FUNCTION {output.bibitem}
{ newline$
  "\bibitem[" write$ write.counter "]{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

1.5 重新改名生成新的.bst文件,如my.bst

1.6 使用my.bst作为你的新的style文件即可。

顺便说明为什么会有上面奇怪的应用需求:我在编写个人网页的时候,把自己的发表论文列举出来,当然时间上是从新到旧,但是,论文编号就要求序号倒排,这样,新增加论文后,每篇论文前的编号就可以不改动了。

问题2的解决:使用bibentry宏包。这在ctex-faq中有介绍。怪我自己没有认真看。 应用场合:在个人网页中,需要列举部分论文的题目等记录,而不是引用这些论文。

问题3的解决:没有好的方法,只能自己编排指定版面下的公式。



Qiang Lv 2009-04-02