答案1
以下修改这个答案如果您使用 bib 样式,似乎可以工作plain
:
\let\originalbibitem\bibitem
\def\bibitem#1#2\par{%
\noexpandarg
\originalbibitem{#1}
\StrSubstitute{#2}{Hans M{\"u}ller}{\textbf{Hans M{\"u}ller}}\par}
例子
\begin{filecontents*}{\jobname.bib}
@article{a,
author={M{\"u}ller, Gerd},
title={Scoring goals},
journal={J. Applied Soccer},
year={1974},
}
@article{b,
author={M{\"u}ller, Hans},
title={Splitting hairs},
journal={J. Abstract Tetrapiloctomy},
year={1255},
}
\end{filecontents*}
\documentclass{article}
\usepackage{xstring}
\let\originalbibitem\bibitem
\def\bibitem#1#2\par{%
\noexpandarg
\originalbibitem{#1}
\StrSubstitute{#2}{Hans M{\"u}ller}{\textbf{Hans M{\"u}ller}}\par}
\begin{document}
\cite{a}
\cite{b}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}
答案2
我终于找到了一个简单的解决方案,即通过修改.bbl
文件sed
:
bibtex mydoc
mv my.bbl my.bbl.ori
cat my.bbl.ori | tr '\n' '\t' | sed 's/\(M{\\\"u}ller, *\t* *H.\)/\\textbf{\1}/g' | tr '\t' '\n' > my.bbl
诀窍是将换行符转换为制表符,以便 sed 能够将名称包装到中\texbf{...}
,即使中间有一个换行符。