How to get automatically "origdate" with the date in a citation?

If you only want the origdate in citations, you need

\documentclass[a4paper,british]{article}
\usepackage[utf8]{inputenc} 
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{test,
  author  = {Walter Ordsmith},
  title   = {An Old Work},
  date    = {2010},
  edition = {5},
  origdate = {1981},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\DeclareFieldFormat{origdate}{\mkbibbrackets{#1}}
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
       {\printnames{labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
     \printorigdate
     \setunit*{\addspace}
     \usebibmacro{cite:labeldate+extradate}}
    {\usebibmacro{cite:shorthand}}}

\begin{document}
  \cite{test} and \parencite[6]{test}
  \printbibliography
\end{document}

yields enter image description here


Edit

The following approach incorporates the origdate into more cite commands and the bibliography.

\documentclass[a4paper,british]{article}
\usepackage[utf8]{inputenc} 
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,mergedate=maximum]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{test,
  author  = {Walter Ordsmith},
  title   = {An Old Work},
  date    = {2010},
  edition = {5},
  origdate = {1981},
}
@book{testn,
  author  = {Walter Ordsmith},
  title   = {A New Work},
  date    = {2013},
}
@book{testm,
  author  = {Walter Ordsmith},
  title   = {A Very Old Work},
  date    = {2000},
  edition = {8},
  origdate = {1882},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\DeclareFieldFormat{origdate}{\mkbibbrackets{#1}}
\renewbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{origyear}
    {}
    {\printorigdate
     \setunit{\addspace}}%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{\printlabeldateextra}}}

\DeclareCiteCommand{\citeorigyear}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\printfield{origyear}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\renewbibmacro*{date+extradate}{%
  \iffieldundef{origyear}
    {}
    {\printorigdate
     \setunit{\addspace}}%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \iflabeldateisdate
         {\printdateextra}
         {\printlabeldateextra}}}}

\begin{document}
  \cite{test} and \parencite[6]{test}.
  And \parencite[6]{testn} is nice and \textcite{testm} was written in \citeyear{testm}.

  \nocite{*}
  \printbibliography
\end{document}

gives enter image description here


Another option is to use the biblatex-chicago package, which comes with styles supporting origdate.

So

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{hume_1751_enquiry,
    origdate = {1751},
    date = {1975-06-12},
    author = {Hume, David},
    title = {An Enquiry Concerning the Principles of Morals},
    booktitle = {Enquiries Concerning Human Understanding and
        Concerning the Principles of Morals},
    editor = {Selby-Bigge, L. A. and Nidditch, P. H.},
    annotation = {Selby-Bigge and Nidditch's 1975 edition is
        based off a collection of Hume's essays postumously
        published in 1777. Hume's ``An Equiry Concerning the
        Principles of Morals" was first published in 1751.},
    publisher = {Oxford University Press},
    location = {New York},
    edition = {3},
    isbn = {978-0-19-824536-0}
}
\end{filecontents}

\usepackage[authordate,
    backend=biber,
    sorting=nyt,
    backref=true,
    alldates=iso8601,
    cmsdate=both,
    annotation=true]{biblatex-chicago}
\addbibresource{\jobname.bib}

\begin{document}

Lorem \autocite[179]{hume_1751_enquiry}.

\printbibliography

\end{document}

Will result in

cmsdate both

The cmsdate option controls how origdate and date are displayed both in the citation and in the reference list. My own preference is to use cmsdate=on which has the effect of eliminating the date field in the citation, but nevertheless displays both dates in the reference entry (the date is moved to the end of the entry):

cmsdate on

The Chicago Manual of Style, if that's the style guide you want to follow, specifies not using "p." to preface page numbers. But if you wanted to you could use ...

\autocite[p. 179]{hume_1751_enquiry}.

... to return ...

(Hume [1751] 1975, p. 179)

Update

Better, however, would be to add the following code to your preamble to insert "p." and "pp." automatically (in lieu of manually specifying it) ...

\DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}}
\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination]{#1}}
\DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}}

... as moewe suggests in the comments.

Tags:

Biblatex