在使用 bibentry 创建的出版物列表中划出我自己的名字

在使用 bibentry 创建的出版物列表中划出我自己的名字

我使用以下方式创建出版物列表\bibentry。由于在某些出版物中我只是第五位作者(或大约第五位),因此我想通过下划线突出显示我的名字。我在完整的参考书目中找到了解决方案,例如这里或者这里。是否有可能仅在使用 创建的出版物列表的“章节”中本地应用下划线\bibentry?我也愿意接受 的替代方案,\bibentry但我更愿意不完全手动制作列表。我正在使用 BibTeX 和 bibliographystyle斯塔托

答案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被定义为简单地在普通书目中打印其内容并在出版物列表中打印带下划线的参数。这是通过以下方式实现的(使用toolboxtoggle工具)

\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})>

相关内容