The solution provided here
Make one author's name bold every time it shows up in the bibliography
does unfortunately not work, as soon as the Author's name contains
special characters, e.g. Hans M{\"u}ller
?
How can this problem be solved?
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.
Sign up to join this communityThe solution provided here
Make one author's name bold every time it shows up in the bibliography
does unfortunately not work, as soon as the Author's name contains
special characters, e.g. Hans M{\"u}ller
?
How can this problem be solved?
The following modification of this answer seems to work if you use the plain
bib style:
\let\originalbibitem\bibitem
\def\bibitem#1#2\par{%
\noexpandarg
\originalbibitem{#1}
\StrSubstitute{#2}{Hans M{\"u}ller}{\textbf{Hans M{\"u}ller}}\par}
Example
\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}
\makebold
command (tex.stackexchange.com/questions/470783/…) instead of StrSubstitute
. However, only the last bibliography entry works. Any suggestions?
Jan 19, 2019 at 3:37
\bibitem
from the next with a blank line.
I finally found a straightforward solution by modifying the .bbl
-file with 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
The trick is to convert newlines to tabs in order to enable sed to wrap
the name into \texbf{...}
, even if there is a newline in between.