答案1
编辑.bst
答案已更新,其中包含有关如何根据以下内容 修改文件的分步说明这个答案。
可以使用本文提供的解决方案回答到每次在参考书目中出现作者姓名时,将其设为粗体如下:
\myref
创建一个接受参数的命令,并使用该命令使用上述解决方案将您的姓名包装在参考书目中。这意味着在.bbl
文件中有类似
\bibitem[Author and M{\"u}ller(2013)]{A}
A~Author and \myref{M~M{\"}ller}.
\newblock Title, 2013.
\bibitem[M{\"u}ller(2013)]{B}
\myref{M~M{\"u}ller}.
\newblock Title, 2013.
\bibitem[Cuthor(2013)]{C}
C~Cuthor.
\newblock Title, 2013.
该命令\myref
被定义为简单地在普通书目中打印其内容并在出版物列表中打印带下划线的参数。这是通过以下方式实现的(使用toolbox
包toggle
工具)
\newtoggle{myrefs}
\newcommand{\myref}[1]{\iftoggle{myrefs}{\underline{#1}}{#1}}
然后myrefs
在正常参考书目 ( \togglefalse{myrefs}
) 之前设置为 false,在出版物列表 ( \toggletrue{myrefs}
) 之前设置为 true。
以下是完整的示例(\jobname.bbl
包含该文件以演示解决方案)。此外,还提供了对该文件的逐步修改.bst
,根据此解决方案被包含在内
在文件中包括以下函数.bst
(像往常一样创建样式的副本并重命名)。
FUNCTION {cv.author}
{ "M Muller" }
FUNCTION {highlight}
{ duplicate$ empty$
{ pop$ "" }
{ "\myref{" swap$ * "}" * }
if$
}
FUNCTION {highlight.if.cv.author}
{ duplicate$ purify$ cv.author purify$ =
{ highlight }
'skip$
if$
}
FUNCTION {format.names}
然后找到文件中的函数.bst
(在我的副本中它位于第 550 行左右)。更改
format.name$
bib.name.font
在
format.name$
highlight.if.cv.author
bib.name.font
highlight.if.cv.author
即在 之后立即添加format.name$
。
此时您就可以使用修改后的.bst
文件了。
\documentclass{article}
\usepackage{natbib}
\usepackage{bibentry}
\usepackage{etoolbox}
\usepackage{filecontents}
\begin{filecontents}{bib.bib}
@Misc{A,
author = {A Author and M M{\"u}ller},
title = {Title},
year = 2013,
}
@Misc{B,
author = {M M{\'}ller},
title = {Title},
year = 2013,
}
@Misc{C,
author = {C Cuthor},
title = {Title},
year = 2013,
}
\end{filecontents}
\newtoggle{myrefs}
\newcommand{\myref}[1]{\iftoggle{myrefs}{\underline{#1}}{#1}}
\begin{document}
\nocite{*}
\togglefalse{myrefs}
\bibliographystyle{mystatto}
\bibliography{bib}
\section*{My Publications}
\toggletrue{myrefs}
\nobibliography*
\begin{itemize}
\item\bibentry{A}
\item\bibentry{B}
\end{itemize}
\end{document}
MWE 得出
答案2
另一种方法是嗜酒代替 BibTeX 或 Biblatex。为了使给定的作者带下划线,只需将“子字符串替换”运算符应用到作者列表变量中。例如,要将作者“JW Tukey”替换为其带下划线的版本“\underline{JW Tukey}”,我们可以将每个条目类型模板从以下方式更改:
article = <au>, \enquote{<title.replace(Sunset,\color{red}Sunset\color{black})>,}{ }...
<journal.replace(American,\textit{American})> \textbf{<volume>} (<year>).
以新形式
article = <au.replace(J. W. Tukey,\underline{J. W. Tukey})>,{ }...
\enquote{<title.replace(Sunset,\color{red}Sunset\color{black})>,}{ }...
<journal.replace(American,\textit{American})> \textbf{<volume>} (<year>).
此处的更改仅适用于“文章”类型的条目,因此也需要对其他条目类型模板(“书籍”、“论文集”等)进行类似的更改,在每种情况下都用<au>
替换<au.replace(J. W. Tukey,\underline{J. W. Tukey})>
。