我使用 Mendeley 生成.bib
文件,结果生成了 标题中带有<sub>
和标签的文章。<sup>
@article{Testtest2016,
author = {Testtest},
title = {{Why O{\textless}sub{\textgreater}2{\textless}/sub{\textgreater} and O{\textless}sup{\textgreater}2-{\textless}/sup{\textgreater}?}},
year = {2016}
}
目前它们被编入参考书目中,而[2] Testtest. Why O<sub>2</sub> and O<sup>2-</sup>? 2016.
我想要的是 O 2和 O 2-
$_{...}$
我可以让 LaTeX 用和替换标签$^{...}$
吗?如果不行,我会找到其他方法(例如bib.bib
即时编辑),但我更希望 LaTeX 自动执行此操作。我不想在 Mendeley 中更改标题,因为标题来自 DOI 搜索。
如果这个问题已经解决了,我很抱歉,但我找不到任何答案。
答案1
你应该编辑这些条目并告诉 Mendeley 的维护者停止输出这样的垃圾。
这里有一个解决方法,假设您不需要\textless
任何其他地方,并且标签只是<sup>...</sup>
和<sub>...</sub>
,没有嵌套。
\begin{filecontents*}{\jobname.bib}
@article{Testtest2016,
author = {Testtest},
title = {{Why O{\textless}sub{\textgreater}2{\textless}/sub{\textgreater} and O{\textless}sup{\textgreater}2-{\textless}/sup{\textgreater}?}},
year = {2016}
}
\end{filecontents*}
\documentclass{article}
\makeatletter
% get rid of the closing braces
\def\textless{\afterassignment\textless@\let\next= }
% get the tag type
\def\textless@#1#{\@nameuse{textless@#1}}
% code for <sub>
\def\textless@sub#1#2/sub#3{%
\ensuremath{_{\let\textless\relax#2}}%
\egroup % matches the first brace
}
% code for <sub>
\def\textless@sup#1#2/sup#3{%
\ensuremath{^{\let\textless\relax#2}}%
\egroup % matches the first brace
}
\makeatother
\begin{document}
\cite{Testtest2016}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}