Me gustaría crear una plantilla para una lista de publicaciones que luego puedan utilizar varias personas. La idea es que haya un archivo bibliográfico que contenga todas las publicaciones. Las entradas revisadas por pares están marcadas con la palabra clave = pr. Luego está el archivo maestro del tipo scriptreport en el que todos pueden integrar su archivo de capítulo para fusionar las listas de publicaciones de todos en un solo archivo. El archivo del capítulo es el núcleo de todo y debe ser reutilizable. Debe filtrar las entradas del autor respectivo del archivo bibliográfico e imprimirlas en dos listas (revisadas por pares y no revisadas por pares). Mi problema es que no sé muy bien cómo filtrar por autor en este caso. Aquí están los códigos aproximados de los dos archivos:
Maestro:
\documentclass[a4paper]{scrreprt}
\usepackage{biblatex}
\title{Publication list}
\addbibresource{sample.bib}
\begin{document}
\maketitle
\tableofcontents
\newpage
\include{Researcher}
\newpage
\end{document}
capítulo:
\chapter*{Researcher}
\addcontentsline{toc}{chapter}{Researcher}
\nocite{*}
\printbibliography[keyword={pr}, title={Peer-reviewed}]
\nocite{*}
\printbibliography[notkeyword={pr}, title={Non-peer-reviewed}]
Respuesta1
Filtrar por nombre no es tan fácil. Una forma sería utilizar un mapa fuente y una expresión regular para hacer coincidir nombres y agregar palabras clave (por ejemplo,biblatex: separar publicaciones de un autor específico en la bibliografía).
Otra forma de utilizar la comparación de cadenas/macro se muestra enbiblatex: filtra publicaciones de un autor específico en las referencias de forma dinámica. Similar aPoner en negrita un autor específico usando biblatexPreferiría usar hash en lugar de comparación de cadenas/macro.
La siguiente es una adaptación de mi respuesta.https://tex.stackexchange.com/a/416416/35864para nombres en negrita para filtrar nombres. La mayor parte del código desde allí se puede simplemente copiar, lo nuevo es definir dos bibchecks para filtrar las entradas de bibliografía según condiciones arbitrarias.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\def\fnblx@bibfile@name{\jobname -fnblx.bib}
\newwrite\fnblx@bibfile
\immediate\openout\fnblx@bibfile=\fnblx@bibfile@name
\immediate\write\fnblx@bibfile{%
@comment{Auto-generated file}\blx@nl}
\newcounter{fnblx@name}
\setcounter{fnblx@name}{0}
\newcommand*{\fnblx@writenametobib}[1]{%
\stepcounter{fnblx@name}%
\edef\fnblx@tmp@nocite{%
\noexpand\AfterPreamble{%
\noexpand\setbox0\noexpand\vbox{%
\noexpand\fnblx@getmethehash{fnblx@name@\the\value{fnblx@name}}}}%
}%
\fnblx@tmp@nocite
\immediate\write\fnblx@bibfile{%
@misc{fnblx@name@\the\value{fnblx@name}, author = {\unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
\AtEndDocument{%
\closeout\fnblx@bibfile}
\addbibresource{\fnblx@bibfile@name}
\newcommand*{\fnblx@namehashes}{}
\DeclareNameFormat{fnblx@hashextract}{%
\xifinlist{\thefield{hash}}{\fnblx@namehashes}
{}
{\listxadd{\fnblx@namehashes}{\thefield{hash}}}}
\DeclareCiteCommand{\fnblx@getmethehash}
{}
{\printnames[fnblx@hashextract][1-999]{author}}
{}
{}
\newtoggle{fnblx@tempa}
\DeclareIndexNameFormat{fnblx@checkfilternames}{%
\xifinlist{\thefield{hash}}{\fnblx@namehashes}
{\global\toggletrue{fnblx@tempa}}
{}}
\newcommand*{\addbfilternames}{\forcsvlist\fnblx@writenametobib}
\newcommand*{\resetfilternames}{\def\fnblx@namehashes{}}
\defbibcheck{filternames}{%
\global\togglefalse{fnblx@tempa}
\indexnames[fnblx@checkfilternames][1-999]{labelname}%
\iftoggle{fnblx@tempa}
{}
{\skipentry}}
\defbibcheck{notfilternames}{%
\global\togglefalse{fnblx@tempa}
\indexnames[fnblx@checkfilternames][1-999]{labelname}%
\iftoggle{fnblx@tempa}
{\skipentry}
{}}
\makeatother
\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a,knuth:ct:b}
\addbfilternames{Emma Sigfridsson}
\printbibliography[check=filternames, title={Works by Emma Sigfridsson}]
\printbibliography[check=notfilternames, title={Works not by Emma Sigfridsson}]
\resetfilternames
\addbfilternames{{Knuth, Donald E.}}
\printbibliography[check=filternames, title={Works by Donald Knuth}]
\printbibliography[check=notfilternames, title={Works not by Donald Knuth}]
\end{document}
La interfaz de usuario debe explicarse por sí misma con los ejemplos de uso anteriores. Si tiene alguna pregunta sobre la implementación que no esté cubierta porhttps://tex.stackexchange.com/a/416416/35864, por favor pregunte con anticipación en los comentarios.