我想引用二手资料,在乳胶中可以这样做吗?
Primary Source: Ennis, 1996
Secondary Source: Robinson, 2011
我想要的格式如下:
Ennis (1996, cited in Robinson, 2011) -> Direct citation
(Ennis, 1996, cited in Robinson, 2011) -> Indirect Citation
我试过:
\textcite{primarysource}\parencite[cited in][]{secondarysource}
我的完整 MWE:
\documentclass{article}
\usepackage{xpatch}
\usepackage{enumitem} % macros to modify appearance of 'itemize' environments
% \usepackage[style = authoryear-comp, maxnames = 99]{biblatex}
% \usepackage[backend=biber,
% % style=authoryear,
% style=authoryear-comp,
% % citestyle=authoryear,
% dashed=false,
% maxcitenames=2,
% maxbibnames=99,
% giveninits,
% alldates=comp,
% dateabbrev=false,
% uniquename=init]{biblatex}
\usepackage[backend=biber,
% style=authoryear,
style=authoryear-comp,
% citestyle=authoryear,
dashed=false,
maxcitenames=2,
maxbibnames=99,
giveninits,
alldates=comp, %for online citing
dateabbrev=false, %for online citing for data format month in full
uniquename=init]{biblatex}
\urlstyle{same}
% to make volume (number), eg. 4(2)
\newcommand*{\volnumdelim}{}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\volnumdelim}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\newcommand*{\jourvoldelim}{\addcomma\space}
\newcommand*{\jourserdelim}{\newunitpunct}
\newcommand*{\servoldelim}{\jourvoldelim}
\newcommand*{\volnumdatedelim}{\addspace}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\jourvoldelim}%
\iffieldundef{series}
{}
{\setunit*{\jourserdelim}%
\printfield{series}%
\setunit{\servoldelim}}%
\usebibmacro{volume+number+eid}%
\setunit{\volnumdatedelim}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
% to make volume (number), eg. 4(2)
\DeclareNameAlias{sortname}{family-given} %for second and third author name
\DeclareFieldFormat{postnote}{\printtext[bibhyperref]{#1}}
\RequirePackage{xcolor}
\definecolor{darkblue}{rgb}{0, 0, 0.5}
\usepackage[colorlinks=true, allcolors=darkblue]{hyperref}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[style=british]{csquotes}
% % --------------------------------------------------------------------
% \usepackage[raise]{fmtcount}
% \DefineBibliographyExtras{english}{%
% \renewcommand*{\mkbibordedition}[1]{\ordinalnum{#1}[f]}
% }
% \DefineBibliographyStrings{english}{%
% edition = {edn\adddot},%
% }
% % --------------------------------------------------------------------
\addto\captionsenglish{
\renewcommand{\listfigurename}{\textsf{List of Figures}}
\renewcommand{\listtablename}{\textsf{List of Tables}}
}
% Flag for whether to add front matter to TOC
\newtoggle{fulltoc}
\toggletrue{fulltoc} % Change to \togglefalse{fulltoc} to remove front matter
\renewcommand{\contentsname}{Table of Contents}
% \usepackage[unicode,colorlinks,citecolor=blue]{hyperref}
% for a chapter edited by a book
\usepackage{xpatch}
% \renewcommand*{\finalnamedelim}{\addspace\&\space}
% \renewcommand*{\intitlepunct}{\space} (to become In:)
\renewcommand{\labelnamepunct}{\space} %to delete . after (1997)
% \DeclareFieldFormat[article, incollection, unpublished]{pages}{#1} % to add in PP. (page)
\DeclareFieldFormat[article, incollection, unpublished]{title}{#1}
% \renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}} %cancel out this in order to add in PP. (page)
% for title italic
% \DeclareFieldFormat*{title}{\mkbibemph{#1}} %for title italic in all format (conference, paper..)
\DeclareFieldFormat*{title}{#1} %for conference title delete ".."
\DeclareFieldFormat[incollection]{title}{\mkbibemph{#1}} %for incollecion title italic ONLY
\DeclareFieldFormat[thesis]{title}{\mkbibemph{#1}} %for phdthesis title italic ONLY
% for title italic
% to delete "In:" for article
\renewbibmacro{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
% to delete "In:" for article
% for delete comma after Author A and Aurhor b
\DefineBibliographyExtras{english}{%
\let\finalandcomma\empty
\let\finalandsemicolon\empty
}
\renewcommand{\compcitedelim}{\space\&\space}
\DeclareNameAlias{editorin}{given-family}
\newbibmacro*{byeditor:in}{%
\ifnameundef{editor}
{}
{\printnames[editorin]{editor}%
\setunit{\addcomma\space}%
\usebibmacro{editorstrg}%
\clearname{editor}}}
\DeclareDelimFormat[textcite]{postnotedelim}{\addcolon\space}
\DeclareDelimFormat[parencite]{postnotedelim}{\addcolon\space}
% \DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{postnote}{\printtext[bibhyperref]{#1}}
\DeclareFieldFormat{multipostnote}{#1}
% for references 's studies (year)
\renewcommand*{\nameyeardelim}{\addcomma\space}
\newcommand{\mycite}[1]{\citeauthor{#1}'s \citeyear{#1}}
\DeclareCiteCommand{\citeauthor}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
\printtext[bibhyperref]{\printnames{labelname}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\citeyear} % <======================================
{}
{(\bibhyperref{\printdate})}
{\multicitedelim}
{}
\DeclareCiteCommand{\parencite}[\mkbibparens]
{\renewcommand*{\postnotedelim}{\addcolon\space}%
\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\cbx@textcite}
{\renewcommand*{\postnotedelim}{\addsemicolon\space}%
\usebibmacro{cite:init}}
{\usebibmacro{citeindex}%
\usebibmacro{textcite}}
{}
{\usebibmacro{textcite:postnote}}
\makeatletter
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{% <============================================
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@textciteOrig%
}%
}%
\makeatother
% for references 's studies (year)
% \DeclareFieldFormat[book]{title}{\mkbibemph{#1}}
% \usepackage[raise]{fmtcount}
% \DefineBibliographyExtras{english}{%
% \renewcommand*{\mkbibordedition}[1]{\ordinalnum{#1}[f]}
% }
% \DefineBibliographyStrings{english}{%
% edition = {edn\adddot},%
% }
% --------------------------------------------------------------------
\DeclareFieldFormat[book]{title}{\mkbibemph{#1}}
\usepackage[raise]{fmtcount}
\DefineBibliographyExtras{english}{%
\renewcommand*{\mkbibordedition}[1]{\ordinalnum{#1}[f]}
}
\DefineBibliographyStrings{english}{%
edition = {edn\adddot},%
}
% --------------------------------------------------------------------
\usepackage[normalem]{ulem}
\useunder{\uline}{\ulined}{}%
\DeclareUrlCommand{\bulurl}{\def\UrlFont{\ttfamily\color{blue}\ulined}}
\makeatletter
\DeclareUrlCommand\ULurl@@{%
\def\UrlLeft{\uline\bgroup}%
\def\UrlRight{\egroup}}
\def\ULurl@#1{\hyper@linkurl{\ULurl@@{#1}}{#1}}
\DeclareRobustCommand*\ULurl{\hyper@normalise\ULurl@}
\makeatother
\DeclareFieldFormat{doi}{%
\newline
\mkbibacro{doi}\addcolon\space
\ifhyperref
{\href{http://dx.doi.org/#1}{\ULurl{#1}}}
{\ULurl{#1}}}
\DeclareFieldFormat{url}{Available at\addcolon\space\url{#1}}
\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\space#1}}
\DeclareFieldFormat[online]{title}{\mkbibemph{#1}}
\DefineBibliographyStrings{english}{%
urlseen = {Accessed},
}
\DefineBibliographyExtras{english}{%
\protected\def\mkdaterangecomp{%
\mkdaterangetrunc{long}}%
\protected\def\mkdaterangeterse{%
\mkdaterangetrunc{short}}%
\protected\def\mkdaterangecompextra{%
\mkdaterangetruncextra{long}}%
\protected\def\mkdaterangeterseextra{%
\mkdaterangetruncextra{short}}%
\protected\def\mkbibdatelong#1#2#3{%
\iffieldundef{#3}
{}
{\thefield{#3}%
\iffieldundef{#2}{}{\nobreakspace}}%
\iffieldundef{#2}
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
}
% \DeclareFieldFormat{doi}{\bibstring{urlfrom}\addcolon\space\url{#1}}
% \DefineBibliographyStrings{english}{%
% urlfrom = {Available at}
% }
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{primarysource,
title={primary source},
author={Ennis, Peter},
journal={Proceedings of the Human Factors and Ergonomics society Annual Meeting},
volume={52},
number={21},
pages={1747--1750},
year={1996},
organization={Sage Publications Sage CA: Los Angeles, CA},
url= "https://doi.org/10.1177/154193120805202112",
}
@article{secondarysource,
title={Teaching logic and teaching critical thinking: revisiting McPeck},
author={Robinson, Susan Rebecca},
journal={Higher Education Research and Development},
volume={30},
number={3},
pages={275--287},
year={2011},
publisher={Taylor \& Francis}
}
%---------------------------------------------------------------
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{WinNT}
\textcite{primarysource}\parencite[cited in][]{secondarysource}
\printbibliography
\end{document}
答案1
您可以定义以两个引用键作为参数的宏,并根据需要打印引用。最小示例(没有与问题完全无关的大部分代码):
\documentclass{article}
\usepackage[backend=biber,
style=authoryear-comp]{biblatex}
\DeclareCiteCommand{\secondaryciteauthor}{}{\printtext[bibhyperref]{\printnames{labelname}}}{}{}
\DeclareCiteCommand{\secondaryciteyear}{}{\bibhyperref{\printdate}}{\multicitedelim}{}
\newcommand{\secondarycitedirect}[2]{\secondaryciteauthor{#1} (\secondaryciteyear{#1}, cited in \secondaryciteauthor{#2}, \secondaryciteyear{#2})}
\newcommand{\secondaryciteindirect}[2]{(\secondaryciteauthor{#1}, \secondaryciteyear{#1}, cited in \secondaryciteauthor{#2}, \secondaryciteyear{#2})}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{primarysource,
title={primary source},
author={Ennis, Peter},
journal={Proceedings of the Human Factors and Ergonomics society Annual Meeting},
volume={52},
number={21},
pages={1747--1750},
year={1996},
organization={Sage Publications Sage CA: Los Angeles, CA},
url= "https://doi.org/10.1177/154193120805202112",
}
@article{secondarysource,
title={Teaching logic and teaching critical thinking: revisiting McPeck},
author={Robinson, Susan Rebecca},
journal={Higher Education Research and Development},
volume={30},
number={3},
pages={275--287},
year={2011},
publisher={Taylor \& Francis}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\secondarycitedirect{primarysource}{secondarysource}
\secondaryciteindirect{primarysource}{secondarysource}
\printbibliography
\end{document}
编辑:我添加了自定义\secondaryciteauthor
和\secondaryciteyear
宏,以独立于您对其他引用宏所做的更改。您可能需要调整它们以更紧密地匹配您在其他引用案例中使用的内容。