Wenn Du statt mit eigenen Entry-Typen wie @MyArticle mit keywords (z.B: mywork) arbeitest, sollte das ganz einfach sein.
Mit style=ieee ist das allerdings etwas kompliziert, da kann man zunächst nur
\DeclareFieldFormat{labelnumber}{\ifkeyword{mywork}{[#1]}{#1}}
nutzen und kommst schon ganz gut hin.
Etwas komplizierter aber stabiler können wir mit
xpatch den folgenden Code nutzen.
\makeatletter
\newtoggle{cbx@lastmywork}
\xpatchbibmacro{cite:comp:comp}
{\savefield{labelnumber}{\cbx@lastnumber}}
{\savefield{labelnumber}{\cbx@lastnumber}%
\ifkeyword{mywork}{\toggletrue{cbx@lastmywork}}{\togglefalse{cbx@lastmywork}}}
{}{}
\xpatchbibmacro{cite:dump}
{\printtext{\cbx@lastnumber}}
{\printtext[labelnumber]{\cbx@lastnumber}}
{}{}
\DeclareFieldFormat{labelnumber}{%
\ifboolexpr{test {\ifkeyword{mywork}} or togl {cbx@lastmywork}}
{[#1]}
{#1}}
\makeatother
\documentclass{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{Einstein,
author = {Einstein},
}
@Article{Benji,
author = {Benji},
keywords = {mywork},
}
\end{filecontents}
\usepackage[style=ieee]{biblatex}
\usepackage{xpatch}
\addbibresource{\jobname.bib}
\makeatletter
\newtoggle{cbx@lastmywork}
\xpatchbibmacro{cite:comp:comp}
{\savefield{labelnumber}{\cbx@lastnumber}}
{\savefield{labelnumber}{\cbx@lastnumber}%
\ifkeyword{mywork}{\toggletrue{cbx@lastmywork}}{\togglefalse{cbx@lastmywork}}}
{}{}
\xpatchbibmacro{cite:dump}
{\printtext{\cbx@lastnumber}}
{\printtext[labelnumber]{\cbx@lastnumber}}
{}{}
\DeclareFieldFormat{labelnumber}{%
\ifboolexpr{test {\ifkeyword{mywork}} or togl {cbx@lastmywork}}
{[#1]}
{#1}}
\makeatother
\begin{document}
Fremdquelle \cite{Einstein}
Eigenquelle \cite{Benji} and \cite{Benji,Einstein} and \cite{Einstein,Benji}
\printbibliography
\end{document}
Für style=numeric wäre
\DeclareFieldFormat{labelnumberwidth}{\ifkeyword{mywork}{[\mkbibbrackets{#1}]}{\mkbibbrackets{#1}}}
\renewbibmacro*{cite}{%
\printtext[bibhyperref]{%
\ifkeyword{mywork}{[}{}%
\printfield{prefixnumber}%
\printfield{labelnumber}%
\ifkeyword{mywork}{]}{}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}
zwar etwas länger aber wesentlich stabiler.
Hast Du zufällig etwas mit
BibLaTeX: Highlight Self-References zu tun?
Wenn Du statt mit eigenen Entry-Typen wie [tt]@MyArticle[/tt] mit [tt]keywords[/tt] (z.B: [tt]mywork[/tt]) arbeitest, sollte das ganz einfach sein.
Mit [tt]style=ieee[/tt] ist das allerdings etwas kompliziert, da kann man zunächst nur
[code]\DeclareFieldFormat{labelnumber}{\ifkeyword{mywork}{[#1]}{#1}}[/code] nutzen und kommst schon ganz gut hin.
Etwas komplizierter aber stabiler können wir mit [p]xpatch[/p] den folgenden Code nutzen.
[code]\makeatletter
\newtoggle{cbx@lastmywork}
\xpatchbibmacro{cite:comp:comp}
{\savefield{labelnumber}{\cbx@lastnumber}}
{\savefield{labelnumber}{\cbx@lastnumber}%
\ifkeyword{mywork}{\toggletrue{cbx@lastmywork}}{\togglefalse{cbx@lastmywork}}}
{}{}
\xpatchbibmacro{cite:dump}
{\printtext{\cbx@lastnumber}}
{\printtext[labelnumber]{\cbx@lastnumber}}
{}{}
\DeclareFieldFormat{labelnumber}{%
\ifboolexpr{test {\ifkeyword{mywork}} or togl {cbx@lastmywork}}
{[#1]}
{#1}}
\makeatother[/code]
[code]\documentclass{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{Einstein,
author = {Einstein},
}
@Article{Benji,
author = {Benji},
keywords = {mywork},
}
\end{filecontents}
\usepackage[style=ieee]{biblatex}
\usepackage{xpatch}
\addbibresource{\jobname.bib}
\makeatletter
\newtoggle{cbx@lastmywork}
\xpatchbibmacro{cite:comp:comp}
{\savefield{labelnumber}{\cbx@lastnumber}}
{\savefield{labelnumber}{\cbx@lastnumber}%
\ifkeyword{mywork}{\toggletrue{cbx@lastmywork}}{\togglefalse{cbx@lastmywork}}}
{}{}
\xpatchbibmacro{cite:dump}
{\printtext{\cbx@lastnumber}}
{\printtext[labelnumber]{\cbx@lastnumber}}
{}{}
\DeclareFieldFormat{labelnumber}{%
\ifboolexpr{test {\ifkeyword{mywork}} or togl {cbx@lastmywork}}
{[#1]}
{#1}}
\makeatother
\begin{document}
Fremdquelle \cite{Einstein}
Eigenquelle \cite{Benji} and \cite{Benji,Einstein} and \cite{Einstein,Benji}
\printbibliography
\end{document}[/code]
Für [tt]style=numeric[/tt] wäre
[code]\DeclareFieldFormat{labelnumberwidth}{\ifkeyword{mywork}{[\mkbibbrackets{#1}]}{\mkbibbrackets{#1}}}
\renewbibmacro*{cite}{%
\printtext[bibhyperref]{%
\ifkeyword{mywork}{[}{}%
\printfield{prefixnumber}%
\printfield{labelnumber}%
\ifkeyword{mywork}{]}{}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}[/code]
zwar etwas länger aber wesentlich stabiler.
Hast Du zufällig etwas mit [url=http://tex.stackexchange.com/q/266599/35864]BibLaTeX: Highlight Self-References[/url] zu tun?