15

See update on 2013-11-12 10:26:36Z below regarding my final solution

In the American Sociological Association Style Guide. 3rd ed. (p. 2) link, PDF! it is explained and demonstrated how to cite a work that is reprinted from a version published earlier.

It should, according to the ASA guide, look like this,

enter image description here

I'm curious to learn if there is an official or 'proper' way of doing this using biblatex? I have produced the above example with the code below,

\documentclass[11pt]{article}

\usepackage[backend=bibtex,
style=authoryear, natbib=true, 
        ]{biblatex}

\usepackage{hyperref}

\begin{filecontents}{bibfile.bib}

@book{Veblen2005:1899,
    Author = {Veblen, Thorstein},
    Isbn = {9788187879299},
    Language = {en},
    Month = jan,
    Publisher = {Aakar Books},
    Title = {{The Theory of the Leisure Class; An Economic Study of Institutions}},
    Year = {[1899] 2005}}

\end{filecontents}

\addbibresource{bibfile.bib}

\begin{document}

\noindent
\ldots \citep{Veblen2005:1899} stated that \ldots\\

\printbibliography

\end{document}

Update on 2013-11-12 10:26:36Z

Switching backend from bibtex to biber, as suggested in moewe's answer below, proved to be a bit more challenging than expected as I couldn't use biber directly from TeXShop (Ver. 3.26 on OSX 10.8.5). However, I managed, with the help of this answer by Harish Kumar, to use arara. Thus solution did require me to add some arara-lines to the .tex file just before the \documentclass{} and to compile my .tex file from the terminal, I've pasted my code and a screenshot below.

\documentclass{article}
\usepackage[backend=biber, style=authoryear, natbib=true]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{Veblen2005:1899,
    author = {Veblen, Thorstein},
    Isbn = {978-81-87879-29-9},
    publisher = {Aakar Books},
    title = {The Theory of the Leisure Class},
    subtitle = {An Economic Study of Institutions},
    date = {2005-01},
    origyear = {1899}}

@book{Weber2013,
    Author = {Weber, Max},
    Isbn = {9781135973988},
    Keywords = {Reference / General, Religion / General},
    Language = {en},
    Month = jul,
    Publisher = {Routledge},
    Title = {{The Protestant Ethic and the Spirit of Capitalism}},
    Year = {2013},
       origdate = {1905}}    
\end{filecontents*}

\addbibresource{\jobname.bib}

\renewbibmacro*{date+extrayear}{%
      \iffieldundef{\thefield{datelabelsource}year}
        {}
        {\printtext[parens]{%
           \iffieldundef{origyear}% this is new ...
             {}
             {\printtext[brackets]{\printorigdate}
              \setunit{\addspace}}% ... till here
           \iffieldsequal{year}{\thefield{datelabelsource}year}
             {\printdateextralabel}%
             {\printfield{labelyear}%
              \printfield{extrayear}}}}}%
    \renewbibmacro*{date}{}%
    \renewbibmacro*{issue+date}{%
      \iffieldundef{issue}
        {}
        {\printtext[parens]{\printfield{issue}}}%
      \newunit}

    \renewbibmacro*{cite:labelyear+extrayear}{%
      \iffieldundef{labelyear}
        {}
        {\printtext[bibhyperref]{%moved this
          \iffieldundef{origyear}% this is new
            {}
            {\printtext[brackets]{\printorigdate}
             \setunit{\addspace}}% everything beyond this point is old
          \printfield{labelyear}%
          \printfield{extrayear}}}}

\usepackage{hyperref}
            \hypersetup{
          pdfborderstyle={/S/U/W 1}, % thanks, https://tex.stackexchange.com/a/26085/22939
         }

% arara: pdflatex 
% arara: biber
% arara: pdflatex 
\begin{document}
\ldots \citep{Veblen2005:1899} stated that \ldots\\

However \citet{Weber2013} demonstrates that \ldots

\printbibliography
\end{document}

enter image description here

I'll update this answer when I learn bore about the backend and TeXShop. Please feel free to comment if you know of a better solution. Thanks.

1

2 Answers 2

14

The biblatex way is to use origdate, but the default styles do not support origdate awfully well.

You might like the following redefinitions. This will work for the standard mergedate=compact option of biblatex.

We just add a call to \printorigdate where appropriate and make sure that origdate is not used as labeldate to avoid duplication.

\documentclass{article}
\usepackage[backend=biber, style=authoryear, natbib=true]{biblatex}
\usepackage{hyperref}

\DeclareLabeldate{%
  \field{date}
  \field{year}
  \field{eventdate}
  \field{urldate}
  \literal{nodate}
}

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

\renewbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{%
       \iffieldundef{origyear}
         {}
         {\printtext[brackets]{\printorigdate}%
          \setunit{\addspace}}%
       \printlabeldateextra}}}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Veblen2005:1899,
  author    = {Veblen, Thorstein},
  isbn      = {978-81-87879-29-9},
  publisher = {Aakar Books},
  title     = {The Theory of the Leisure Class},
  subtitle  = {An Economic Study of Institutions},
  date      = {2005-01},
  origdate  = {1899},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\ldots \citep{Veblen2005:1899,wilde} stated that \ldots

\printbibliography
\end{document}

yields

enter image description here

Note that the .bib entry should be using origdate instead of origyear (generally, only the ...date fields are supposed to appear in the .bib file, the backend parses the dates and produces the dateparts ...day, ...month etc., there are backwards compatibility exceptions for year and month, which are acceptable instead of date).

edit Updated for recent versions of biblatex and Biber. See the edit history for older versions.

5
  • Thank you for taking the time to respond to my question. I can't get your example to work. I run your MWE (? Working Example) and I get an error that I solved by reading the documentation to the filecontents (PDF!) and removing the ` from the filecontents` command, but I still can't figure it out. I am wondering why you have an Oscar Wilde reference in the screenshot you attached, but not in the code? Do the MWE work in a clean dir for anyone else? Thanks, Eric
    – Eric Fail
    Nov 11, 2013 at 11:45
  • @EricFail Yes, I'm sorry the picture did indeed not show the output one got from the code snippet, I have update the latter accordingly. I did not have any problem with filecontents though. One problem you might be facing is related to the BibTeX/Biber dichotomy: Your MWE used backend=bibtex while I had to use backend=biber to get the output you wanted.
    – moewe
    Nov 11, 2013 at 17:57
  • Thanks, It took me some time to get the biker backend to run, but I've now marked your answer as the solution and updated my question a bit in case someone is in a similar situation. Would you share what software you are using to create your PDF file?
    – Eric Fail
    Nov 12, 2013 at 10:36
  • I used latexmk (called from TeXworks) to compile the document.
    – moewe
    Nov 12, 2013 at 17:10
  • In case someone else has similar problems: replace \begin{filecontents*}{\jobname.bib} with \begin{filecontents*}[force]{\jobname.bib} when experimenting with the .bib file. If you don't want parentheses around the year (some journals request you remove them), replace \printtext[parens]{% with \printtext{% in the date+extradate macro
    – NCH32
    Aug 4, 2020 at 11:42
2

Since the above answer is outdated and I struggled a bit to replicate this behavior in the biblatex authoryear style, I'll provide here the updated code. This works in biber version 2.12:

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
      \iffieldundef{origyear}% new code
        {}
        {\printtext[brackets]{\printorigdate}\setunit{\addspace}}% end new
        \printlabeldateextra}}}%

\renewbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{%
      \iffieldundef{origyear}% new code
        {}
        {\printtext[brackets]{\printorigdate}\setunit{\addspace}}% end new
        \printlabeldateextra}}}

Therefore the MVE becomes

\documentclass{article}
\usepackage[backend=biber, style=authoryear, natbib=true]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{Veblen2005:1899,
    author = {Veblen, Thorstein},
    Isbn = {978-81-87879-29-9},
    publisher = {Aakar Books},
    title = {The Theory of the Leisure Class},
    subtitle = {An Economic Study of Institutions},
    date = {2005-01},
    origyear = {1899},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
      \iffieldundef{origyear}% new code
        {}
        {\printtext[brackets]{\printorigdate}\setunit{\addspace}}% end new
        \printlabeldateextra}}}%

\renewbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{%
      \iffieldundef{origyear}% new code
        {}
        {\printtext[brackets]{\printorigdate}\setunit{\addspace}}% end new
        \printlabeldateextra}}}

\begin{document}
\ldots \textcite{Veblen2005:1899} stated that \ldots

\printbibliography
\end{document}

Hope this helps anyone who'll struggle with this again!

1
  • Thanks for the heads-up. I modernised the code in my answer as well. I took a slightly different approach with respect to date+extradate to stay closer to the definition with mergedate=compact.
    – moewe
    Jul 7, 2019 at 10:35

You must log in to answer this question.

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