将 bib 样式文件合并到新包中

将 bib 样式文件合并到新包中

我想知道如何将 bib 样式文件合并到自定义包中,这样就不必在每个文档的正文中单独规定。

具体来说,我目前使用natbib并呼吁sp.bst放在我的文档末尾\bibliographystyle{C:/Users/Miztli/Documents/BibTeX/sp}之前。\bibliography{C:/Users/Miztli/Documents/BibTeX/references}

答案1

在我看来,尝试将这类内容构建到文件中是不对的.sty。即使考虑到个人风格文件的一些灵活性/松懈性,让它们包含指向其他数据源的硬编码路径似乎也是一种可疑的做法。此外,正如您所指出的,对于参考书目来说,这样做显然很困难,因为它需要加载到哪里。

我更喜欢(大致顺序):

  1. 使用可以插入代码片段的编辑器。例如,在 Emacs 中,使用 yasnippet,可以轻松定义某些内容,以便适当扩展。然后,您生成的每个文件都会透明地了解它正在使用哪些资源。您节省了输入,但您生成的每个文件仍然相当独立。从长远来看,这是件好事。尽管它似乎拥有一个样式文件是一个好主意,但是如果在将来的某个时候你丢失了它或者更改了它,并且忘记了如何、为什么或何时更改了它,那么你就会陷入一片混乱。

  2. 将您的参考书目定义放在单独的文件中,您只需\input在适当的位置添加即可。但实际上......这有什么意义呢。您确实会节省一些击键次数。

  3. 如果你确实必须将其放入文件中.sty,请通过定义自己的合适命令来实现(\makemybibliography或其他东西),它将扩展到你想要的命令,最好事先进行适当的检查,以确保你需要的文件存在于你期望的位置,如果不存在,则给出适当的错误。正确地做到这一点可能是一个很多比为编辑器编写代码片段的工作量更大。

答案2

据我所知,\bibliographystyle 命令可以放在任何地方。它不必放在 \bibliography 命令之前。因此,您可以将其放在包或类中。

答案3

是的,您可以将附加文件捆绑到您的包中(由于代码是用不同的语言编写的,因此无法以任何有意义的方式将.bst代码嵌入到文件中)。.sty

您必须以.dtx可分发软件包的标准方式将其编写为文件,以便当用户安装它时,它将解开您的.sty文件.bst(如果需要,还可以添加更多文件)。然后,用户必须将这些文件放在“正确的位置”,具体解释如下:这里,与其他手动安装的包一样。

但...(非常大,但是),如果 BiBTeX 样式文件已经是 CTAN 上的标准软件包(我在那里找不到它),那么在您的软件包中捆绑私有副本确实是一个非常糟糕的想法。用户应该以正常方式从 CTAN 安装它(如果他们使用的是具有即时安装功能的 TeX 发行版,这可能会自动为他们完成)。

这是sp.bst语义学和语用学? 如果是这样,您应该鼓励他们将其正确捆绑并通过 CTAN 提供(如果他们可以的话),这将使每个人的生活更轻松。无论如何,您当然可以将其添加到您的.dtx文件中,但您需要获得作者或版权所有者的许可,并且您需要一份正式协议来处理更新和覆盖。

保罗·斯坦利提出了一些很好的观点,但是

  1. 恕我直言制作一个正式的包(.sty)文件是一个好主意,但只有当它被写成一个带有.dtx适当文档的文件时才可以安装、维护和引用;
  2. 我不确定我理解为什么2是有用的;
  3. 除了 Emacs 之外,我不知道有任何 LaTeX 编辑器支持片段,强迫作者使用与他们通常使用的编辑器不同的编辑器并不是一个好主意。

考虑从 BiBTeX 转向 biblatex(但如果这个sp.bst文件是 S&P 的,那么你需要说服他们这样做)。

相关内容