![biblatex-apa:带有短标题的文本引用](https://linux22.com/image/395399/biblatex-apa%EF%BC%9A%E5%B8%A6%E6%9C%89%E7%9F%AD%E6%A0%87%E9%A2%98%E7%9A%84%E6%96%87%E6%9C%AC%E5%BC%95%E7%94%A8.png)
我在硕士论文中使用了biblatex
with style=apa
。我的参考书目中有一些来源,我的教授希望我引用它们shorttitle
而不是作者。在大多数情况下,这些来源是法律,它们有一个常见的缩写,如“GDPR”。
我已经能够为 构建一个新的 citecommand,例如\parencite
。现在我需要一个 的等效项\textcite
。详细来说,它应该如下所示:
根据 GoBD(Rzn. 136)...
为了实现这一点,我\textcite
从apa.cbx
文件中复制了命令并进行了修改。遗憾的是,当前的输出不是我想要的样子:
据 GoBD 称,Rzn. 136......
现在的问题是,详细来源(页面等)周围的括号丢失了,逗号需要删除。我确实尝试修改 bibmacro textcite
,但无法创建可编译的内容。
希望你们中有人可以帮助我:)
这是我的 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}
\DeclareCiteCommand{\textciteshorttitle}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\printfield[cite]{shorttitle}}}
{}
{\usebibmacro{textcite:postnote}%
\usebibmacro{cite:post}}
\begin{filecontents}{literatur.bib}
@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)},
version = {IV A 4 - S 0316/13/10003},
year = {2014},
shorttitle = {GoBD}
}
\end{filecontents}
\begin{document}
\section{Ein Kapitel}
Gemäß \textciteshorttitle[Rzn. 136]{GoBD} ...
%-------------------------------------------------------------------
% Literaturverzeichnis
%-------------------------------------------------------------------
\setcounter{secnumdepth}{0} %% no numbering
\printbibliography[title=Literaturverzeichnis]
\end{document}
答案1
\textcite
宏通常非常棘手。希望以下内容能够按预期工作。
与标准不同\textcite
,无论是否有后注参数,括号始终存在,我们需要明确检查后注(伪)字段是否存在。
\documentclass[a4paper,13pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{filecontents}
\usepackage[style=apa]{biblatex}
\newbibmacro*{textciteshorttitle}{%
\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\setunit{\compcitedelim}%
\printfield{shorttitle}%
\iffieldundef{postnote}
{}
{\ifnumequal{\value{citecount}}{\value{citetotal}}
{\printunit{\global\booltrue{cbx:parens}\addspace\bibopenparen}}
{}}}
\DeclareCiteCommand{\textciteshorttitle}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{textciteshorttitle}}
{}
{\usebibmacro{textcite:postnote}%
\usebibmacro{cite:post}}
\begin{filecontents}{\jobname.bib}
@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)},
version = {IV A 4 - S 0316/13/10003},
year = {2014},
shorttitle = {GoBD},
}
@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},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Gemäß \textciteshorttitle[Rzn. 136]{GoBD} ...
Gemäß \textciteshorttitle{GoBD,DSGVO} ...
Gemäß \textciteshorttitle[12]{GoBD,DSGVO} ...
\printbibliography[title=Literaturverzeichnis]
\end{document}