如何从 biblatex 重建 textcite 命令?

如何从 biblatex 重建 textcite 命令?

不幸的是,我必须使用一个似乎与 biblatex 不兼容的文档类(例如 publ 版本 3.57)。尽管我试图取消 bibhang 的声明(cf 类似 natbib 问题),biblatex 抱怨与 backref 不兼容。进一步调查显示,它似乎是 hyperref 包的一个冲突选项。所以我放弃了,不得不使用 cite 包。

每当我输入引文时,我都会这样做:

... as shown in Feirrera~et~al.~\cite{Ferreira2013}. ...

我开始创建这样的宏:

\newcommand{\multicite}[2]{#1~et~al.~\cite{#2}}

呈现如下效果:

... as shown in \multicite{Feirrera}{Ferreira2013}. ...

有没有简单的方法可以从第一作者的 bibkey 中获取姓氏?

我的 MWE 目前是这样的:

\documentclass{egpubl}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}

\begin{filecontents}{bibl.bib}
@book{Some2005,
title = {Book's title},
author = {Author, Some and Other, Some},
location = {The City},
publisher = {Publisher},
date = {2005},
}
\end{filecontents}

\WsSubmission
 \electronicVersion
 \PrintedOrElectronic

% % This are my attempts to load biblatex nonetheless
%\let\bibhang\relax
%\usepackage{biblatex}
\usepackage{cite}

\title[foo]{bar}
\author[A. Barfoo]
       {A. Barfoo$^{1}$\\,
         $^1$Foobar institute\\
       }
\newcommand{\multicite}[2]{#1~et~al.~\cite{#2}}

\begin{document}

as shown in \multicite{Some}{Some2005}

\bibliographystyle{eg-alpha-doi}
\bibliography{bibl.bib}

\end{document}

答案1

您可以像这样使用 biblatex:

\documentclass{egpubl}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}

\let\bibhang\arealyundefinedcommand
\usepackage{biblatex}

\WsSubmission

\makeatletter
\renewcommand{\electronic@Version}{%
   \usepackage[pdftex,
    %pagebackref=true,
    colorlinks,linkcolor=blue,citecolor=blue,urlcolor=blue,
    bookmarks=false,
    pdfpagemode=UseNone,
    pdftitle={\@shorttitle},
    pdfauthor={\@shortauthor},
    pdfsubject={\pdf@Subject},
    pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref}
  }
\renewcommand{\printed@Version}{%
   \usepackage[pdftex,
    %pagebackref=false,
    colorlinks,linkcolor=black,citecolor=black,urlcolor=black,
    bookmarks=false,
    pdfpagemode=UseNone,
    pdftitle={\@shorttitle},
    pdfauthor={\@shortauthor},
    pdfsubject={\pdf@Subject},
    pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref}
  }  
\makeatother  
\electronicVersion
\PrintedOrElectronic

% % This are my attempts to load biblatex nonetheless
%\usepackage{cite}

\title[foo]{bar}
\author[A. Barfoo]
       {A. Barfoo$^{1}$\\,
         $^1$Foobar institute\\
       }
\newcommand{\multicite}[2]{#1~et~al.~\cite{#2}}
\addbibresource{bibl.bib}
\begin{document}

as shown in \cite{Some2005}, \textcite{Some2005} 

\end{document}

相关内容