ElegantLaTeX/ElegantBook

可不可以把 \addbibresource[location=local]{reference.bib} 去掉

Closed this issue · 10 comments

在宏包里放这条命令,用户就无法更改 .bib 名称。最主要的是,如果用户不仔细阅读最新的更新,就无法知道,使用别的名称会导致 biber 执行错误。我如果不看源代码,白白浪费一天还不说,估计到明天也还发现不了这个问题。

在宏包里放这条命令,用户就无法更改 .bib 名称。最主要的是,如果用户不仔细阅读最新的更新,就无法知道,使用别的名称会导致 biber 执行错误。我如果不看源代码,白白浪费一天还不说,估计到明天也还发现不了这个问题。

你可以在谷歌学术,Mendeley,Endnote 中获得文献条目(bib item),然后把它们添加到 \lstinline{reference.bib} 中。在文中引用的时候,引用它们的键值(bib key)即可。注意需要在编译的过程中添加 \hologo{biber} 编译。

在宏包里放这条命令,用户就无法更改 .bib 名称。最主要的是,如果用户不仔细阅读最新的更新,就无法知道,使用别的名称会导致 biber 执行错误。我如果不看源代码,白白浪费一天还不说,估计到明天也还发现不了这个问题。

你可以在谷歌学术,Mendeley,Endnote 中获得文献条目(bib item),然后把它们添加到 \lstinline{reference.bib} 中。在文中引用的时候,引用它们的键值(bib key)即可。注意需要在编译的过程中添加 \hologo{biber} 编译。

我不是说,不能用 reference.bib。只是这样用户就没得选择 .bib 的文件名。回给用户造成不必要的麻烦。另外,把 biber 固定为 biblatexbackend,也缺乏灵活性。

就两个点回复下:

  1. 这个模板不是开袋即食的东西,不看说明文档没有理由;
  2. 设置的灵活性和易用性并不是一致的,full flexible 是 article / book。

过往的需求改动也都是在较多用户反馈之后才改动的。

  1. addbibresource 命令可以是重复使用的,所以在哪加是无所谓的,你可以加n个都行, 所以有需要,你自己在文档中加上即可。从模板的角度看,为了能让用户一开始就能编译,这样加上也是无可厚非的。
  2. 另外默认使用biber后端,这也是正常的,因为使用biblatex,还是最好用biber,而不是bibtex。因为你把后端换成bibtex,也无法使用其它bst(除了biblatex提供的bst外)。如果需要使用传统的参考文献方法,那么连biblatex也要删掉,也就无所谓后端是啥了。

我想出现这种问题,主要还是传统的bibtex方法限制了想象力,而大多数人不熟悉biblatex,以为是相同的用法,甚至连bibtex都不是非常熟悉的,因为入门教程像lshort只是教你会按部就班会用,很对细节都是没有说的。像最新的lshort-zh-cn虽然介绍了biblatex,但只是从bibtex的替代品的角度出发介绍的,并没有从一个完整的解决方案的角度介绍的,实际上biblatex做了很多很多创新,就包括这个bib文件可以任意加的功能。后面有机会我再去更新一下lshort-zh-cn,把一些用法差异,功能改进加入进去,这样避免后来者被传统方法局限了。

就两个点回复下:

  1. 这个模板不是开袋即食的东西,不看说明文档没有理由;

文档里只说可以从网上得到 bib item 添加入 reference.bib,并没有说一定要用这个文件名,否则会出现错误。另外,文档中提到要用 bibtex 编译一次,我想这应该是个笔误。

  1. 设置的灵活性和易用性并不是一致的,full flexible 是 article / book。

就像 @hushidong 说的,biblatex 相对来说还是个新事物。虽然功能很强大,但是对于用惯 bibtex 的用户,使用起来并不一定顺手。我想这也是为啥虽然 biblatex 推荐用 biber 处理文献,但是还是给用户留了可选 bibtex 的余地。既然 citestyle 和 bibstyle 可以作为 elegantbook 的 option,为啥不把 backend 也做成 option 呢?

过往的需求改动也都是在较多用户反馈之后才改动的。

很多改动确实很方便,比如定理环境的改动,因为改动后使用起来更简单方便。但是从 bibtex 改到 biblatex 感觉还是差点。

以上只是一点建议。

  1. addbibresource 命令可以是重复使用的,所以在哪加是无所谓的,你可以加n个都行, 所以有需要,你自己在文档中加上即可。从模板的角度看,为了能让用户一开始就能编译,这样加上也是无可厚非的。
  2. 另外默认使用biber后端,这也是正常的,因为使用biblatex,还是最好用biber,而不是bibtex。因为你把后端换成bibtex,也无法使用其它bst(除了biblatex提供的bst外)。如果需要使用传统的参考文献方法,那么连biblatex也要删掉,也就无所谓后端是啥了。

我想出现这种问题,主要还是传统的bibtex方法限制了想象力,而大多数人不熟悉biblatex,以为是相同的用法,甚至连bibtex都不是非常熟悉的,因为入门教程像lshort只是教你会按部就班会用,很对细节都是没有说的。像最新的lshort-zh-cn虽然介绍了biblatex,但只是从bibtex的替代品的角度出发介绍的,并没有从一个完整的解决方案的角度介绍的,实际上biblatex做了很多很多创新,就包括这个bib文件可以任意加的功能。后面有机会我再去更新一下lshort-zh-cn,把一些用法差异,功能改进加入进去,这样避免后来者被传统方法局限了。

期待你的 biblatex 的使用介绍。

介绍一直是有的,只是看的人不多。只是核心入门教程lshort里面没有深入介绍。

之所以backend不推荐bibtex,因为使用他很多功能会失去的。使用相同样式,用bibtex不一定能得到与使用biber相同的输出的。这只是一种兼容性手段。

使用介绍资料:

英文的:

中文的:

另外,换成biblatex用的不顺手,不会因为后端变为bibtex就变得顺手的,只是把编译程序换成了bibtex,用法没有任何差别,反而可能带来功能上的弱化,输出的不确定。

我以为你说用的顺手其实想用传统的参考文献方法,跟biblatex的后端切换没关系。你更希望的是用一个选项切换传统方法和biblatex方法,这种功能在ucasthesis等模板都在用。

所以我想你既然熟悉传统bibtex的方法,那么把biblatex注释掉换传统方法即可。

另外,换成biblatex用的不顺手,不会因为后端变为bibtex就变得顺手的,只是把编译程序换成了bibtex,用法没有任何差别,反而可能带来功能上的弱化,输出的不确定。

我以为你说用的顺手其实想用传统的参考文献方法,跟biblatex的后端切换没关系。你更希望的是用一个选项切换传统方法和biblatex方法,这种功能在ucasthesis等模板都在用。

所以我想你既然熟悉传统bibtex的方法,那么把biblatex注释掉换传统方法即可。

我说的就是这个意思。希望能可以在bibtex 和 biblatex 之间相对自由的选择。
谢谢你共享的资料!