2

I want to cite secondary source, is the a way to do in latex?

Primary Source: Ennis, 1996
Secondary Source: Robinson, 2011

I want the format as:

Ennis (1996, cited in Robinson, 2011)  -> Direct citation
(Ennis, 1996, cited in Robinson, 2011)  -> Indirect Citation

en

I tried:

\textcite{primarysource}\parencite[cited in][]{secondarysource}

Output: enter image description here

My Full 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 Answer 1

4

You can define macros that take two citation keys as arguments and print the citations as you need them. Minimal example (without most part of your code which isn't at all relevant for the question):

\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}

enter image description here

Edit: I added custom \secondaryciteauthor and \secondaryciteyear macros to be independent of changes you made for other citing macros. You might need to adjust those to more closely match what you use in other citing cases.

7
  • thanks. The reason I added in the full MWE because it was for other biblatex. When I paste your code in my full MWE, it appear to be double (( )). It came out to be Ennis ((1996), cited in Robinson, (2011)) (Ennis, (1996), cited in Robinson,(2011)).
    – aan
    Nov 18, 2019 at 8:26
  • @aan: See updated answer.
    – Tiuri
    Nov 18, 2019 at 9:02
  • thanks. Brillant!
    – aan
    Nov 18, 2019 at 11:55
  • @Tiutri, I was thinking i need to use \textcite, parencite only
    – aan
    Nov 18, 2019 at 11:58
  • In APA 7, you do not include the secondary source in the bibliography. How would you exclude it? Otherwise this seems great (to my needs). apastyle.apa.org/style-grammar-guidelines/citations/… Aug 25, 2023 at 8:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .