Используйте организацию, если нет автора или редактора для алфавитного стиля метки

Используйте организацию, если нет автора или редактора для алфавитного стиля метки

Как можно использовать организацию в публикации в качестве замены автора или редактора при создании метки цитирования для alphabeticстиля в biblatex?

Я знаю, что могу использовать labelполе, чтобы вручную назначить метку, но автоматическое решение было бы неплохо.

МВЭ:

\documentclass{article}

\usepackage{filecontents}

\usepackage[style=alphabetic,backend=biber]{biblatex}
\bibliography{test}

\begin{filecontents}{test.bib}
@online{Wikipedia2017,
 date = {2016-12-20},
 organization = {Wikipedia},
 title = {Resource contention},
 url = {https://en.wikipedia.org/w/index.php?oldid=755891262},
 urldate = {2017-04-26}
}
@techreport{Volpe2000,
 author = {Volpe, Richard and Nesnas, Issa A. D. and Estlin, Tara and Mutz, Darren and Petras, Richard and Das, Hari},
 date = {2000},
 institution = {Jet Propulsion Laboratory, California Institute of Technology},
 location = {Pasadena, California},
 title = {{CLARAty}: Coupled Layer Architecture for Robotic Autonomy}
}
\end{filecontents}

\begin{document}
This is a test~\autocite{Wikipedia2017}. And this works as expected~\autocite{Volpe2000}.

\printbibliography{}
\end{document}

введите описание изображения здесь

Вместо этого я бы хотел увидеть какой-нибудь ярлык Wik16.

решение1

Пытаться

\DeclareSourcemap{
  \maps[datatype=bibtex]{
     \map{
       \step[fieldsource=organization, final]
       \step[fieldset=usera, origfieldval]
     }
  }
}

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{shorthand}
    \field{label}
    \field[strwidth=3,strside=left,ifnames=1]{labelname}
    \field[strwidth=1,strside=left]{labelname}
    \field[strwidth=3]{usera}
  }
  \labelelement{
    \field[strwidth=2,strside=right]{year}    
  }
}

Так как organizationэто список, \DeclareLabelalphaTemplateмы не можем с ним правильно работать. Поэтому нам нужно скопировать содержимое в поле, которое не является списком ( useraчтобы нам не нужно было определять новую модель данных). Затем мы можем использовать его \labelelementв \DeclareLabelalphaTemplate.

Связанный контент