Agrupación de citas en bibliografía por título

Agrupación de citas en bibliografía por título

Estoy escribiendo una tesis que hace varias referencias a periódicos/publicaciones periódicas con el mismo nombre, publicados en varias fechas a lo largo de muchos años. Estoy tratando de agrupar estas referencias por el nombre de la publicación, de modo que las entradas de bibliografía para la misma publicación estén juntas y separadas de otras entradas de otras publicaciones periódicas.

Revisé extensamente la documentación de biblatex y la única información relevante que pude encontrar son los registros de longitud bibnamesepy . bibitemsepEstos parecen hacer exactamente lo que necesito: los bibitems de publicaciones periódicas con el mismo título deberían estar más juntos que los bibitems que no lo son. El único desafío aquí es que bibnamesep parece usar partes de nombres y una plantilla de unicidad para agrupar obras por el nombre de un autor (y no por título).

Este es mi MWE:

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage[T1]{fontenc} % Specify font encoding
\usepackage[utf8]{inputenc} % Specify encoding (for example, UTF-8)
\usepackage[dashed=false,sorting=nyt,style=verbose,labeldateparts=true,uniquelist=true,uniquename=true,singletitle=true]{biblatex}
% Preamble - Here you can load packages and define settings
\usepackage[english]{babel}

\begin{filecontents*}[overwrite]{mwe.bib}
  @periodical{TheSun:20220101,
    title = {The Sun},
    date  = {2022-01-01}
  }
  @periodical{TheTimes:20220601,
  title = {The Sun},
    date  = {2022-06-01}
  }
  @periodical{TheTimes:20220901,
  title = {The Sun},
    date  = {2022-09-01}
  }

  @periodical{TheGuardian:20210217,
    title = {The Guardian},
    date  = {2021-02-17}
  }
  @periodical{TheGuardian:20210311,
    title = {The Guardian},
    date  = {2021-03-11}
  }
  @periodical{TheGuardian:20210410,
    title = {The Guardian},
    date  = {2021-04-10}
  }

  @periodical{TheAlmanac:202302,
    title = {The Almanac},
    date  = {2023-02}
  }
  @periodical{TheAlmanac:202303,
    title = {The Almanac},
    date  = {2023-03}
  }
  @periodical{TheAlmanac:202304,
    title = {The Almanac},
    date  = {2023-04}
  }
\end{filecontents*}

\addbibresource{mwe.bib}

\DeclareSortingTemplate{TitleYear}{
  \sort{
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
    \literal{9999}
  }
  \sort{
    \field{month}
  }
  \sort{
    \field{day}
  }
}

\begin{document}

\bibitemsep=1pt
\bibnamesep=30pt

\nocite{*}
\begin{refcontext}[sorting=TitleYear]
  \printbibliography
\end{refcontext}

\end{document}

Contiene 9 @periodicalentradas: 3 para The Sun, 3 para The Guardian y 3 para The Almanac. Ordena las entradas por título de la publicación utilizando la plantilla de clasificación y establece \bibitemsepy \bibnamesepen 1 punto y 30 puntos respectivamente.Esta es la parte en la que no puedo ir a trabajar.:

ingrese la descripción de la imagen aquí

Como puede ver en la imagen de arriba, todas las referencias tienen 30 puntos entre ellas, mientras que a mí me gustaría que los bibitems de "The Almanac" tuvieran 1 pt, pero 30 puntos separando "The Almanac" de "The Guardian".

Respuesta1

\bibnamesepsolo se aplica entre entradas con un nombre diferente codificado en fullhash. Si desea cambiar esto a title, puede intentar redefinir (localmente) la macro interna relevante que establece el separador.

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[
  style=verbose,
  sorting=nyt,
  dashed=false,
  labeldateparts=true,
  uniquelist=true,uniquename=true,
  singletitle=true,
]{biblatex}


\makeatletter
\def\blx@namesep@title{%
  \ifnum\c@instcount>\@ne
    \blx@imc@iffieldequals{title}\blx@prevtitle
      {}
      {\addvspace{\bibnamesep}}%
  \fi
  \global\let\blx@prevtitle\abx@field@title}

\newcommand*{\NamesepByTitle}{\let\blx@namesep\blx@namesep@title}
\makeatother


\DeclareSortingTemplate{TitleYear}{
  \sort{
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
    \literal{9999}
  }
  \sort{
    \field{month}
  }
  \sort{
    \field{day}
  }
}

\begin{filecontents*}[overwrite]{\jobname.bib}
@periodical{TheSun:20220101,
  title = {The Sun},
  date  = {2022-01-01}
}
@periodical{TheTimes:20220601,
title = {The Sun},
  date  = {2022-06-01}
}
@periodical{TheTimes:20220901,
title = {The Sun},
  date  = {2022-09-01}
}

@periodical{TheGuardian:20210217,
  title = {The Guardian},
  date  = {2021-02-17}
}
@periodical{TheGuardian:20210311,
  title = {The Guardian},
  date  = {2021-03-11}
}
@periodical{TheGuardian:20210410,
  title = {The Guardian},
  date  = {2021-04-10}
}

@periodical{TheAlmanac:202302,
  title = {The Almanac},
  date  = {2023-02}
}
@periodical{TheAlmanac:202303,
  title = {The Almanac},
  date  = {2023-03}
}
@periodical{TheAlmanac:202304,
  title = {The Almanac},
  date  = {2023-04}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\bibitemsep=1pt
\bibnamesep=30pt

\nocite{*}
\begin{refcontext}[sorting=TitleYear]
  \NamesepByTitle
  \printbibliography
\end{refcontext}

\end{document}

Lista de bibliografía agrupada.

información relacionada