使用 authblk 将 Orcid 包含在普通乳胶中

使用 authblk 将 Orcid 包含在普通乳胶中

假设我有以下文档:

\documentclass[a4paper]{article}

\usepackage{authblk}

\usepackage{hyperref}

\begin{document}

\title{Some paper}

\author[1]{First Last}
\author[2]{Second Last}

\affil[1]{First Affil}
\affil[2]{Second Affil}

\maketitle

\end{document}

我想包括奥西迪其中一位作者。我希望在一位作者的名字后面出现一个带有附加超链接的符号。

我该如何处理这个问题?

注意:这可能看起来像是问题,其中建议以下方法:

  1. 使用学术界

    \usepackage{academicons}
    \usepackage{xcolor}
    \definecolor{orcidlogocol}{HTML}{A6CE39}
    
    \newcommand{\orcid}[1]{
      \href{https://orcid.org/#1}{\textcolor{orcidlogocol}{\aiOrcid}}
    }
    

    这有效,但只能使用 xelatex 而不是普通的 (pdf)latex。

  2. 使用合适的图形(例如orcid.pdf,从SVG可用的:

    \usepackage{graphicx}
    
    \newcommand{\orcid}[1]{
      \href{https://orcid.org/#1}{\includegraphics[scale=1]{orcid}}
    }
    

    请注意,有一个更复杂的版本,它使用scalerel 包将图标缩放到周围文本的高度:

      \newcommand\orcidicon[1]{
        \href{https://orcid.org/#1}{\mbox{\scalerel{\includegraphics{orcid}}{|}}}}
    

    不幸的是这给了我错误

      ! Use of \\author doesn't match its definition.
    

因此,这两种方法对我来说似乎都不起作用。有什么方法可以让它发挥作用吗?

答案1

将某个元素设置为相对于当前字体的合适高度的简单方法是使用单位为 的尺寸,这在名义上是字体ex中小写字母的高度。因此,人们会天真地写成x

 \includegraphics[height=1.7ex]{orcid}

包含图像。

不幸的是,这些结构需要上述命令才能很好地扩展;但即使在添加了诸如from 之类的离子类型机制authblk之后,它仍然没有扩展(尝试\protect\newrobustcmdetoolbox

\newrobustcmd{\orcid}[1]{%
  \href{https://orcid.org/#1}{\includegraphics[height=1.7ex]{orcid}%
  \,#1}}

你会看到一个非常奇怪的效果)。

解决这个问题的方法是将适当缩放的图形存储在一个盒子中,然后在关联中使用该盒子。

组合

\newbox{\myorcidaffilbox}
\sbox{\myorcidaffilbox}{\large\includegraphics[height=1.7ex]{orcid}}

为此目的设置一个框,并将图形存储在其中;大小\large是用于打印隶属关系的字体大小。然后我们可以编写一个命令

\newcommand{\orcidaffil}[1]{%
  \href{https://orcid.org/#1}{\usebox{\myorcidaffilbox}\,#1}}

通过命令将此框放入我们的 orcid 构造中\usebox

示例输出

\documentclass[a4paper]{article}

\usepackage{authblk}
\usepackage{graphicx}
\usepackage{hyperref}

\newbox{\myorcidaffilbox}
\sbox{\myorcidaffilbox}{\large\includegraphics[height=1.7ex]{orcid}}
\newcommand{\orcidaffil}[1]{%
  \href{https://orcid.org/#1}{\usebox{\myorcidaffilbox}\,#1}}

\begin{document}

\title{Some paper}

\author[1]{First Last}
\author[2]{Second Last}

\affil[1]{First Affil \orcidaffil{0000-0002-1825-0097}}
\affil[2]{Second Affil}

\maketitle

\end{document}

答案2

orcid链接包(在版本 1.0.4 中,1.0.2 不够“健壮”)是另一个选择:

\author[1]{First Last\,\orcidlink{0000-0000-0000-0000}\,}
\author[2]{Second Last\,\orcidlink{0000-0000-0000-0000}\,}

渲染示例

相关内容