如何用特定选项重新定义 \cite 来获取 bib-entries?

如何用特定选项重新定义 \cite 来获取 bib-entries?

对于某些具有特定内容的标题,shorthand我需要重新定义引文的输出格式:不得postnote打印引用但之内\printfield{postnote}),并且不得打印两次(在之后)。现在,我可以声明新的 cite 命令并将它们用于这些条目。

我希望:告诉biblatex使用新的引用格式来引用options = {XEN}对带有或 的{XEN=true},甚至带有普通的\cite

% uses-*- MODE: latex; TeX-engine: luatex; coding: utf-8; -*-
\RequirePackage{xparse}
\documentclass[paper=A7, DIV=16,landscape,fontsize=8pt]{scrartcl}
\usepackage[main=english]{babel}
\usepackage{csquotes}
\usepackage[style=philosophy-modern,sortlocale=de,language=auto,%
            sorting=nyvt,backend=biber,hyperref=true,shorthandintro=false]{biblatex}
\addbibresource{shortbib.bib}
\usepackage{hyperref}
\makeatletter
% from philosophy-classic.cbx
\DeclareCiteCommand{\XENcite}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
    \switchATAY{citetitle:AT}{citeyear}}%
  {}
  {} % removed \usebibmacro{postnote}
\DeclareCiteCommand*{\XENparencite}[\mkbibparens]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
    \switchATAY{citetitle:AT}{citeyear}}
  {}
  {} % removed \usebibmacro{postnote}
\DeclareCiteCommand{\XENfootcitet}[\mkbibfootnote] % \XENfootcitet
  {\usebibmacro{cite:init}
    \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
    \usebibmacro{textcite}}
  {}%
  {} % removed \usebibmacro{textcite:postnote}
\makeatother
\begin{document}

\verb|\cite|: \cite[5]{Cardauns:VarroRD}, \cite[Xenophanes
17]{Gentili:PE1} and \cite[87]{Xenophanes:TP}

\smallskip
should be like \verb|\XENcite| for \verb|bib|-entries with
\verb|options = {XEN}|: \XENcite[5]{Cardauns:VarroRD},
\XENcite[Xenophanes 17]{Gentili:PE1} and \XENcite[87]{Xenophanes:TP}

\nocite{*}
\printshorthands

\begin{filecontents*}[overwrite]{shortbib.bib}
@MVBook{Cardauns:VarroRD,
  author =   {Burkhart Cardauns},
  options =      {XEN},
  title =    {Varro \mkbibemph{Antiquitates}},
  date =     1976,
  langid =   {german},
  publisher =    {Steiner},
  location =     {Wiesbaden},
  pagination =   {none},
  shorthand =    {\printfield{postnote}\addnbspace\mkbibemph{RD}},
  keywords =     {shorthand}
}

@Book{Gentili:PE1,
  author =   {Bruno Gentili},
  options =      {XEN},
  title =    {Callinus, Tyrtaeus, Xenophanes},
  langid =   {latin},
  date =     1988,
  publisher =    {Teubner},
  location =     {Leipzig},
  pagination =   {none},
  shorthand =    {\printfield{postnote}\addnbspace\mkbibemph{PE}\addnbspace\RN{1}},
  keywords =     {shorthand}
}

@Book{Xenophanes:TP,
  author =   {Benedikt Strobel},
  options =      {XEN},
  title =    {Xenophanes von Kolophon},
  langid =   {english},
  date =     2018,
  publisher =    {Gruyter},
  location =     {Berlin},
  pagination =   {none},
  shorthand =    {XEN\addnbspace\printfield{postnote}\addnbspace\mkbibemph{TP}\addnbthinspace3},
  keywords =     {shorthand}
}
\end{filecontents*}


\end{document}

新的引用格式

相关内容