我在 LaTeX 序言中使用上标引用样式\setcitestyle{super}
,这符合我的要求。但是,有几个区域,我需要暂时禁用上标。例如句子
此图转载自参考文献[1]
[1] 上标看起来不正确。
如何实现?有什么想法吗?谢谢。
答案1
下面的示例进行了\setcitestyle
局部更改并将其放入宏中\citen
。
\setcitestyle
包natbib
(2010/09/13 8.31b)的宏定义开头的未注释行尾包含一个空格,使用技巧可以\romannumeral
删除这个空格。
\documentclass{article}
\usepackage[square]{natbib}
\setcitestyle{super}
\newcommand*{\citen}[1]{%
\begingroup
\romannumeral-`\x % remove space at the beginning of \setcitestyle
\setcitestyle{numbers}%
\cite{#1}%
\endgroup
}
\begin{document}
Package \textsf{accsupp}\cite{oberdiek:accsupp}.
This figure is reproduce from reference~\citen{oberdiek:zref}.
\bibliographystyle{plainnat}
\raggedright
\bibliography{oberdiek-bundle}
\end{document}
在移动参数(例如\caption
)宏内,可以使用或使用定义来\citen
保护:\protect
\DeclareRobustCommand
\newcommand*{\citen}{}% generate error, if `\citen` is already in use
\DeclareRobustCommand*{\citen}[1]{%
\begingroup
\romannumeral-`\x % remove space at the beginning of \setcitestyle
\setcitestyle{numbers}%
\cite{#1}%
\endgroup
}