基于自定义 parencite 的 multicite 命令遗漏了括号

基于自定义 parencite 的 multicite 命令遗漏了括号

我目前正在撰写我的硕士论文并使用biblatexstyle=apa有一些法律我必须引用,我的教授要求我像这样引用它们:“(GDPR,第 1 条)”。

为此,我创建了一个新的引用命令 ( \parenciteshorttitle),它可以帮我完成这项工作。现在我需要一个类似的多引用命令。类似于\parencites。我根据 声明了一个新的多引用命令\parenciteshorttitle,它似乎运行良好。但最后我的引用缺少括号。有人知道我该如何插入它们吗?

这是我的 MWE:

\documentclass[a4paper,13pt]{scrartcl}

\usepackage{geometry}
\geometry{left=3.5cm, right=2cm, top=2.5cm, bottom=2cm}


\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{filecontents}
\usepackage{hyperref}

%-------------------------------------------------------------------%
% Bibliography with bibLaTeX                                        %
%-------------------------------------------------------------------%
\usepackage[style=apa]{biblatex}
\bibliography{literatur}

% Zitationsstil für Kurzttitel

\DeclareMultiCiteCommand{\parencitesshorttitle}{\parenciteshorttitle}{\multicitedelim}

\DeclareCiteCommand{\parenciteshorttitle}[\mkbibparens]
{\usebibmacro{cite:init}%
    \usebibmacro{prenote}}
{\usebibmacro{citeindex}%
    \printtext[bibhyperref]{\printfield[cite]{shorttitle}}}
{}
{\usebibmacro{postnote}%
    \usebibmacro{cite:post}}


\begin{filecontents}{literatur.bib}
@misc{DSGVO,
    author = {{Europ{\"a}ische Union}},
    title = {{Verordnung (EU) 2016/679 des Europ{\"a}ischen Parlaments und des Rates vom 27. April 2016 zum Schutz nat{\"u}rlicher Personen bei der Verarbeitung personenbezogener Daten, zum freien Datenverkehr und zur Aufhebung der Richtlinie 95/46/EG (Datenschutz-Grundverordnung): DSGVO}},
    url = {https://eur-lex.europa.eu/eli/reg/2016/679/oj},
    pages = {1--88},
    pagination = {page},
    journaltitle = {Abl. (Amtsblatt der Europ{\"a}ischen Union)},
    version = {ABl. L 119 vom 4.5.2016, S. 1--88},
    year = {2016},
    shorttitle = {DSGVO}
}

@misc{GoBD,
    author = {{Bundesministerium der Finanzen}},
    title = {Grunds{\"a}tze zur ordnungsm{\"a}{\ss}igen F{\"u}hrung und Aufbewahrung von B{\"u}chern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff (GoBD)},
    pagetotal = {37},
    date = {2014-11-14},
    version = {IV A 4 - S 0316/13/10003},
    year = {2014},
    shorttitle = {GoBD}
}

\end{filecontents}

\begin{document}

    \section{Ein Kapitel}
    Ein Zitat \parenciteshorttitle[Art. 1]{DSGVO}\\

    Noch ein Zitat \parencitesshorttitle[Art. 1]{DSGVO}[Rzn. 6]{GoBD}




    %-------------------------------------------------------------------
    % Literaturverzeichnis
    %-------------------------------------------------------------------
    \setcounter{secnumdepth}{0} %% no numbering
    \printbibliography[title=Literaturverzeichnis]

\end{document}

它看起来是这样的:

单一事实(DSGVO,第 1 条)//没有单一事实 DSGVO,第 1 条。 1; GoBD,Rzn。 6

我希望有人能帮助我:-)

答案1

\DeclareMultiCiteCommand{\parencitesshorttitle}[\mkbibparens]
  {\parenciteshorttitle}{\multicitedelim}

应该做你想做的事。

用 定义的多重引用命令\DeclareMultiCiteCommand{<multi-cite>}{<single-cite>}{<delim>}删除命令<single-cite>的包装器。可以使用 的可选包装器参数重新添加完整的多重引用的包装器\DeclareMultiCiteCommand{<multi-cite>}[<wrapper>]{<single-cite>}{<delim>}

\documentclass[ngerman, a4paper, 13pt]{scrartcl}
\usepackage{geometry}
\geometry{left=3.5cm, right=2cm, top=2.5cm, bottom=2cm}

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[style=apa]{biblatex}
\usepackage{hyperref}


\DeclareMultiCiteCommand{\parencitesshorttitle}[\mkbibparens]
  {\parenciteshorttitle}{\multicitedelim}

\DeclareCiteCommand{\parenciteshorttitle}[\mkbibparens]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{%
     \printfield[cite]{shorttitle}}}
  {}
  {\usebibmacro{postnote}%
   \usebibmacro{cite:post}}


\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{DSGVO,
  author       = {{Europäische Union}},
  title        = {Verordnung (EU) 2016/679 des Europäischen Parlaments
                  und des Rates vom 27.~April 2016 zum Schutz
                  natürlicher Personen bei der Verarbeitung
                  personenbezogener Daten, zum freien Datenverkehr
                  und zur Aufhebung der Richtlinie 95/46/EG
                  (Datenschutz-Grundverordnung): DSGVO},
  url          = {https://eur-lex.europa.eu/eli/reg/2016/679/oj},
  pages        = {1--88},
  journaltitle = {Abl. (Amtsblatt der Europäischen Union)},
  version      = {ABl. L 119 vom 4.5.2016, S. 1--88},
  year         = {2016},
  shorttitle   = {DSGVO},
}
@misc{GoBD,
  author     = {{Bundesministerium der Finanzen}},
  title      = {Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung
                von Büchern, Aufzeichnungen und Unterlagen in
                elektronischer Form sowie zum Datenzugriff (GoBD)},
  pagetotal  = {37},
  date       = {2014-11-14},
  version    = {IV A 4 - S 0316/13/10003},
  year       = {2014},
  shorttitle = {GoBD},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  \section{Ein Kapitel}
  Ein Zitat \parenciteshorttitle[Art.~1]{DSGVO}

  Noch ein Zitat \parencitesshorttitle[Art.~1]{DSGVO}[Rzn.~6]{GoBD}

  \printbibliography[title=Literaturverzeichnis]
\end{document}

单一事实(DSGVO,第 1 条)//非单一事实(DSGVO,第 1 条;GoBD,第 6 条)

使用除此以外的样式apa都可以使用该shorthand字段定义新命令。


如果DSVGO总是与 一起引用Art.并且GoDB与 一起引用Rzn.,那么相应地调整字段可能是有意义的pagination

\documentclass[ngerman, a4paper, 13pt]{scrartcl}
\usepackage{geometry}
\geometry{left=3.5cm, right=2cm, top=2.5cm, bottom=2cm}

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[style=apa]{biblatex}
\usepackage{hyperref}


\DeclareMultiCiteCommand{\parencitesshorttitle}[\mkbibparens]
  {\parenciteshorttitle}{\multicitedelim}

\DeclareCiteCommand{\parenciteshorttitle}[\mkbibparens]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{%
     \printfield[cite]{shorttitle}}}
  {}
  {\usebibmacro{postnote}%
   \usebibmacro{cite:post}}


\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{DSGVO,
  author       = {{Europäische Union}},
  title        = {Verordnung (EU) 2016/679 des Europäischen Parlaments
                  und des Rates vom 27.~April 2016 zum Schutz
                  natürlicher Personen bei der Verarbeitung
                  personenbezogener Daten, zum freien Datenverkehr
                  und zur Aufhebung der Richtlinie 95/46/EG
                  (Datenschutz-Grundverordnung): DSGVO},
  url          = {https://eur-lex.europa.eu/eli/reg/2016/679/oj},
  pagination   = {article},
  journaltitle = {Abl. (Amtsblatt der Europäischen Union)},
  version      = {ABl. L 119 vom 4.5.2016, S. 1--88},
  year         = {2016},
  shorttitle   = {DSGVO},
}
@misc{GoBD,
  author     = {{Bundesministerium der Finanzen}},
  title      = {Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung
                von Büchern, Aufzeichnungen und Unterlagen in
                elektronischer Form sowie zum Datenzugriff (GoBD)},
  pagination = {marginnumber},
  date       = {2014-11-14},
  version    = {IV A 4 - S 0316/13/10003},
  year       = {2014},
  shorttitle = {GoBD},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\NewBibliographyString{article}
\NewBibliographyString{articles}
\NewBibliographyString{marginnumber}
\NewBibliographyString{marginnumbers}

\DefineBibliographyStrings{german}{
  article       = {Art\adddot},
  articles      = {Art\adddot},
  marginnumber  = {Rzn\adddot},
  marginnumbers = {Rzn\adddot},
}

\begin{document}
  \section{Ein Kapitel}
  Ein Zitat \parenciteshorttitle[1]{DSGVO}

  Noch ein Zitat \parencitesshorttitle[1]{DSGVO}[6]{GoBD}

  \printbibliography[title=Literaturverzeichnis]
\end{document}

相关内容