Biblatex: taquigrafías o alias con autoraño-comp

Biblatex: taquigrafías o alias con autoraño-comp

¿Cómo puedo utilizar taquigrafías o alias con el estilo de cita authoryear-comp? En concreto me gustaría tener

Primera cita del texto:

Bravo & Charlie (2002, en adelante Documento I)

Bravo & Charlie (2002, en adelante Documento I) y Charlie & Delta (2004)

Bravo & Charlie (2002, en adelante Documento I, 2003) y Charlie & Delta (2004)

Bravo & Charlie (2001, 2002, en adelante Documento I) y Charlie & Delta (2004)

Alpha & Bravo (2000) y Bravo & Charlie (2002, en adelante Documento I)

Primera cita entre paréntesis:

(Bravo & Charlie 2002, en adelante Documento I)

(Bravo y Charlie 2002, en adelante Documento I; Charlie y Delta 2004)

(Bravo y Charlie 2002, en adelante Documento I, 2003; Charlie y Delta 2004)

(Bravo y Charlie 2001, 2002, en adelante Documento I; Charlie y Delta 2004)

(Alpha & Bravo 2000; Bravo & Charlie 2002, en adelante Documento I)

Citas de texto posteriores:

Papel I

Documento I y Charlie y Delta (2004)

Artículo I, Bravo y Charlie (2003) y Charlie y Delta (2004)

Bravo y Charlie (2001), Documento I y Charlie y Delta (2004)

Alpha & Bravo (2000) y artículo I

Citas posteriores entre paréntesis:

(Documento I)

(Documento I; Charlie y Delta 2004)

(Documento I; Bravo y Charlie 2003; Charlie y Delta 2004)

(Bravo y Charlie 2001; Documento I; Charlie y Delta 2004)

(Alpha y Bravo 2000; Documento I)

El estilo se basa en el Astrophysical Journal (ApJ). No conozco instrucciones específicas sobre puntuación y clasificación en el caso de taquigrafías o alias, por lo que los ejemplos anteriores pueden ser ligeramente incorrectos.

Es bastante fácil obtener el estilo ApJ authoryear-compcon

\renewcommand*\finalnamedelim
  {\ifbibliography{\finalandcomma}{}\addspace\&\space}
\renewcommand*\nameyeardelim{\addspace}
\DefineBibliographyStrings{english}{citedas={hereafter}}

pero hackear authoryear-comppara conseguir taquigrafías o alias que funcionen está más allá de mis posibilidades.

Edición 1:Según el comentario de @moewe, aquí hay un ejemplo de prueba. Por supuesto, las taquigrafías todavía no funcionan como se esperaba. (Nota curiosa: 0no se puede utilizar como clave de entrada).

\documentclass{article}
\usepackage[style=authoryear-comp, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{1,
  author    = "Alpha, A. and Bravo, B.",
  year      = "2000"
}
@article{2,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2001"
}
@article{3,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2002",
  shorthand = "Paper I"
}
@article{4,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2003"
}
@article{5,
  author    = "Charlie, C. and Delta, D.",
  year      = "2004"
}
\end{filecontents}
\addbibresource{\jobname}
\renewcommand*\finalnamedelim
  {\ifbibliography{\finalandcomma}{}\addspace\&\space}
\renewcommand*\nameyeardelim{\addspace}
\DefineBibliographyStrings{english}{citedas={hereafter}}
\begin{document}
\parindent0em\relax
\textcite{3}\citereset\par
\textcite{3, 5}\citereset\par
\textcite{3, 4, 5}\citereset\par
\textcite{2, 3, 5}\citereset\par
\textcite{1, 3}\citereset\vskip\bigskipamount
\parencite{3}\citereset\par
\parencite{3, 5}\citereset\par
\parencite{3, 4, 5}\citereset\par
\parencite{2, 3, 5}\citereset\par
\parencite{1, 3}\vskip\bigskipamount
\textcite{3}\par
\textcite{3, 5}\par
\textcite{3, 4, 5}\par
\textcite{2, 3, 5}\par
\textcite{1, 3}\vskip\bigskipamount
\parencite{3}\par
\parencite{3, 5}\par
\parencite{3, 4, 5}\par
\parencite{2, 3, 5}\par
\parencite{1, 3}
\end{document}

Edición 2:Aquí hay una prueba extendida seguida de los resultados esperados.

\documentclass{article}
\usepackage[letterpaper, left=1in, right=1in]{geometry}
\usepackage[style=authoryear-comp, citetracker, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{1,
  author    = "Alpha, A. and Bravo, B.",
  year      = "2001"
}
@article{2,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2002"
}
@article{3,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2003"
}
@article{4,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2004",
  shorthand = "Paper I"
}
@article{5,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2005"
}
@article{6,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2006"
}
@article{7,
  author    = "Charlie, C. and Delta, D.",
  year      = "2007"
}
\end{filecontents}
\addbibresource{\jobname}
\renewcommand*\finalnamedelim
  {\ifbibliography{\finalandcomma}{}\addspace\&\space}
\renewcommand*\nameyeardelim{\addspace}
\DefineBibliographyStrings{english}{citedas={hereafter}}
\begin{document}
\pagestyle{empty}\parindent0em\relax
\textcite{4}\citereset\par
\textcite{1, 4}\citereset\par
\textcite{4, 7}\citereset\par
\textcite{1, 2, 4}\citereset\par
\textcite{1, 4, 5}\citereset\par
\textcite{2, 4, 7}\citereset\par
\textcite{4, 5, 7}\citereset\par
\textcite{1, 2, 3, 4}\citereset\par
\textcite{1, 3, 4, 5}\citereset\par
\textcite{1, 4, 5, 6}\citereset\par
\textcite{2, 3, 4, 7}\citereset\par
\textcite{3, 4, 5, 7}\citereset\par
\textcite{4, 5, 6, 7}\citereset\par
\textcite{1, 2, 3, 4, 7}\citereset\par
\textcite{1, 3, 4, 5, 7}\citereset\par
\textcite{1, 4, 5, 6, 7}\citereset\newpage
\parencite{4}\citereset\par
\parencite{1, 4}\citereset\par
\parencite{4, 7}\citereset\par
\parencite{1, 2, 4}\citereset\par
\parencite{1, 4, 5}\citereset\par
\parencite{2, 4, 7}\citereset\par
\parencite{4, 5, 7}\citereset\par
\parencite{1, 2, 3, 4}\citereset\par
\parencite{1, 3, 4, 5}\citereset\par
\parencite{1, 4, 5, 6}\citereset\par
\parencite{2, 3, 4, 7}\citereset\par
\parencite{3, 4, 5, 7}\citereset\par
\parencite{4, 5, 6, 7}\citereset\par
\parencite{1, 2, 3, 4, 7}\citereset\par
\parencite{1, 3, 4, 5, 7}\citereset\par
\parencite{1, 4, 5, 6, 7}\newpage
\textcite{4}\par
\textcite{1, 4}\par
\textcite{4, 7}\par
\textcite{1, 2, 4}\par
\textcite{1, 4, 5}\par
\textcite{2, 4, 7}\par
\textcite{4, 5, 7}\par
\textcite{1, 2, 3, 4}\par
\textcite{1, 3, 4, 5}\par
\textcite{1, 4, 5, 6}\par
\textcite{2, 3, 4, 7}\par
\textcite{3, 4, 5, 7}\par
\textcite{4, 5, 6, 7}\par
\textcite{1, 2, 3, 4, 7}\par
\textcite{1, 3, 4, 5, 7}\par
\textcite{1, 4, 5, 6, 7}\newpage
\parencite{4}\par
\parencite{1, 4}\par
\parencite{4, 7}\par
\parencite{1, 2, 4}\par
\parencite{1, 4, 5}\par
\parencite{2, 4, 7}\par
\parencite{4, 5, 7}\par
\parencite{1, 2, 3, 4}\par
\parencite{1, 3, 4, 5}\par
\parencite{1, 4, 5, 6}\par
\parencite{2, 3, 4, 7}\par
\parencite{3, 4, 5, 7}\par
\parencite{4, 5, 6, 7}\par
\parencite{1, 2, 3, 4, 7}\par
\parencite{1, 3, 4, 5, 7}\par
\parencite{1, 4, 5, 6, 7}
\end{document}
Bravo & Charlie (2004, hereafter Paper I)
Alpha & Bravo (2001) and Bravo & Charlie (2004, hereafter Paper I)
Bravo & Charlie (2004, hereafter Paper I) and Charlie & Delta (2007)
Alpha & Bravo (2001) and Bravo & Charlie (2002, 2004, hereafter Paper I)
Alpha & Bravo (2001) and Bravo & Charlie (2004, hereafter Paper I, 2005)
Bravo & Charlie (2002, 2004, hereafter Paper I) and Charlie & Delta (2007)
Bravo & Charlie (2004, hereafter Paper I, 2005) and Charlie & Delta (2007)
Alpha & Bravo (2001) and Bravo & Charlie (2002, 2003, 2004, hereafter Paper I)
Alpha & Bravo (2001) and Bravo & Charlie (2003, 2004, hereafter Paper I, 2005)
Alpha & Bravo (2001) and Bravo & Charlie (2004, hereafter Paper I, 2005, 2006)
Bravo & Charlie (2002, 2003, 2004, hereafter Paper I) and Charlie & Delta (2007)
Bravo & Charlie (2003, 2004, hereafter Paper I, 2005) and Charlie & Delta (2007)
Bravo & Charlie (2004, hereafter Paper I, 2005, 2006) and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2002, 2003, 2004, hereafter Paper I), and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2003, 2004, hereafter Paper I, 2005), and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2004, hereafter Paper I, 2005, 2006), and Charlie & Delta (2007)

(Bravo & Charlie 2004, hereafter Paper I)
(Alpha & Bravo 2001; Bravo & Charlie 2004, hereafter Paper I)
(Bravo & Charlie 2004, hereafter Paper I; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002, 2004, hereafter Paper I)
(Alpha & Bravo 2001; Bravo & Charlie 2004, hereafter Paper I, 2005)
(Bravo & Charlie 2002, 2004, hereafter Paper I; Charlie & Delta 2007)
(Bravo & Charlie 2004, hereafter Paper I, 2005; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002, 2003, 2004, hereafter Paper I)
(Alpha & Bravo 2001; Bravo & Charlie 2003, 2004, hereafter Paper I, 2005)
(Alpha & Bravo 2001; Bravo & Charlie 2004, hereafter Paper I, 2005, 2006)
(Bravo & Charlie 2002, 2003, 2004, hereafter Paper I; Charlie & Delta 2007)
(Bravo & Charlie 2003, 2004, hereafter Paper I, 2005; Charlie & Delta 2007)
(Bravo & Charlie 2004, hereafter Paper I, 2005, 2006; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002, 2003, 2004, hereafter Paper I; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2003, 2004, hereafter Paper I, 2005; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2004, hereafter Paper I, 2005, 2006; Charlie & Delta 2007)

Paper I
Alpha & Bravo (2001) and Paper I
Paper I and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2002), and Paper I
Alpha & Bravo (2001), Paper I, and Bravo & Charlie (2005)
Bravo & Charlie (2002), Paper I, and Charlie & Delta (2007)
Paper I, Bravo & Charlie (2005), and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2002, 2003), and Paper I
Alpha & Bravo (2001), Bravo & Charlie (2003), Paper I, and Bravo & Charlie (2005)
Alpha & Bravo (2001), Paper I, and Bravo & Charlie (2005, 2006)
Bravo & Charlie (2002, 2003), Paper I, and Charlie & Delta (2007)
Bravo & Charlie (2003), Paper I, Bravo & Charlie (2005), and Charlie & Delta (2007)
Paper I, Bravo & Charlie (2005, 2006), and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2002, 2003), Paper I, and Charlie & Delta (2007)
Alpha & Bravo (2001), Bravo & Charlie (2003), Paper I, Bravo & Charlie (2005), and Charlie & Delta (2007)
Alpha & Bravo (2001), Paper I, Bravo & Charlie (2005, 2006), and Charlie & Delta (2007)

(Paper I)
(Alpha & Bravo 2001; Paper I)
(Paper I; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002; Paper I)
(Alpha & Bravo 2001; Paper I; Bravo & Charlie 2005)
(Bravo & Charlie 2002; Paper I; Charlie & Delta 2007)
(Paper I; Bravo & Charlie 2005; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002, 2003; Paper I)
(Alpha & Bravo 2001; Bravo & Charlie 2003; Paper I; Bravo & Charlie 2005)
(Alpha & Bravo 2001; Paper I; Bravo & Charlie 2005, 2006)
(Bravo & Charlie 2002, 2003; Paper I; Charlie & Delta 2007)
(Bravo & Charlie 2003; Paper I; Bravo & Charlie 2005; Charlie & Delta 2007)
(Paper I; Bravo & Charlie 2005, 2006; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2002, 2003; Paper I; Charlie & Delta 2007)
(Alpha & Bravo 2001; Bravo & Charlie 2003; Paper I; Bravo & Charlie 2005; Charlie & Delta 2007)
(Alpha & Bravo 2001; Paper I; Bravo & Charlie 2005, 2006; Charlie & Delta 2007)

Respuesta1

Desafortunadamente, -complos estilos son a menudo un poco feos de modificar (uno termina con muchas líneas de códigos incluso para cambios relativamente insignificantes).

Sin embargo, la modificación necesaria para el citebibmacro es sencilla. Reemplace la prueba \iffieldundef{shorthand}por \ifboolexpr{test {\iffieldundef{shorthand}} or not test {\ifciteseen}}y agréguela \usebibmacro{shorthandintro}al final de los bloques que no son taquigráficos.

Como desea \textcitecitas ligeramente diferentes, tuvimos que reestructurar un poco esa macro. La shorthandlógica se movió hacia arriba algunos niveles de anidación.

Para poder textcitecountacertar con nuestros amigos, también tuvimos que modificar \textciteun poco el comando citar.

Luego también modificamos la shorthandintromacro para adaptarla a sus deseos.

El código relevante en el MWE a continuación es el bit entre \makeatletter/ \makeatother. Tenga en cuenta que debe habilitar la citetrackerfunción para que esto funcione.

\documentclass{article}
\usepackage[style=authoryear-comp, backend=biber, citetracker]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{1,
  author    = "Alpha, A. and Bravo, B.",
  year      = "2000"
}
@article{2,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2001"
}
@article{3,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2002",
  shorthand = "Paper I"
}
@article{4,
  author    = "Bravo, B. and Charlie, C.",
  year      = "2003"
}
@article{5,
  author    = "Charlie, C. and Delta, D.",
  year      = "2004"
}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewcommand*\finalnamedelim
  {\ifbibliography{\finalandcomma}{}\addspace\&\space}
\renewcommand*\nameyeardelim{\addspace}
\DefineBibliographyStrings{english}{citedas={hereafter}}

\makeatletter
\renewbibmacro*{cite}{%
  \ifboolexpr{test {\iffieldundef{shorthand}} or not test {\ifciteseen}}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}%
        \usebibmacro{cite:labelyear+extrayear}%
        \usebibmacro{cite:reinit}}
       {\iffieldequals{namehash}{\cbx@lasthash}
          {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
                       \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
             {\setunit{\addcomma}%
              \usebibmacro{cite:extrayear}}
             {\setunit{\compcitedelim}%
              \usebibmacro{cite:labelyear+extrayear}%
              \savefield{labelyear}{\cbx@lastyear}}}
          {\printnames{labelname}%
           \setunit{\printdelim{nameyeardelim}}%
           \usebibmacro{cite:labelyear+extrayear}%
           \savefield{namehash}{\cbx@lasthash}%
           \savefield{labelyear}{\cbx@lastyear}}}%
    \usebibmacro{shorthandintro}}
    {\usebibmacro{cite:shorthand}%
     \usebibmacro{cite:reinit}}%
  \setunit{\multicitedelim}}

\renewbibmacro*{textcite}{%
  \ifboolexpr{test {\iffieldundef{shorthand}} or not test {\ifciteseen}}
    {\iffieldequals{namehash}{\cbx@lasthash}
       {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
                      \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
            {\setunit{\addcomma}%
             \usebibmacro{cite:extrayear}}
            {\setunit{\compcitedelim}%
             \usebibmacro{cite:labelyear+extrayear}%
             \savefield{labelyear}{\cbx@lastyear}}}
        {\ifnameundef{labelname}
           {\usebibmacro{cite:label}%
            \setunit{%
              \global\booltrue{cbx:parens}%
              \printdelim{nonameyeardelim}\bibopenparen}%
            \ifnumequal{\value{citecount}}{1}
              {\usebibmacro{prenote}}
              {}%
            \usebibmacro{cite:labelyear+extrayear}}
           {\printnames{labelname}%
            \setunit{%
              \global\booltrue{cbx:parens}%
              \printdelim{nameyeardelim}\bibopenparen}%
            \ifnumequal{\value{citecount}}{1}
              {\usebibmacro{prenote}}
              {}%
            \iffieldundef{labelyear}
               {\usebibmacro{cite:label}}
               {\usebibmacro{cite:labelyear+extrayear}}%
             \savefield{labelyear}{\cbx@lastyear}}%
         \stepcounter{textcitecount}}%
     \usebibmacro{shorthandintro}%
     \savefield{namehash}{\cbx@lasthash}}
    {\usebibmacro{cite:shorthand}%
     \stepcounter{textcitecount}%
     \global\undef\cbx@lasthash
     \global\undef\cbx@lastyear}%
    \setunit{%
      \ifbool{cbx:parens}
        {\bibcloseparen\global\boolfalse{cbx:parens}}
        {}%
      \textcitedelim}}

\renewbibmacro*{shorthandintro}{%
  \iffieldundef{shorthandintro}
    {\iffieldundef{shorthand}
       {}
       {\setunit{\addcomma\space}%
        \printtext{%
          \bibstring{citedas}\space
          \printfield{shorthand}}}}
    {\setunit{\addcomma\space}%
     \printtext{\printfield{shorthandintro}}}}

%\iffieldequals{namehash}{\cbx@lasthash}{N}{}\ifciteseen{S}{}\iffieldundef{shorthand}{U}{}
\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
  {\gdef\cbx@savedkeys{}%
   \citetrackerfalse%
   \pagetrackerfalse%
   \DeferNextCitekeyHook%
   \usebibmacro{cite:init}}
  {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
     {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
      \global\clearfield{multipostnote}}
     {}%
   \xappto\cbx@savedkeys{\thefield{entrykey},}%
   \citetrackertrue
   \ifboolexpr{not test {\iffieldequals{namehash}{\cbx@lasthash}} or (not test {\iffieldundef{shorthand}} and test {\ifciteseen}) }
     {\stepcounter{textcitetotal}%
      \savefield{namehash}{\cbx@lasthash}%
      \ifboolexpr{not test {\iffieldundef{shorthand}} and test {\ifciteseen}}
        {\global\undef\cbx@lasthash}{}}
     {}%
   \citetrackerfalse}
  {}
  {\protected@xappto\cbx@savedcites{%
     [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
\makeatother


\begin{document}
\parindent0em\relax
\textcite{3}\citereset\par
\textcite{3, 5}\citereset\par
\textcite{3, 4, 5}\citereset\par
\textcite{2, 3, 5}\citereset\par
\textcite{1, 3}\citereset\vskip\bigskipamount
\parencite{3}\citereset\par
\parencite{3, 5}\citereset\par
\parencite{3, 4, 5}\citereset\par
\parencite{2, 3, 5}\citereset\par
\parencite{1, 3}\vskip\bigskipamount
\textcite{3}\par
\textcite{3, 5}\par
\textcite{3, 4, 5}\par
\textcite{2, 3, 5}\par
\textcite{1, 3}\vskip\bigskipamount
\parencite{3}\par
\parencite{3, 5}\par
\parencite{3, 4, 5}\par
\parencite{2, 3, 5}\par
\parencite{1, 3}
\end{document}

cuatro bloques de ejemplo de OP

información relacionada