3

I'm compiling a book of contributed chapters, and a couple are heavily dependent on references from archive records such as the Congressional Serial Set, collections of records from a nineteenth century iron company housed in a museum's archives, and material from the National Archives and Record Administration, Washington, DC.

The book is required to use author-date inline citations, with each book chapter having its own bibliography, so I'm using \usepackage[authordate,backend=biber]{biblatex-chicago}.

Inline citations (as they appear in the author's manuscript) are things like

(Ordnance Department Contract, 27 Sept. 1812 National Archives and Record Administration, Washington, DC [NARA], Record Group [RG] 156/Entry 78/vol. 1, p. 5)

(William Simonds to Townsend, letter, 1 March 1813, New York State Library Manuscripts and Special Collections, Albany [NYSL, MSC], Sterling Iron and Railway Company Records, 1740-1918 [SIRC], SC14069, box 1, fol.1-2, no. 5)

(Decius Wadsworth to Townsend, letter, 21 March 1814 [SIRC, no. 6])

(Townsend to Gen. Calendar Irvine, letter, 14 Aug. 1814, NARA, RG 156/E21/[box 5]).

Sterling Forge Company daybook (SIRC 6/612)

(W. Jones to Townsend, letter, 17 October 1814 [SIRC, no. 7])

(House Journal, 16th Congress, 1st session:236)

and bibliogrpahy entries such as:

Secretary of War. (1819). Letter from the Secretary of War, transmitting statements of contracts made by the Commissary General of Subsistence, the Ordnance Department, the Commissary General of Purchases, and the Engineer Department, in the year 1818, February 24, 1819, 15th Cong., 2nd sess. [Congressional Serial Set 24 H.doc.148].

The citations are to various documents and records in archival collections, and reference to primary documents in common for historical research of this nature. This isn't a type of citation I use often, though. They appear to be following the Chicago 16 style, but I have no idea how to set them up as .bib entries biblatex.

For example, the "Simonds to Townsend" letter above is an original letter dated March 1, 1813 that is in a collection of archival documents (Sterling Iron and Railway Company Records, 1740-1918) housed at the New York State Library Manuscripts and Special Collections in Albany NY. The catalog reference is "SC14069, box 1, folders 1-2)" and the letter is Document #5 in that collection.

There are another 43 citations of materials within that archival collection. Should each separate document appear in the bibliography, or only the archive itself and use prepend and append in the in-text citation for the specific document information e.g.,

\autocite[Decius Wadsworth to Townsend, letter, 21 March 1814][no. 6]{SIRC}

What is more confusing (for me, at least) is that the author includes some fo these archival materials individually in the bibliography (e.g., anything for the "Congressional Serial Set") , but not necessarily things form the NARA records group?

I would think that @MVCollectionwith additional @Collection entries for each item being cited would be the way to go, but I can't find much in the way of biblatex-style examples for these specific types of materials. I could use @Misc, but then can't crossref them all to the collection.

So, my question is twofold:

  1. Regarding proper citation under Chicago 16, what is best practice for archival documents?
  2. Regarding biblatex-chicago, what are the appropriate entry types and fields to structures these in the .bib?

Can anyone recommend current practices for these types of materials, or at least a source for .bib entry examples that I might be able to use as a template? Nothing in the documentation for biblatex-chicago or in the example supplement cms-dates-intro.pdf seesm to match.

7
  • What does 'Inline citations are things like' mean? According to whom? Is there truly a 'proper' way to cite these materials? (I'm familiar with 'rules' about citing manuscripts from before the print era, but not these sorts of things.) My advice is: (1) step back and think about all the different 'types' of archival material there is (e.g., letters are not daybooks or contracts); (2) remember that just because you can, in theory, \cite anything does not mean it is the best way to cite all sources whatsoever; (3) make use of the @misc entry-type; (4) make use of a list of abbreviations.
    – jon
    Feb 15, 2017 at 21:39
  • @jon, I've edited the question to make it more explicit (which should help with your #1-2). I'm frantically looking through the documentation on @Misc entries, but they don't seem to cover collections with sub-documents. I'm not sure what you mean by using a list of abbreviations (#4).
    – JSCard
    Feb 16, 2017 at 17:47
  • My first thought is still 'don't use bib(la)tex for this. It is not hard to create a separate reference list for these entries called (say) 'Archival Sources' and list everything there. From your description, the information is already there, typed out in full, in the contributed chapters, so all you need is to create the reference list. (4) is a list of abbreviations or 'shorthands' (common in history(-related) fields). But if you want to do biblatex, then then in biblatex-chicago, the @misc field caters to many entrysubtypes. [...]
    – jon
    Feb 16, 2017 at 18:20
  • 1
    [...] In my view, you don't cite the collection, but the relevant archival source within the collection (the reader surely wants to find the collection information by means of looking up the item in the reference list, not find the item by looking up the collection. That means you don't need the @mv... entrytypes. This leads to some reduplication, perhaps, but this can be minimized through a judicious use of abbreviations. (Note this is a personal view: I do not know how well the Chicago Manual addresses the issue --- though a quick glance suggests 'not well' / 'vaguely'.)
    – jon
    Feb 16, 2017 at 18:22
  • 1
    Ah, OK. Please post a solution if you get one you find satisfying. (Or edit the question to reflect the problem you [still] face.) Archival documents are hard to cite properly, so I think it would be good to get an answer to this question posted, even if it is not 100% perfect.
    – jon
    Feb 16, 2017 at 20:34

3 Answers 3

3

After a considerable back and forth between myself, the chapter authors, and various colleagues - it would appear that there really isn't a reasonable answer to be had on this, even among historians. In part, the problem is that primary document citations such as these (e.g., archival collections, manuscripts, &c.) are simply not well suited to in-line citation formats.

The compromise we reached, since in-line was a publisher's requirement, was the the specific document retrieval information (identifier, doc #, file box, &c.) should be with the in-line citation, and the collection is what should appear in the biblio/references cited.

The only good way to do this was with @misc entries such as:

@misc{SIRC,
    author = {{Sterling Iron and Railway Company}},
    title = {Records, 1740-1918},
    shorthand = {SIRC},
    type = {SC14069, box 1, fol.1-2},
    institution = {New York State Library},
    organization = {Manuscripts and Special Collections},
    location = {Albany}
    }

with an in-text as:

\autocite[Decius Wadsworth to Townsend, letter, 21 March 1814][no. 6]{SIRC}

This does, unfortunately, lead to really ugly LaTeX and very disjointed prose within the published document...

...which is exactly why it is normally done by note-style citations rather than in-line.

So, basically, yes - it can be done, no - it isn't pretty, and no - there really aren't any good standards for doing so. Find a good kludge to compromise on, and stick with whatever ends up being consistent.

0

Using a hierarchy of free-form text fields:

example

code


Example of a General Biblatex Case - A Data-driven solution

Using custom free-form text fields to hold the data, then:

Since an archive is a hierarchical structure, an item in the archive can be located by stepping through that hierarchy (much like an address).

e.g. this is top-down

@archive{test1,
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
    level6 = {folders 4-5},
    level7 = {document 12},
...
}

A description (functioning much like a name) can be assigned to the item.

e.g. here, in terms of, say: what, who and when

@archive{test1,
...
  itemattr1 = {test1Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 February 1790},
...
}

And, instead of repeating a long location, we can use a handier short version.

e.g.

@archive{test1,
...
  shortarchive = {Pieman Letter},
}

So that, given the bib entry type and associated fields are made known to the datamodel (via a .dbx file), a suitable citation command can produce (in several flavours), and using letter-address phraseology:

  • name + top-down address

  • name + bottom-up address

  • top-down address + name

  • bottom-up address + name

flavours

For convenience, the "name" and "address" could be retrieved separately:

location

Likewise the components:

components


A parent-child relationship (between, say, a box and the contents of the box) can be established by splitting the hierarchy in two,

then listing the child entries in the parent's related field

@archive{box2,
   title={All About Pies},
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
  related     = {box2a,box2b,box2c},
  relatedtype = {archive},
...
}

and listing the child's parent in the child's xref= field

@archive{box2a,
  level6 = {folders 1-2},
  itemattr1 = {Correspondence in Frensshe},
  xref = {box2},
...
  }

refs

The relatedtype = {archive}, in the parent is new here and points to a small custom macro \newbibmacro*{related:archive}.

How the code works

Both the main citation command and the bibliography driver run the (same) series of macros which eventually does a printfield{...} for each of the archive fields and adds in some basic punctuation.

The bibliography driver then iterates through any related (=child) entries, adding --, clearing the punctuation buffer and \printfielding as it goes. The ext-authoryear Biblatex style is used because it handily has newline as a delimiter in just the right place for the child entries. (By comparison, the oxnotes style does semicolon-delimited related entries inline, which works well for small sets, say <4-5, of related items.)

To have the same archival item be both a child entry and a standalone entry requires duplication of the bib data in this model. (See test1 and ffdoc12.)

Formatting of the child levels here is just for demonstration.

MWBE

% arara: lualatex
% arara: biber
% arara: lualatex
% arara: lualatex


\begin{filecontents}[overwrite]{archive.bib}

@archive{folders45,
   title={The Pieman Letters},
   sorttitle={Pieman Letters},
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
    level6 = {folders 4-5},
  related = {ffdoc1,ffdoc2, ffdoc3, ffdoc4, ffdoc12},
  relatedtype = {archive},
  keywords = {mv},
}


@archive{box2,
   title={All About Pies},
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
  related     = {box2a,box2b,box2c},
  relatedtype = {archive},
  keywords = {mv},
}





@archive{test1,
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
    level6 = {folders 4-5},
    level7 = {document 12},
  itemattr1 = {test1Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 February 1790},
  shortarchive  ={Pieman Letter},
}


    @archive{box2a,
    level6 = {folders 1-2},
  itemattr1 = {Correspondence in Frensshe},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{box2b,
    level6 = {folder 3},
  itemattr1 = {Pastry recipes},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{box2c,
    level6 = {folders 4-5},
  itemattr1 = {The Pieman Letters},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{ffdoc4,
    level7 = {\ldots},
  itemattr1 = {: various other sundry letters},
%  itemattr2 = {from Simon to the Pieman},
%  itemattr3 = {15 February 1790},
  xref = {folders45},
%   options = {dataonly},
  keywords = {mv},
  }


@archive{ffdoc12,
    level7 = {document 12},
  itemattr1 = {ffdoc12Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 February 1790},
  xref = {folders45},
%   options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc1,
    level7 = {document 1},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {12 February 1790},
  xref = {folders45},
options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc2,
    level7 = {document 2},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {14 February 1790},
  xref = {folders45},
options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc3,
    level7 = {document 3},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 March 1790},
  xref = {folders45},
    options = {dataonly},
  keywords = {mv},
  }
  
@book{abook,author={An Author},title={A Title},publisher={A Publisher},date={1795},location={Paris and London},}
\end{filecontents}


%--------------------------------

\begin{filecontents}[overwrite]{bibdm_archive.dbx}

\DeclareDatamodelEntrytypes{archive}

\DeclareDatamodelFields[type=field, datatype=literal]{
  level1,
  level2,
  level3,
  level4,
  level5,
  level6,
  level7,
  level8,
  level9,
  level10,
  level11,
  level12,
  shortarchive,
  itemattr1,
  itemattr2,
  itemattr3,
  } 

%======================================
\DeclareDatamodelEntryfields[archive]{%
  level1,
  level2,
  level3,
  level4,
  level5,
  level6,
  level7,
  level8,
  level9,
  level10,
  level11,
  level12,
  shortarchive,
  itemattr1,
  itemattr2,
  itemattr3,
  }



\end{filecontents}

%--------------------------------



\documentclass{article}

\usepackage{xcolor}
\pagecolor{green!3}

\usepackage{fontspec}
\setmainfont{Noto Serif}
\newcommand{\cmm}[1]{{\large\ttfamily\color{blue}\textbackslash#1}}


\usepackage[style=british]{csquotes}
\usepackage[
    datamodel=bibdm_archive,  
    style=ext-authoryear,%numeric,%oxnotes, 
    minxrefs=1,
    locallabelwidth=true,
    citecounter=true,
    citetracker=true,
    datecirca=true,
    date=long, 
    minxrefs=1,   
    backend=biber,
    sorting=nyt,
        ]{biblatex}
        

%============  bib overrides
%\DeclareNameAlias{sortname}{given-family}
%%============  bib resources
\addbibresource{archive.bib}

%============  bibliography commands



\newcommand\showcmnd[1]{%
\textbackslash\texttt{#1}%
}


\newcommand\bibhlcolour{red}
\newcommand\bibhlformat[1]{\sffamily\bfseries\textcolor{\bibhlcolour}{#1}}


\newtoggle{littleendian}
\toggletrue{littleendian}


\DeclareFieldFormat{level1}{#1}
\DeclareFieldFormat{level2}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level1}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level3}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level2}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level4}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level3}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level5}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level4}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level6}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level5}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}

\DeclareFieldFormat{level7}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level6}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}




\DeclareFieldFormat{level8}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level7}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level9}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level8}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level10}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level9}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level11}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level10}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level12}{#1}

\DeclareFieldFormat{shortarchive}{\mkbibemph{#1}}
\DeclareFieldFormat{itemattr1}{#1}
\DeclareFieldFormat{itemattr2}{#1}
\DeclareFieldFormat{itemattr3}{#1}

%~~~~~~~~~~~~~~~~~~~
% bibmacros
%======================= getshortarchive
\newbibmacro{getshortarchive}{%
        \iffieldundef{shortarchive}{}{\printfield{shortarchive}}%
}

\newcommand\relateditemdelim{\setunit*{\addcomma\addspace}}%

%======================= getarchiveall
\newbibmacro{getarchiveall}{%
      \usebibmacro{getarchive1}%
        \relateditemdelim%
      \usebibmacro{getarchive2}%
        \relateditemdelim%
      \usebibmacro{getarchive3}%
        \relateditemdelim%
      \usebibmacro{getarchive4}%
        \relateditemdelim%
      \usebibmacro{getarchive5}%
        \relateditemdelim%
      \usebibmacro{getarchive6}%
        \relateditemdelim%
      \usebibmacro{getarchive7}%
        \relateditemdelim%
      \usebibmacro{getarchive8}%
        \relateditemdelim%
      \usebibmacro{getarchive9}%
        \relateditemdelim%
      \usebibmacro{getarchive10}%
        \relateditemdelim%
      \usebibmacro{getarchive11}%
        \relateditemdelim%
      \usebibmacro{getarchive12}%
}


%======================= getitemattrall
\newbibmacro{getitemattrall}{%
      \usebibmacro{getitemattr1}%
        \relateditemdelim%
      \usebibmacro{getitemattr2}%
        \relateditemdelim%
      \usebibmacro{getitemattr3}%
}


%======================= getarchive
\newbibmacro{getarchive}{%
        \newunit%
        \iftoggle{littleendian}%
        {\usebibmacro{getitemattrall}}{\usebibmacro{getarchiveall}}%
        \newunit%
        \setunit*{\addcolon\addspace}%
        \iftoggle{littleendian}%
        {\usebibmacro{getarchiveall}}{\usebibmacro{getitemattrall}}%
        \newunit%
}

    
%======================= getarchivegeneral
\newbibmacro{getarchivegeneral}[1]{%
        \iffieldundef{level#1}{}{\printfield{level#1}}%
}

%======================= getitemattrgeneral
\newbibmacro{getitemattrgeneral}[1]{%
        \iffieldundef{itemattr#1}{}{\printfield{itemattr#1}}%
}


%======================= getarchive1-12
\newbibmacro{getarchive1}{\usebibmacro{getarchivegeneral}{1}}
\newbibmacro{getarchive2}{\usebibmacro{getarchivegeneral}{2}}
\newbibmacro{getarchive3}{\usebibmacro{getarchivegeneral}{3}}
\newbibmacro{getarchive4}{\usebibmacro{getarchivegeneral}{4}}
\newbibmacro{getarchive5}{\usebibmacro{getarchivegeneral}{5}}
\newbibmacro{getarchive6}{\usebibmacro{getarchivegeneral}{6}}
\newbibmacro{getarchive7}{\usebibmacro{getarchivegeneral}{7}}
\newbibmacro{getarchive8}{\usebibmacro{getarchivegeneral}{8}}
\newbibmacro{getarchive9}{\usebibmacro{getarchivegeneral}{9}}
\newbibmacro{getarchive10}{\usebibmacro{getarchivegeneral}{10}}
\newbibmacro{getarchive11}{\usebibmacro{getarchivegeneral}{11}}
\newbibmacro{getarchive12}{\usebibmacro{getarchivegeneral}{12}}

%======================= getitemattr1-3
\newbibmacro{getitemattr1}{\usebibmacro{getitemattrgeneral}{1}}
\newbibmacro{getitemattr2}{\usebibmacro{getitemattrgeneral}{2}}
\newbibmacro{getitemattr3}{\usebibmacro{getitemattrgeneral}{3}}


%++++++++++++++++++++++++++++++++++++++ reverse
%======================= getarchiveallrev
\newbibmacro{getarchiveallrev}{%
      \usebibmacro{getarchive12}%
        \relateditemdelim%
      \usebibmacro{getarchive11}%
        \relateditemdelim%
      \usebibmacro{getarchive10}%
        \relateditemdelim%
      \usebibmacro{getarchive9}%
        \relateditemdelim%
      \usebibmacro{getarchive8}%
        \relateditemdelim%
      \usebibmacro{getarchive7}%
        \relateditemdelim%
      \usebibmacro{getarchive6}%
        \relateditemdelim%
      \usebibmacro{getarchive5}%
        \relateditemdelim%
      \usebibmacro{getarchive4}%
        \relateditemdelim%
      \usebibmacro{getarchive3}%
        \relateditemdelim%
      \usebibmacro{getarchive2}%
        \relateditemdelim%
      \usebibmacro{getarchive1}%
}

%======================= getarchiveallreva
\newbibmacro{getarchiveallreva}{%
      \newunit%
        \iftoggle{littleendian}{\addcolon}{}%
      \usebibmacro{getarchiveallrev}%
}




%======================= getarchiverev
\newbibmacro{getarchiverev}{%
        \newunit%
        \iftoggle{littleendian}
        {\usebibmacro{getitemattrall}}{\usebibmacro{getarchiveallreva}}%
        \newunit%
        \setunit*{\addcolon\addspace}%
        \iftoggle{littleendian}
        {\usebibmacro{getarchiveallreva}}{\usebibmacro{getitemattrall}}%
        \newunit%
}

    






\newbibmacro*{related:archive}[1]{%
  \entrydata*{#1}{%
  {%
        \togglefalse{littleendian}%
    \printtext{--}%
    \nopunct%
    \usebibmacro{getarchive}%
     }%
}}


%===
\DeclareCiteCommand{\archive}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen%
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\archiverev}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchiverev}}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}


%-----------------------------------------
\DeclareCiteCommand{\parenarchive}[\mkbibparens]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{%sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\bracketarchive}[\mkbibbrackets]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{%sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\footarchive}[\mkbibfootnote]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \usebibmacro{getarchive}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareMultiCiteCommand{\archives}%
{\archive}{\multicitedelim}
\DeclareMultiCiteCommand{\parenarchives}[\mkbibparens]%
{\parenarchive}{\multicitedelim}
\DeclareMultiCiteCommand{\footarchives}[\mkbibfootnote]%
{\footarchive}{\multicitedelim}



%-----------------------------------------
\DeclareCiteCommand{\archivea}{\usebibmacro{prenote}}{\usebibmacro{getarchive1}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveb}{\usebibmacro{prenote}}{\usebibmacro{getarchive2}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivec}{\usebibmacro{prenote}}{\usebibmacro{getarchive3}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archived}{\usebibmacro{prenote}}{\usebibmacro{getarchive4}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivee}{\usebibmacro{prenote}}{\usebibmacro{getarchive5}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivef}{\usebibmacro{prenote}}{\usebibmacro{getarchive6}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveg}{\usebibmacro{prenote}}{\usebibmacro{getarchive7}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveh}{\usebibmacro{prenote}}{\usebibmacro{getarchive8}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivei}{\usebibmacro{prenote}}{\usebibmacro{getarchive9}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivej}{\usebibmacro{prenote}}{\usebibmacro{getarchive10}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivek}{\usebibmacro{prenote}}{\usebibmacro{getarchive11}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivel}{\usebibmacro{prenote}}{\usebibmacro{getarchive12}}{\multicitedelim}{\usebibmacro{postnote}}


\DeclareCiteCommand{\archiveattra}{\usebibmacro{prenote}}{\usebibmacro{getitemattr1}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveattrb}{\usebibmacro{prenote}}{\usebibmacro{getitemattr2}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveattrc}{\usebibmacro{prenote}}{\usebibmacro{getitemattr3}}{\multicitedelim}{\usebibmacro{postnote}}




%-----------------------------------------
\DeclareBibliographyDriver{archive}{%
    \usebibmacro{begentry}%
    \iffieldundef{title}{}{\printfield{title}}%
    \usebibmacro{getarchive}%
\iftoggle{bbx:related}{%
\setunit*{\addperiod}\printtext{\enspace}
\newline\usebibmacro{related:init}\usebibmacro{related}%
  }%
  {}%
    \usebibmacro{finentry}%
}


\DeclareSortingTemplate{bytitle}{%
\sort{
        \field{sorttitle}
        \field{title}
        \field{itemattr1}
}
\sort{
        \field{itemattr2}
}
\sort{
        \field{itemattr3}
}
}

\DeclareRefcontext{rcbytitle}{sorting=bytitle}



%-----------------------------------------
\DeclareCiteCommand{\archiveitem}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getitemattrall}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\archiveloc}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getarchiveall}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}


%-----------------------------------------
\DeclareCiteCommand{\archivelocrev}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getarchiveallrev}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}







%============  document 
\begin{document}


\citetrackerfalse
..., which had a profound impact  (\archive{ffdoc2} in the \citetitle{folders45} collection).

Meanwhile, in another series of developments from \archiveattrc{ffdoc3} onwards (\citetitle{folders45}, \archiveg{ffdoc3}), ...
\citetrackertrue

\begin{verbatim}
..., which had a profound impact  
(\archive{ffdoc2} in the \citetitle{folders45} collection).

Meanwhile, in another series of developments from 
\archiveattrc{ffdoc3} 
onwards 
(\citetitle{folders45}, \archiveg{ffdoc3}), ...
\end{verbatim}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\medskip
\cmm{archive}

\medskip
(A) Big Endian:
 
\togglefalse{littleendian}

\noindent First cite: \archive{test1}

Second cite: \archive{test1}

\medskip
(B) Little Endian:
\toggletrue{littleendian}

\citetrackerfalse
\noindent First cite: \archive{test1}

\citetrackertrue
Second cite: \archive{test1}

%%%%% reverse direction: bottom up

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiverev}

\medskip
(C) Big Endian: Reverse
 
\togglefalse{littleendian}

\citetrackerfalse
\noindent First cite: \archiverev{test1}

\citetrackertrue
Second cite: \archiverev{test1}

\medskip
(D) Little Endian: Reverse
\toggletrue{littleendian}

\citetrackerfalse
\noindent First cite: \archiverev{test1}

\citetrackertrue
Second cite: \archiverev{test1}





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiveitem}

\medskip
\archiveitem{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiveloc}

\medskip
\archiveloc{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archivelocrev}

\medskip
\archivelocrev{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{parenarchive}

\medskip
\citetrackerfalse
\parenarchive{test1}

\citetrackertrue
Second cite: \parenarchive{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{bracketarchive}

\medskip
\citetrackerfalse
\bracketarchive{test1}

\citetrackertrue
Second cite: \bracketarchive{test1}

\medskip
\bracketarchive[See][leaf 4]{test1}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{footarchive}

\medskip
text\footarchive{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archivea} = \archivea{test1}

\cmm{archiveb} = \archiveb{test1}

\cmm{archivec} = \archivec{test1}

\cmm{archived} = \archived{test1}

\cmm{archivee} = \archivee{test1}

\cmm{archivef} = \archivef{test1}

\cmm{archiveg} = \archiveg{test1}

\cmm{archiveh} = \archiveh{test1}

\cmm{archivei} = \archivei{test1}

\cmm{archivej} = \archivej{test1}

\cmm{archivek} = \archivek{test1}

\cmm{archivel} = \archivel{test1}

\cmm{archiveattra} = \archiveattra{test1}

\cmm{archiveattrb} = \archiveattrb{test1}

\cmm{archiveattrc} = \archiveattrc{test1}


\medskip
---

Box 2 (\verb|\archive{box2}|): \par\archive{box2}.

\medskip
One of the items in box 2 (\verb|\archive{box2a}| + \verb|\citetitle{box2}|): \par\archive{box2a} in the \citetitle{box2} archive.

\medskip
Folders4-5 (\verb|\archive{folders45}|): \par\archive{folders45}.

\medskip
A document (\verb|\archive{ffdoc2}| + \verb|\citetitle{folders45}|): \par\archive{ffdoc2}, in the \citetitle{folders45} collection.

%A book: \cite{abook}.

\newpage
\begin{refcontext}{rcbytitle}
\printbibliography
\end{refcontext}



\end{document}

0

(continued) ...

The biblatex-chicago version looks like this:

biblatex-chicago

with a one-line code change and an up-to-date distribution.

Note that existing defined fields like name=, date=, publisher=, url= etc can also be used - they may need to be added to the sorting template, depending on requirements, and perhaps inserted into the citation command(s) and bibliography driver with the appropriate \print...{} command (where ... = field, list, name, date).

Or additional fields can be defined and used, for that matter.

MWBE

% arara: lualatex
% arara: biber
% arara: lualatex
% arara: lualatex


\begin{filecontents}[overwrite]{archive.bib}

@archive{folders45,
   title={The Pieman Letters},
   sorttitle={Pieman Letters},
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
    level6 = {folders 4-5},
  related = {ffdoc1,ffdoc2, ffdoc3, ffdoc4, ffdoc12},
  relatedtype = {archive},
  keywords = {mv},
}


@archive{box2,
   title={All About Pies},
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
  related     = {box2a,box2b,box2c},
  relatedtype = {archive},
  keywords = {mv},
}





@archive{test1,
    level1 = {Museum of All Things},
    level2 = {Historical Collections Department},
    level3 = {Station Records 1790-1820},
    level4 = {cat AB 123/486},
    level5 = {box 2},
    level6 = {folders 4-5},
    level7 = {document 12},
  itemattr1 = {test1Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 February 1790},
  shortarchive  ={Pieman Letter},
}


    @archive{box2a,
    level6 = {folders 1-2},
  itemattr1 = {Correspondence in Frensshe},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{box2b,
    level6 = {folder 3},
  itemattr1 = {Pastry recipes},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{box2c,
    level6 = {folders 4-5},
  itemattr1 = {The Pieman Letters},
  xref = {box2},
options = {dataonly},
  keywords = {mv},
  }


@archive{ffdoc4,
    level7 = {\ldots},
  itemattr1 = {: various other sundry letters},
%  itemattr2 = {from Simon to the Pieman},
%  itemattr3 = {15 February 1790},
  xref = {folders45},
%   options = {dataonly},
  keywords = {mv},
  }


@archive{ffdoc12,
    level7 = {document 12},
  itemattr1 = {ffdoc12Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 February 1790},
  xref = {folders45},
%   options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc1,
    level7 = {document 1},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {12 February 1790},
  xref = {folders45},
options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc2,
    level7 = {document 2},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {14 February 1790},
  xref = {folders45},
options = {dataonly},
  keywords = {mv},
  }

@archive{ffdoc3,
    level7 = {document 3},
  itemattr1 = {Letter},
  itemattr2 = {from Simon to the Pieman},
  itemattr3 = {15 March 1790},
  xref = {folders45},
    options = {dataonly},
  keywords = {mv},
  }
  
@book{abook,author={An Author},title={A Title},publisher={A Publisher},date={1795},location={Paris and London},}
\end{filecontents}


%--------------------------------

\begin{filecontents}[overwrite]{bibdm_archive.dbx}

\DeclareDatamodelEntrytypes{archive}

\DeclareDatamodelFields[type=field, datatype=literal]{
  level1,
  level2,
  level3,
  level4,
  level5,
  level6,
  level7,
  level8,
  level9,
  level10,
  level11,
  level12,
  shortarchive,
  itemattr1,
  itemattr2,
  itemattr3,
  } 

%======================================
\DeclareDatamodelEntryfields[archive]{%
  level1,
  level2,
  level3,
  level4,
  level5,
  level6,
  level7,
  level8,
  level9,
  level10,
  level11,
  level12,
  shortarchive,
  itemattr1,
  itemattr2,
  itemattr3,
  }



\end{filecontents}

%--------------------------------



\documentclass{article}

\usepackage{xcolor}
\pagecolor{green!3}

\usepackage{fontspec}
\setmainfont{Noto Serif}
\newcommand{\cmm}[1]{{\large\ttfamily\color{blue}\textbackslash#1}}


%\PassOptionsToPackage{<options>}{<package>}\RequirePackage{<package>}

\usepackage[style=british]{csquotes}
\usepackage[
    datamodel=bibdm_archive,  
%   style=ext-authoryear,%numeric,%oxnotes, 
    minxrefs=1,
    locallabelwidth=true,
    citecounter=true,
    citetracker=true,
    datecirca=true,
    date=long, 
    minxrefs=1,   
    backend=biber,
    sorting=nyt,
        ]{biblatex-chicago}
%       ]{biblatex}
        

%============  bib overrides
%\DeclareNameAlias{sortname}{given-family}
%%============  bib resources
\addbibresource{archive.bib}

%============  bibliography commands



\newcommand\showcmnd[1]{%
\textbackslash\texttt{#1}%
}


\newcommand\bibhlcolour{red}
\newcommand\bibhlformat[1]{\sffamily\bfseries\textcolor{\bibhlcolour}{#1}}


\newtoggle{littleendian}
\toggletrue{littleendian}


\DeclareFieldFormat{level1}{#1}
\DeclareFieldFormat{level2}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level1}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level3}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level2}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level4}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level3}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level5}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level4}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level6}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level5}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}

\DeclareFieldFormat{level7}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level6}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}




\DeclareFieldFormat{level8}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level7}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level9}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level8}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level10}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level9}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level11}{%
    \ifboolexpr{
    test {\ifbibliography}
    and
     test {\iffieldundef{level10}}
     }
    {{\bibhlformat{#1}}}% T
    {#1}% F
}%

\DeclareFieldFormat{level12}{#1}

\DeclareFieldFormat{shortarchive}{\mkbibemph{#1}}
\DeclareFieldFormat{itemattr1}{#1}
\DeclareFieldFormat{itemattr2}{#1}
\DeclareFieldFormat{itemattr3}{#1}

%~~~~~~~~~~~~~~~~~~~
% bibmacros
%======================= getshortarchive
\newbibmacro{getshortarchive}{%
        \iffieldundef{shortarchive}{}{\printfield{shortarchive}}%
}

\newcommand\relateditemdelim{\setunit*{\addcomma\addspace}}%

%======================= getarchiveall
\newbibmacro{getarchiveall}{%
      \usebibmacro{getarchive1}%
        \relateditemdelim%
      \usebibmacro{getarchive2}%
        \relateditemdelim%
      \usebibmacro{getarchive3}%
        \relateditemdelim%
      \usebibmacro{getarchive4}%
        \relateditemdelim%
      \usebibmacro{getarchive5}%
        \relateditemdelim%
      \usebibmacro{getarchive6}%
        \relateditemdelim%
      \usebibmacro{getarchive7}%
        \relateditemdelim%
      \usebibmacro{getarchive8}%
        \relateditemdelim%
      \usebibmacro{getarchive9}%
        \relateditemdelim%
      \usebibmacro{getarchive10}%
        \relateditemdelim%
      \usebibmacro{getarchive11}%
        \relateditemdelim%
      \usebibmacro{getarchive12}%
}


%======================= getitemattrall
\newbibmacro{getitemattrall}{%
      \usebibmacro{getitemattr1}%
        \relateditemdelim%
      \usebibmacro{getitemattr2}%
        \relateditemdelim%
      \usebibmacro{getitemattr3}%
}


%======================= getarchive
\newbibmacro{getarchive}{%
        \newunit%
        \iftoggle{littleendian}%
        {\usebibmacro{getitemattrall}}{\usebibmacro{getarchiveall}}%
        \newunit%
        \setunit*{\addcolon\addspace}%
        \iftoggle{littleendian}%
        {\usebibmacro{getarchiveall}}{\usebibmacro{getitemattrall}}%
        \newunit%
}

    
%======================= getarchivegeneral
\newbibmacro{getarchivegeneral}[1]{%
        \iffieldundef{level#1}{}{\printfield{level#1}}%
}

%======================= getitemattrgeneral
\newbibmacro{getitemattrgeneral}[1]{%
        \iffieldundef{itemattr#1}{}{\printfield{itemattr#1}}%
}


%======================= getarchive1-12
\newbibmacro{getarchive1}{\usebibmacro{getarchivegeneral}{1}}
\newbibmacro{getarchive2}{\usebibmacro{getarchivegeneral}{2}}
\newbibmacro{getarchive3}{\usebibmacro{getarchivegeneral}{3}}
\newbibmacro{getarchive4}{\usebibmacro{getarchivegeneral}{4}}
\newbibmacro{getarchive5}{\usebibmacro{getarchivegeneral}{5}}
\newbibmacro{getarchive6}{\usebibmacro{getarchivegeneral}{6}}
\newbibmacro{getarchive7}{\usebibmacro{getarchivegeneral}{7}}
\newbibmacro{getarchive8}{\usebibmacro{getarchivegeneral}{8}}
\newbibmacro{getarchive9}{\usebibmacro{getarchivegeneral}{9}}
\newbibmacro{getarchive10}{\usebibmacro{getarchivegeneral}{10}}
\newbibmacro{getarchive11}{\usebibmacro{getarchivegeneral}{11}}
\newbibmacro{getarchive12}{\usebibmacro{getarchivegeneral}{12}}

%======================= getitemattr1-3
\newbibmacro{getitemattr1}{\usebibmacro{getitemattrgeneral}{1}}
\newbibmacro{getitemattr2}{\usebibmacro{getitemattrgeneral}{2}}
\newbibmacro{getitemattr3}{\usebibmacro{getitemattrgeneral}{3}}


%++++++++++++++++++++++++++++++++++++++ reverse
%======================= getarchiveallrev
\newbibmacro{getarchiveallrev}{%
      \usebibmacro{getarchive12}%
        \relateditemdelim%
      \usebibmacro{getarchive11}%
        \relateditemdelim%
      \usebibmacro{getarchive10}%
        \relateditemdelim%
      \usebibmacro{getarchive9}%
        \relateditemdelim%
      \usebibmacro{getarchive8}%
        \relateditemdelim%
      \usebibmacro{getarchive7}%
        \relateditemdelim%
      \usebibmacro{getarchive6}%
        \relateditemdelim%
      \usebibmacro{getarchive5}%
        \relateditemdelim%
      \usebibmacro{getarchive4}%
        \relateditemdelim%
      \usebibmacro{getarchive3}%
        \relateditemdelim%
      \usebibmacro{getarchive2}%
        \relateditemdelim%
      \usebibmacro{getarchive1}%
}

%======================= getarchiveallreva
\newbibmacro{getarchiveallreva}{%
      \newunit%
        \iftoggle{littleendian}{\addcolon}{}%
      \usebibmacro{getarchiveallrev}%
}




%======================= getarchiverev
\newbibmacro{getarchiverev}{%
        \newunit%
        \iftoggle{littleendian}
        {\usebibmacro{getitemattrall}}{\usebibmacro{getarchiveallreva}}%
        \newunit%
        \setunit*{\addcolon\addspace}%
        \iftoggle{littleendian}
        {\usebibmacro{getarchiveallreva}}{\usebibmacro{getitemattrall}}%
        \newunit%
}

    






\newbibmacro*{related:archive}[1]{%
  \entrydata*{#1}{%
  {%
        \togglefalse{littleendian}%
    \printtext{--}%
    \nopunct%
    \usebibmacro{getarchive}%
     }%
}}


%===
\DeclareCiteCommand{\archive}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen%
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\archiverev}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchiverev}}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}


%-----------------------------------------
\DeclareCiteCommand{\parenarchive}[\mkbibparens]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{%sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\bracketarchive}[\mkbibbrackets]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \ifciteseen
    {%
        \usebibmacro{getshortarchive}%
    }%
    {\usebibmacro{getarchive}}%
}
{%sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\footarchive}[\mkbibfootnote]{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
    \usebibmacro{getarchive}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareMultiCiteCommand{\archives}%
{\archive}{\multicitedelim}
\DeclareMultiCiteCommand{\parenarchives}[\mkbibparens]%
{\parenarchive}{\multicitedelim}
\DeclareMultiCiteCommand{\footarchives}[\mkbibfootnote]%
{\footarchive}{\multicitedelim}



%-----------------------------------------
\DeclareCiteCommand{\archivea}{\usebibmacro{prenote}}{\usebibmacro{getarchive1}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveb}{\usebibmacro{prenote}}{\usebibmacro{getarchive2}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivec}{\usebibmacro{prenote}}{\usebibmacro{getarchive3}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archived}{\usebibmacro{prenote}}{\usebibmacro{getarchive4}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivee}{\usebibmacro{prenote}}{\usebibmacro{getarchive5}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivef}{\usebibmacro{prenote}}{\usebibmacro{getarchive6}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveg}{\usebibmacro{prenote}}{\usebibmacro{getarchive7}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveh}{\usebibmacro{prenote}}{\usebibmacro{getarchive8}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivei}{\usebibmacro{prenote}}{\usebibmacro{getarchive9}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivej}{\usebibmacro{prenote}}{\usebibmacro{getarchive10}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivek}{\usebibmacro{prenote}}{\usebibmacro{getarchive11}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archivel}{\usebibmacro{prenote}}{\usebibmacro{getarchive12}}{\multicitedelim}{\usebibmacro{postnote}}


\DeclareCiteCommand{\archiveattra}{\usebibmacro{prenote}}{\usebibmacro{getitemattr1}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveattrb}{\usebibmacro{prenote}}{\usebibmacro{getitemattr2}}{\multicitedelim}{\usebibmacro{postnote}}
\DeclareCiteCommand{\archiveattrc}{\usebibmacro{prenote}}{\usebibmacro{getitemattr3}}{\multicitedelim}{\usebibmacro{postnote}}




%-----------------------------------------
\DeclareBibliographyDriver{archive}{%
    \usebibmacro{begentry}%
    \iffieldundef{title}{}{\printfield{title}}%
    \usebibmacro{getarchive}%
%\iftoggle{bbx:related}{%
%\setunit*{\addperiod}\printtext{\enspace}
%\newline\usebibmacro{related:init}\usebibmacro{related}%
%  }%
%  {}%
\iffieldundef{related}{}{%
\setunit*{\addperiod}\printtext{\enspace}
\newline\usebibmacro{related:init}\usebibmacro{related}%
  }%
    \usebibmacro{finentry}%
}


\DeclareSortingTemplate{bytitle}{%
\sort{
        \field{sorttitle}
        \field{title}
        \field{itemattr1}
}
\sort{
        \field{itemattr2}
}
\sort{
        \field{itemattr3}
}
}

\DeclareRefcontext{rcbytitle}{sorting=bytitle}



%-----------------------------------------
\DeclareCiteCommand{\archiveitem}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getitemattrall}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}



%-----------------------------------------
\DeclareCiteCommand{\archiveloc}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getarchiveall}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}


%-----------------------------------------
\DeclareCiteCommand{\archivelocrev}{% prenote
    \usebibmacro{prenote}%
}
{%loopcode
        \usebibmacro{getarchiveallrev}%
}
{   %sepcode
    \multicitedelim%
}
{%postnote
\usebibmacro{postnote}%
}







%============  document 
\begin{document}


\citetrackerfalse
..., which had a profound impact  (\archive{ffdoc2} in the \citetitle{folders45} collection).

Meanwhile, in another series of developments from \archiveattrc{ffdoc3} onwards (\citetitle{folders45}, \archiveg{ffdoc3}), ...
\citetrackertrue

\begin{verbatim}
..., which had a profound impact  
(\archive{ffdoc2} in the \citetitle{folders45} collection).

Meanwhile, in another series of developments from 
\archiveattrc{ffdoc3} 
onwards 
(\citetitle{folders45}, \archiveg{ffdoc3}), ...
\end{verbatim}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\medskip
\cmm{archive}

\medskip
(A) Big Endian:
 
\togglefalse{littleendian}

\noindent First cite: \archive{test1}

Second cite: \archive{test1}

\medskip
(B) Little Endian:
\toggletrue{littleendian}

\citetrackerfalse
\noindent First cite: \archive{test1}

\citetrackertrue
Second cite: \archive{test1}

%%%%% reverse direction: bottom up

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiverev}

\medskip
(C) Big Endian: Reverse
 
\togglefalse{littleendian}

\citetrackerfalse
\noindent First cite: \archiverev{test1}

\citetrackertrue
Second cite: \archiverev{test1}

\medskip
(D) Little Endian: Reverse
\toggletrue{littleendian}

\citetrackerfalse
\noindent First cite: \archiverev{test1}

\citetrackertrue
Second cite: \archiverev{test1}





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiveitem}

\medskip
\archiveitem{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archiveloc}

\medskip
\archiveloc{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archivelocrev}

\medskip
\archivelocrev{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{parenarchive}

\medskip
\citetrackerfalse
\parenarchive{test1}

\citetrackertrue
Second cite: \parenarchive{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{bracketarchive}

\medskip
\citetrackerfalse
\bracketarchive{test1}

\citetrackertrue
Second cite: \bracketarchive{test1}

\medskip
\bracketarchive[See][leaf 4]{test1}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{footarchive}

\medskip
text\footarchive{test1}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bigskip
\cmm{archivea} = \archivea{test1}

\cmm{archiveb} = \archiveb{test1}

\cmm{archivec} = \archivec{test1}

\cmm{archived} = \archived{test1}

\cmm{archivee} = \archivee{test1}

\cmm{archivef} = \archivef{test1}

\cmm{archiveg} = \archiveg{test1}

\cmm{archiveh} = \archiveh{test1}

\cmm{archivei} = \archivei{test1}

\cmm{archivej} = \archivej{test1}

\cmm{archivek} = \archivek{test1}

\cmm{archivel} = \archivel{test1}

\cmm{archiveattra} = \archiveattra{test1}

\cmm{archiveattrb} = \archiveattrb{test1}

\cmm{archiveattrc} = \archiveattrc{test1}


\medskip
---

Box 2 (\verb|\archive{box2}|): \par\archive{box2}.

\medskip
One of the items in box 2 (\verb|\archive{box2a}| + \verb|\citetitle{box2}|): \par\archive{box2a} in the \citetitle{box2} archive.

\medskip
Folders4-5 (\verb|\archive{folders45}|): \par\archive{folders45}.

\medskip
A document (\verb|\archive{ffdoc2}| + \verb|\citetitle{folders45}|): \par\archive{ffdoc2}, in the \citetitle{folders45} collection.

%A book: \cite{abook}.

\newpage
\begin{refcontext}{rcbytitle}
\printbibliography
\end{refcontext}



\end{document}

You must log in to answer this question.

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