是否可以使用该包获取hyperref
第二份参考书目的超链接multibib
和amsplain
BibTeX 样式?
例子:
\documentclass[12pt]{article}
\usepackage{multibib}
\newcites{two}{More Information}
\usepackage{hyperref}
\hypersetup{hyperindex,colorlinks, citecolor=red}
\begin{filecontents}{main.bib}
@article{Archimedes200,author = {Archimedes},title = {Pi's the limit },
journal = {Rome J. Gastronomical Math.}, year = {200BCE},volume = {10},pages={\textsc{CCCXV}--\textsc{CCCXIV}}}
@article{EulerE1776,Author = {Euler, Leonhard},Title = {All about E},
Journal = {Popular Math.},Year = {1776},Volume = {4},pages={1--2718}}
\end{filecontents}
\begin{filecontents}{second.bib}
@book{BourbakiSets1970,Author={Bourbaki, Nicolas},Title={Th{\'e}orie des ensembles},
Year={1970},Publisher={Hermann},Location={Paris}}
\end{filecontents}
\makeindex
\begin{document}
Archimedes~\cite{Archimedes200} and Euler~\cite{EulerE1776} studied the constants, $\pi$ and $e$, respectively.
Bourbaki~\citetwo{BourbakiSets1970} treats set theory axiomatically.
\bibliographystyle{amsplain}
\bibliography{main}
\bibliographystyletwo{amsplain}
\bibliographytwo{second}
\end{document}
其他帖子建议通过使用natbib
(例如,multibib - hyperref 不适用于我的第二个参考书目)或biblatex
(例如,hyperref 与 multibib 结合的问题)。
然而,我坚持使用amsplain
bibtex 风格,而它似乎不适用于natbib
或biblatex
。
有没有什么解决方法?甚至破解hyperref
或破解multibib
都可以(当然,这不是最好的选择)。
部分解决方案
根据 @jon 的有益建议,以下修改后的源代码确实用于biblatex
创建两个参考书目,每个参考书目都有超链接hyperref
。正如我所希望的那样,这两个参考书目是独立的;并且源文件中不需要任何修改.bib
。我还没有解决修改 bib 样式以使其类似于的问题amsplain
。
然而,尽管我尝试手动重置计数器,但第二份印刷的参考书目仍将其重置为 1。
有没有办法在第一个参考书目编号结束后继续在第二个参考书目中编号?
\documentclass[12pt]{memoir}
\usepackage[style=numeric,backend=bibtex]{biblatex}
\usepackage{hyperref}
\hypersetup{hyperindex,colorlinks, citecolor=red}
\begin{filecontents}{main.bib}
@article{Archimedes200,author = {Archimedes},title = {Pi's the limit },
journal = {Syracuse J. Gastronom.\ Math.}, year = {200BCE},volume = {10},pages={\textsc{CCCXV}--\textsc{CCCXIV}}}
@article{EulerE1776,Author = {Euler, Leonhard},Title = {All about E},
Journal = {Math.\ Psychol.},Year = {1776},Volume = {4},pages={1--2718}}
\end{filecontents}
\begin{filecontents}{two.bib}
@book{BourbakiSets1970,Author={Bourbaki, Nicolas},Title={Th{\'e}orie des ensembles},
Year={1970},Publisher={Hermann},place={Paris}}
\end{filecontents}
\addbibresource{main.bib}
\addbibresource{two.bib}
\begin{document}
Archimedes~\cite{Archimedes200} and Euler~\cite{EulerE1776} studied the constants, $\pi$ and $e$, respectively.
\printbibliography % main
\newrefsection
\defbibnote{readprenote}{Here are some suggested readings.}
\printbibliography[title={Additional Readings},resetnumbers=3,prenote=readprenote] % two
Bourbaki~\cite{BourbakiSets1970} treats set theory axiomatically.
\end{document}
修复第二个参考书目编号
使用refsegment
来自 的环境biblatex
,而不是,并在加载 时\newrefsection
添加选项,似乎可以解决编号问题:默认情况下,第二个参考书目的编号将从第一个参考书目中的最后一个数字之后的下一个数字开始。defernumbers=true
biblatex
以下是完整的源代码,但经过了修改:
\documentclass[12pt]{memoir}
\usepackage[style=numeric,backend=bibtex,defernumbers=true]{biblatex}
\usepackage{hyperref}
\hypersetup{hyperindex,colorlinks, citecolor=red}
\begin{filecontents}{main.bib}
@article{Archimedes200,author = {Archimedes},title = {Pi's the limit },
journal = {Syracuse J. Gastronom.\ Math.}, year = {200BCE},volume = {10},pages={\textsc{CCCXV}--\textsc{CCCXIV}}}
@article{EulerE1776,Author = {Euler, Leonhard},Title = {All about E},
Journal = {Math.\ Psychol.},Year = {1776},Volume = {4},pages={1--2718}}
\end{filecontents}
\begin{filecontents}{two.bib}
@book{BourbakiSets1970,Author={Bourbaki, Nicolas},Title={Th{\'e}orie des ensembles},
Year={1970},Publisher={Hermann},place={Paris}}
\end{filecontents}
\addbibresource{main.bib}
\addbibresource{two.bib}
\begin{document}
\begin{refsegment}
Archimedes~\cite{Archimedes200} and Euler~\cite{EulerE1776} studied the constants, $\pi$ and $e$, respectively.
\end{refsegment}
\printbibliography[segment=1] % main
\defbibnote{readprenote}{Here are some suggested readings.}
\printbibliography[title={Additional Readings},prenote=readprenote,segment=2]
\begin{refsegment}
Bourbaki~\cite{BourbakiSets1970} treats set theory axiomatically.
\end{refsegment}
\end{document}
请注意,即使第二个参考书目的引用在打印之后才出现,这种方法仍然有效。