![natbib 和 multibib 的问题](https://linux22.com/image/431538/natbib%20%E5%92%8C%20multibib%20%E7%9A%84%E9%97%AE%E9%A2%98.png)
与我的相关上一个问题,可以通过更改 TeXStudio 配置来解决
bibtex.exe -- ?*.aux
natbib
我仍然对和的组合感到困惑multiref
。
我的例子
\documentclass[a4paper]{article}
\usepackage{filecontents}
\begin{filecontents}{bib.bib}
@book{tolkien_93,
title={The Lord of the Rings: Part 1: The Fellowship of the Ring},
author={Tolkien, John Ronald Reuel},
year={1993},
publisher={Christian Blind Mission International}
}
@book{tolkien_66,
title={The Lord of the Rings. Part 2: The Two Towers},
author={Tolkien, John Ronald Reuel},
year={1966},
publisher={Allen and Unwin}
}
@book{tolkien_55,
title={The Lord of the Rings. Part 3: The Return of the King},
author={Tolkien, John Ronald Reuel},
year={1955},
publisher={Allen \& Unwin}
}
@book{tolkien_79,
title={The silmarillion},
author={Tolkien, JR John Ronald Reuel},
year={1979},
publisher={Random House LLC}
}
\end{filecontents}
\usepackage[
colorlinks=true,
linkcolor=black,
pagecolor=black,
citecolor=black,
filecolor=black,
urlcolor=black,
menucolor=black,
]{hyperref}
\usepackage[numbers, super, sort&compress, square]{natbib}
\makeatletter
\def\@mb@citenamelist{cite,citep,citet,citealp,citealt,citepalias,citetalias}
\makeatother
\usepackage[resetlabels]{multibib}
\newcites{pub}{Publications}
\usepackage{lipsum}
\usepackage{booktabs}
\defcitealias{tolkien_93}{HDR-1}
\defcitealias{tolkien_66}{HDR-2}
\defcitealias{tolkien_55}{HDR-3}
\defcitealias{tolkien_79}{silmarillion}
\begin{document}
\section{Lipsum \protect \citepaliaspub{tolkien_93}}
\lipsum[2][1]\cite{tolkien_66} \lipsum[5][7]\citepub{tolkien_93} \\
\lipsum[1][2]\citepaliaspub{tolkien_79} \lipsum[25][13]\citepalias{tolkien_55}.
\begin{table}[htb!]
\centering
\caption[short caption \protect \citepaliaspub{tolkien_93}]{caption. \protect \citepaliaspub{tolkien_93}}
\begin{tabular}{lcc}
\toprule
lipsum & lipsum & lipsum \\ \midrule
lipsum & lipsum & lipsum \\
lipsum & lipsum & lipsum \\
\bottomrule
\end{tabular}
\end{table}
\bibliographystyle{angew}
\bibliography{bib}
\let\noopsort\undefined
\let\printfirst\undefined
\let\singleletter\undefined
\let\switchargs\undefined
\bibliographystylepub{angew}
\bibliographypub{bib}
\end{document}
确实产生了错误Use of \mb@@citex doesn't match its definition. ...ipsum \protect \citepaliaspub{tolkien_93}}
有没有什么方法可以解决这个问题?这个问题是由caption
环境引起的,因为没有环境一切都可以正常工作。
编辑1
我一发布问题,就找到了解决方案这里。使用时\protect
它对 工作正常caption
,所以我也在 中尝试了它section
,并且即使添加 之后错误仍然相同\protect
。
编辑2
另外,我做了一些研究,发现这个答案,其中使用\cite<seq>
显示\section
使用没有错误\protect
,但对我来说错误
Use of \mb@@citex doesn't match its definition. ...ipsum \protect \citepaliaspub{tolkien_93}}
仍然存在。有什么建议,我做错了什么?
编辑3
当我取消注释时\usepackage{hyperref}
,\protect
它的工作方式应如此,并且根据这个答案,包的顺序也起到了额外的作用。所以当我找到答案的一部分时,另一个问题就出现了。