← All templates

DH Benelux Journal (dhbenelux)

The DH Benelux Journal's dhbenelux class (developed from varianTeX) with the journal's author template: title, authors with affiliations, abstract, keywords, a figure, footnotes and natbib references.

Create an account to use this
Category
Journal
Document class
dhbenelux (dhbenelux.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
DH Benelux
Source
DH Benelux
Licence
No licence is stated in the files. DH Benelux distributes them for authors preparing a submission.

These are the publisher’s own files. This project starts from DH Benelux’s package for this publication — their manuscript, their dhbenelux.cls, their bibliography style — so what compiles here is what they would have given you.

DH Benelux serves this exact file to DH Benelux Journal. Check DH Benelux’s author pages for the current instructions.

Where this differs from the publisher’s download.

  • Changed: main.tex: a footnote linking another online editor's tutorials removed. Class unchanged (amend-r4.mjs)..

What you get

  • Images/Maxwell-conceptual-model.jpg · 20 KB
  • LICENSE · 18 KB
  • dhbenelux.cls · 10 KB
  • main.tex — the file that is compiled · 3 KB
  • plainnat.bst · 26 KB
  • references.bib · 939 B

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Journals using this template

Source

Images/Maxwell-conceptual-model.jpg — binary, 20 KB

LICENSE — binary, 18 KB

dhbenelux.cls · 10 KB
%%%%%%%%%%%%%%%%%%
% Creators: Wout Dillen & Marijn Koolen
% 
% Version History:
% - v1.0: 2019/09/04
% - v1.1: 2021/07/01
% - v2.0: 2022/05/06
% - v2.1: 2024/10/31 -- Happy Halloween!
% - v2.1.0: 2024/10/31
% - v?
%
% Revision history:
%
% - v1.0 -> v1.1
%       ltfamily is no longer defined, switch renewcommand to newcommand
% - v1.1 -> v2.0
%       automatically archives new releases in Zenodo
%       changelog: https://github.com/DHBenelux/jDHBenelux-author-template/releases/tag/v2.0
% - v2.0 -> v2.1
%       hyperref package moved up to fix hyperxmp issue
%       added lmodern to fix palatino issue with missing font shapes
%       removed fancyhdr which was no longer used, and caused issues with KOMAfont
% - v2.1 -> v2.1.0
%       no changes in the repository, only fixed Zenodo synchronisation
% - v2.1.0 -> v?
%       fixed small typo in revision history, and added v2.1.0 update
%       ...
%%%%%%%%%%%%%%%%%%

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{dhbenelux}[2021/07/01 DH Benelux Journal template]

\LoadClass[onecolumn]{scrartcl}


 
%%%%%%%%%%%%%%%%%%
% classoptions
%%%%%%%%%%%%%%%%%%
\KOMAoptions{
    titlepage=false,
    paper=210mm:297mm,          % A4 dimensions
    twoside=false, 
    twocolumn=false,
    parskip=false,              % space between paragraphs. "full" gives more space; "false" uses indentation instead
    %headings=small,
    draft=false,                % switch to "true" to activate draftmode
}

%%%%%%%%%%%%%%%%%%
% pagesize
%%%%%%%%%%%%%%%%%%
\usepackage[
    top=23mm,
    left=34mm,
    height=237mm,
    width=143mm,
    ]{geometry}

%

%%%%%%%%%%%%%%%%%%
% packages
%%%%%%%%%%%%%%%%%%
\usepackage[x11names,table,dvipsnames]{xcolor}
\usepackage[hyphens]{url}                       % simple URL typesetting
\usepackage{footmisc}                           % Make sure this is loaded before hyperref to avoid breaking footnote hyperlinks    
\usepackage[unicode=true,pdfusetitle,           % fixes hyperref issue
   bookmarks=true, 
   bookmarksnumbered=false, 
   bookmarksopen=false,
   breaklinks=false, 
   pdfborder={0 0 1}, 
   backref=false, 
   colorlinks=false]{hyperref}
\usepackage{booktabs}                           % professional-quality tables
\usepackage{nicefrac}                           % compact symbols for 1/2, etc.
\usepackage{microtype}                          % microtypography
\usepackage{lipsum}                             % lorem ipsum at the ready
\usepackage{graphicx}                           % for figures
\usepackage{footmisc}                           % makes symbol footnotes possible
\usepackage{ragged2e}
%\usepackage{changepage}                        % detect odd/even pages
\usepackage{array}
\usepackage{float}                              % get figures etc. to stay where they are with [H]
%\usepackage{subfigure}                         % \subfigures witin a \begin{figure}
\usepackage[textsize=footnotesize]{todonotes}   % enables \todo's for editors
\usepackage{etoolbox}                           % supplies commands like \AtBeginEnvironment and \atEndEnvironment
\usepackage{ifdraft}                            % switches on proofreading options in the draft mode
\usepackage{tikz}                               % for copyright statement
\usepackage[absolute]{textpos}                  % for copyright statement
\usepackage[                                    % for copyright statement
    type={CC},
    modifier={by},
    version={4.0},
]{doclicense}

%%%%%%%%%%%%%%%%%%
% fix Hyperref (cont.)
%%%%%%%%%%%%%%%%%%
\hypersetup{pdfauthor={Wout Dillen}}            
% requires hyperref package to be defined (see 'Packages' above)
% fix originally found at: https://albertsk.org/2019/10/10/how-to-avoid-warning-messages-from-hyperref-package-in-latex/
% FYI: the pdfauthor name is irrelevant, it just needs to have one. Feel free to change to another name.
% moved the hyperref package up to fix further hyperxmp issue (v2.1 fix)
% // WD


%%%%%%%%%%%%%%%%%%
% encoding
%%%%%%%%%%%%%%%%%%
\usepackage[L7x, T1]{fontenc}           % use 8-bit T1 fonts
\usepackage[utf8]{inputenc}             % allow utf-8 input
% languages
\usepackage[main=english, lithuanian, latin]{babel}
% special characters
\DeclareUnicodeCharacter{2D7}{}         % allow ¡ character
\DeclareUnicodeCharacter{45E}{}         % allow ў character
\DeclareUnicodeCharacter{2032}{}        % allow ′ character
\DeclareUnicodeCharacter{22EE}{}        % allow ⋮ character
\usepackage{textalpha}                  % allows for greek characters in text e.g. \textalpha = α
\usepackage{textcomp}                   % allows \textrightarrow etc.
\usepackage{authblk}                    % for multiple authors and affiliations


%%%%%%%%%%%%%%%%%%
% Fonts
%%%%%%%%%%%%%%%%%%
\usepackage{lmodern}                    % fixes issue when font shapes can't be found in palatino
% Palatino font options
\usepackage{mathpazo}                   % Palatino in LaTeX math
\usepackage{tgpagella}                  % Palatino font
\newcommand{\ltfamily}{\familydefault}  % Makes sure LaTeX keeps using Palatino in Lithuanian 
\addtokomafont{disposition}{\rmfamily}  % Palatino for titles etc.
\setkomafont{descriptionlabel}{         % font for description lists    
    \usekomafont{captionlabel}\bfseries % Palatino bold
}
\setkomafont{caption}{\footnotesize}    % smaller font size for captions

%%%%%%%%%%%%%%%%%%
% Title page
%%%%%%%%%%%%%%%%%%
\date{}                                     % Get rid of date ... there should be a neater way to do this

%set unit to be pagewidth and height, and increase inner margin of box
\setlength{\TPHorizModule}{\paperwidth}\setlength{\TPVertModule}{\paperheight}
\TPMargin{15pt} % Margin from text content

% Below is taken from https://tex.stackexchange.com/questions/55813/how-to-add-copyright-notice-in-a-box-with-borders-at-bottom-of-first-page
% Wout modified it using \usepackage{doclicense} (http://ctan.triasinformatica.nl/macros/latex/contrib/doclicense/doclicense.pdf)
% Define \copyrightstatement command for easier use
\newcommand{\copyrightstatement}{
    \begin{textblock}{0.84}(0.08,0.02)      % tweak here: {box width}(leftposition, rightposition)
         \noindent
         \footnotesize
         \centering
         \doclicenseIcon \the\year.         % alternative: \doclicenseImage[imagewidth=4em] – Wout thinks icons are neater.
         \doclicenseLongText                % includes a link
         
    \end{textblock}
}

\newcommand{\keywords}[1]{\textbf{Keywords:} #1}

%%%%%%%%%%%%%%%%%%
% Bibliography
%%%%%%%%%%%%%%%%%%
\usepackage[sort&compress,semicolon,authoryear]{natbib} % for citations
\bibliographystyle{plainnat}


%%%%%%%%%%%%%%%%%%
% Spacing options
%%%%%%%%%%%%%%%%%%

%\renewcommand{\bigskip}{\vpsace{4em}}
%\renewcommand{\medskip}{\vpsace{2em}}


%%%%%%%%%%%%%%%%%%
% Environments
%%%%%%%%%%%%%%%%%%
\sloppy                         % preferences more space between words over overrunning margins
\lefthyphenmin=3                % suppresses hyphenation after only 1 or 2 characters
% NB: You will need to repeat \lefthyphenmin in the text if you use \selectlanguage    
\AtBeginEnvironment{quote}{\footnotesize\vskip 1em}
\AtEndEnvironment{quote}{\vskip 1em}

\setkomafont{caption}{\footnotesize}

% Motto
\newenvironment{motto}{% 
\setlength{\parindent}{0pt} \small\raggedleft}{%
\vskip 2em
}{}


%%%%%%%%%%%%%%%%%%
% Sectionoptions
%%%%%%%%%%%%%%%%%%
% command for centering section headings
\newcommand{\centerheading}[1]{   
    \hspace*{\fill}#1\hspace*{\fill}
}

% Remove "Part #." from \part titles
% KOMA default: \newcommand*{\partformat}{\partname~\thepart\autodot}
\renewcommand*{\partformat}{} 

% No dots after figure or table numbers
\renewcommand*{\figureformat}{\figurename~\thefigure}
\renewcommand*{\tableformat}{\tablename~\thetable}

% paragraph handling
\setparsizes%
    {1em}% indent
    {0pt}% maximum space between paragraphs
    {0pt plus 1fil}% last line not justified
    

% In the "Authors" section, author names are put in the \paragraph{} headings. To reduce the space after these  headings, the default {-1em} has been changed to {-.4em} below.
\makeatletter
\renewcommand\paragraph{\@startsection {paragraph}{4}{\z@ }{3.25ex \@plus 1ex \@minus .2ex}{-.4em}{\normalfont \normalsize \bfseries }
}
\makeatother

% add the following (uncommented) in environments where you want to count paragraph numbers in the margin
%    \renewcommand*{\paragraphformat}{%
%    \makebox[-4pt][r]{\footnotesize\theparagraph\autodot\enskip}
%    }
%    \renewcommand{\theparagraph}{\arabic{paragraph}}
%    \setcounter{paragraph}{0}
%    \setcounter{secnumdepth}{4}
    
%%%%%%%%%%%%%%%%%%
% footnoteformat
%%%%%%%%%%%%%%%%%%
\renewcommand{\footnoterule}{%
    \kern .5em  % call this kerna
    \hrule height 0.4pt width .2\columnwidth    % the .2 value made the footnote ruler (horizontal line) smaller (was at .4)
    \kern .5em % call this kernb
}
\renewcommand{\footnotelayout}{
    \hspace{1.5em}                              % space between footnote mark and footnote text
}    
\newcommand{\mytodo}[1]{\textcolor{red}{#1}}

%%%%%%%%%%%%%%%%%%
% Proofs
%%%%%%%%%%%%%%%%%%
% Proofs watermark
%\usepackage{draftwatermark}
%\SetWatermarkText{PROOFS}
% Line numbers
%\usepackage[switch, modulo, pagewise]{lineno}
%\linenumbers

\makeatletter
 \newsavebox{\@linebox}
 \savebox{\@linebox}[3em][t]{\parbox[t]{3em}{%
   \@tempcnta\@ne\relax
   \loop{\underline{\scriptsize\the\@tempcnta}}\\
     \advance\@tempcnta by \@ne\ifnum\@tempcnta<48\repeat}}
\makeatother



%%%%%%%%%%%%%%%%%%
% code snippets
%%%%%%%%%%%%%%%%%%
% colours for code notations
\usepackage{listings}       
	\renewcommand\lstlistingname{Listing} 
	\lstset{                    % basic formatting (bash etc.)
	       basicstyle=\ttfamily,
 	       showstringspaces=false,
	       commentstyle=\color{BrickRed},
	       keywordstyle=\color{RoyalBlue}
	}
	\lstdefinelanguage{XML}{     % specific XML formatting overrides
		  basicstyle=\ttfamily,
		  morestring=[s]{"}{"},
		  morecomment=[s]{?}{?},
		  morecomment=[s]{!--}{--},
		  commentstyle=\color{OliveGreen},
		  moredelim=[s][\color{Black}]{>}{<},
		  moredelim=[s][\color{RawSienna}]{\ }{=},
		  stringstyle=\color{RoyalBlue},
 		  identifierstyle=\color{Plum}
	}
    % HOW TO USE? BASH EXAMPLE
    %   \begin{lstlisting}[language=bash]
    %   #some comment
    %   cd Documents
    %   \end{lstlisting}



main.tex — the file that is compiled · 3 KB
\documentclass{dhbenelux}

\usepackage{booktabs} % for toprule, midrule, bottomrule in tables
\usepackage{authblk} % for multiple authors and affiliations
\usepackage{graphicx} % to inlcude graphics with \includegraphics

\author[1]{First Author}
\author[2]{Second Author}
\author[2]{Third Author}

\affil[1]{First author's affiliation}
\affil[2]{Second and third authors' affiliation}

\title{Your paper}

\begin{document}

\maketitle
\copyrightstatement

\begin{abstract}
    \noindent {[Add an abstract here]}
\end{abstract}

\begin{keywords}
    {[Add keywords here]}
\end{keywords}
\section{Introduction}

This template is intended for articles published in the Digital Humanities in the Benelux Journal.\footnote{See \url{http://journal.dhbenelux.org}} Use this to submit the final version of your manuscript to the journal. The template will ensure your article adheres to the style guidelines of the journal. 

\section{Instructions for preparing your manuscript}

If you are unfamiliar with \LaTeX, there are many online resources with documentation and tutorials on how to use \LaTeX. 
%
There are specific instructions for preparing your article for the DH Benelux Journal.\footnote{See \url{http://journal.dhbenelux.org/submission/preparing-the-final-version-of-your-manuscript/}}.


\section{Working with bibtex references}

The DH Benelux Journal uses bibtex for references and citations. You can cite other work using bibtex keys \citet{maxwell2013qualitative}. Your article should end with a section called `References' that includes a link to your bibtex file that contains the bibliographic information of the work you cite (see below). Upon generating the print version with a \LaTeX\ engine, references to the cited works are included. 

\section{Adding figures and tables}

This section has two sub-sections.

\subsection{Adding figures}

\begin{figure}
% Use center to align a figure or table to the middle of the text column
\begin{center}
\includegraphics[width=0.6\linewidth]{Images/Maxwell-conceptual-model.jpg}
\end{center}
\caption{This is where the caption of the figure goes. Remember, figure captions go below the figure.}
\label{fig:model_maxwell}
\end{figure}

If you include figures or tables, use reference keys (e.g. Figure~\ref{fig:model_maxwell}), to create an unambiguous reference from the text to each figure and table, e.g. to Table~\ref{tab:groups}.


\subsection{Adding tables}

\begin{table}[tbp!]
\centering
\caption{Table caption. Captions for tables go above the table, unlike for figures.}
\label{tab:groups}
\begin{tabular}{| l | l | l |}
\toprule
 This   & is the  & header row \\
\midrule
 1 & 2 & this is a cell in the first row \\
 3 & 4 & this is a cell in the second row \\
\bottomrule
\end{tabular}
\end{table}



% The reference list will be generated automatically based on the keys 
% you use in your article and their metadata in the bibtex file
\bibliography{references}

\end{document}
plainnat.bst · 26 KB
%% File: `plainnat.bst'
%% A modification of `plain.bst' for use with natbib package 
%%
%% Copyright 1993-2007 Patrick W Daly
%% Max-Planck-Institut f\"ur Sonnensystemforschung
%% Max-Planck-Str. 2
%% D-37191 Katlenburg-Lindau
%% Germany
%% E-mail: [email protected]
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%%
 % Version and source file information:
 % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)]
 %
 % BibTeX `plainnat' family
 %   version 0.99b for BibTeX versions 0.99a or later,
 %   for LaTeX versions 2.09 and 2e.
 %
 % For use with the `natbib.sty' package; emulates the corresponding
 %   member of the `plain' family, but with author-year citations.
 %
 % With version 6.0 of `natbib.sty', it may also be used for numerical
 %   citations, while retaining the commands \citeauthor, \citefullauthor,
 %   and \citeyear to print the corresponding information.
 %
 % For version 7.0 of `natbib.sty', the KEY field replaces missing
 %   authors/editors, and the date is left blank in \bibitem.
 %
 % Includes field EID for the sequence/citation number of electronic journals
 %  which is used instead of page numbers.
 %
 % Includes fields ISBN and ISSN.
 %
 % Includes field URL for Internet addresses.
 %
 % Includes field DOI for Digital Object Idenfifiers.
 %
 % Works best with the url.sty package of Donald Arseneau.
 %
 % Works with identical authors and year are further sorted by
 %   citation key, to preserve any natural sequence.
 %
ENTRY
  { address
    author
    booktitle
    chapter
    doi
    eid
    edition
    editor
    howpublished
    institution
    isbn
    issn
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    url
    volume
    year
  }
  {}
  { label extra.label sort.label short.list }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "\emph{" swap$ * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.key}
{ empty$
    { key field.or.null }
    { "" }
  if$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
        { ", editors" * }
        { ", editor" * }
      if$
    }
  if$
}

FUNCTION {format.isbn}
{ isbn empty$
    { "" }
    { new.block "ISBN " isbn * }
  if$
}

FUNCTION {format.issn}
{ issn empty$
    { "" }
    { new.block "ISSN " issn * }
  if$
}

FUNCTION {format.url}
{ url empty$
    { "" }
    { new.block "URL \url{" url * "}" * }
  if$
}

FUNCTION {format.doi}
{ doi empty$
    { "" }
    { new.block "\doi{" doi * "}" * }
  if$
}

FUNCTION {format.title}
{ title empty$
    { "" }
    { title "t" change.case$ }
  if$
}

FUNCTION {format.full.names}
{'s :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}" format.name$ 't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " and " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {author.editor.full}
{ author empty$
    { editor empty$
        { "" }
        { editor format.full.names }
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {author.full}
{ author empty$
    { "" }
    { author format.full.names }
  if$
}

FUNCTION {editor.full}
{ editor empty$
    { "" }
    { editor format.full.names }
  if$
}

FUNCTION {make.full.names}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.full
    { type$ "proceedings" =
        'editor.full
        'author.full
      if$
    }
  if$
}

FUNCTION {output.bibitem}
{ newline$
  "\bibitem[" write$
  label write$
  ")" make.full.names duplicate$ short.list =
     { pop$ }
     { * }
   if$
  "]{" * write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {format.date}
{ year duplicate$ empty$
    { "empty year in " cite$ * warning$
       pop$ "" }
    'skip$
  if$
  month empty$
    'skip$
    { month
      " " * swap$ *
    }
  if$
  extra.label *
}

FUNCTION {format.btitle}
{ title emphasize
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { "volume" volume tie.or.space.connect
      series empty$
        'skip$
        { " of " * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}

FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { output.state mid.sentence =
            { "number" }
            { "Number" }
          if$
          number tie.or.space.connect
          series empty$
            { "there's a number but no series in " cite$ * warning$ }
            { " in " * series * }
          if$
        }
      if$
    }
    { "" }
  if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
        { edition "l" change.case$ " edition" * }
        { edition "t" change.case$ " edition" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
        { "pages" pages n.dashify tie.or.space.connect }
        { "page" pages tie.or.space.connect }
      if$
    }
  if$
}

FUNCTION {format.eid}
{ eid empty$
    { "" }
    { "art." eid tie.or.space.connect }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  number empty$
    'skip$
    { "\penalty0 (" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":\penalty0 " * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.vol.num.eid}
{ volume field.or.null
  number empty$
    'skip$
    { "\penalty0 (" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  eid empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.eid }
        { ":\penalty0 " * eid * }
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
        { "chapter" }
        { type "l" change.case$ }
      if$
      chapter tie.or.space.connect
      pages empty$
        'skip$
        { ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
        { "In " booktitle emphasize * }
        { "In " format.editors * ", " * booktitle emphasize * }
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
  key empty$ not and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { "Technical Report" }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
        { "need key or journal for " cite$ * " to crossref " * crossref *
          warning$
          ""
        }
        { "In \emph{" journal * "}" * }
      if$
    }
    { "In " }
  if$
  " \citet{" * crossref * "}" *
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      "In "
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { series empty$
            { "need editor, key, or series for " cite$ * " to crossref " *
              crossref * warning$
              "" *
            }
            { "\emph{" * series * "}" * }
          if$
        }
        'skip$
      if$
    }
    'skip$
  if$
  " \citet{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { booktitle empty$
            { "need editor, key, or booktitle for " cite$ * " to crossref " *
              crossref * warning$
              ""
            }
            { "In \emph{" booktitle * "}" * }
          if$
        }
        { "In " }
      if$
    }
    { "In " }
  if$
  " \citet{" * crossref * "}" *
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      eid empty$
        { format.vol.num.pages output }
        { format.vol.num.eid output }
      if$
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      eid empty$
        { format.pages output }
        { format.eid output }
      if$
    }
  if$
  format.issn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  author format.key output
  new.block
  format.title "title" output.check
  howpublished address new.block.checkb
  howpublished output
  address output
  format.date output
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      new.sentence
      publisher "publisher" output.check
      address output
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.pages output
      address empty$
        { organization publisher new.sentence.checkb
          organization output
          publisher output
          format.date "year" output.check
        }
        { address output.nonnull
          format.date "year" output.check
          new.sentence
          organization output
          publisher output
        }
      if$
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  format.authors output
  author format.key output
  new.block
  format.btitle "title" output.check
  organization address new.block.checkb
  organization output
  address output
  format.edition output
  format.date output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  "Master's thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  author format.key output
  title howpublished new.block.checkb
  format.title output
  howpublished new.block.checka
  howpublished output
  format.date output
  format.issn output
  format.url output
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.btitle "title" output.check
  new.block
  "PhD thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  format.editors output
  editor format.key output
  new.block
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  address output
  format.date "year" output.check
  new.sentence
  organization output
  publisher output
  format.isbn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  format.url output
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  note "note" output.check
  format.date output
  format.url output
  fin.entry
}

FUNCTION {default.type} { misc }


MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}



MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}


READ

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

FUNCTION {format.lab.names}
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { " et~al." * }
            { " and " * s #2 "{vv~}{ll}" format.name$ * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.lab.names }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.key.organization.label}
{ author empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.organization.label}
{ editor empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3 text.prefix$ }
          if$
        }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.organization.label
        { type$ "manual" =
            'author.key.organization.label
            'author.key.label
          if$
        }
      if$
    }
  if$
  'short.list :=
}

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
  short.list key field.or.null = or
     { pop$ "" }
     'skip$
  if$
  *
  'label :=
}

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    {
      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
      nameptr #1 >
        {
          "   "  *
          namesleft #1 = t "others" = and
            { "zzzzz" * }
            { numnames #2 > nameptr #2 = and
                { "zz" * year field.or.null * "   " * }
                'skip$
              if$
              t sortify *
            }
          if$
        }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}

FUNCTION {author.sort}
{ author empty$
    { key empty$
        { "to sort, need author or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
        { key empty$
            { "to sort, need author, editor, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.organization.sort}
{ author empty$
    { organization empty$
        { key empty$
            { "to sort, need author, organization, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { "The " #4 organization chop.word sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {editor.organization.sort}
{ editor empty$
    { organization empty$
        { key empty$
            { "to sort, need editor, organization, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { "The " #4 organization chop.word sortify }
      if$
    }
    { editor sort.format.names }
  if$
}


FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.organization.sort
        { type$ "manual" =
            'author.organization.sort
            'author.sort
          if$
        }
      if$
    }
  if$
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  cite$
  *
  #1 entry.max$ substring$
  'sort.label :=
  sort.label *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

SORT

STRINGS { longest.label last.label next.extra }

INTEGERS { longest.label.width last.extra.num number.label }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'longest.label.width :=
  #0 'last.extra.num :=
  #0 'number.label :=
}

FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}

FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}

EXECUTE {initialize.longest.label}

ITERATE {forward.pass}

REVERSE {reverse.pass}

FUNCTION {bib.sort.order}
{ sort.label  'sort.key$ :=
}

ITERATE {bib.sort.order}

SORT

FUNCTION {begin.bib}
{   preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
  write$ newline$
  "\providecommand{\natexlab}[1]{#1}"
  write$ newline$
  "\providecommand{\url}[1]{\texttt{#1}}"
  write$ newline$
  "\expandafter\ifx\csname urlstyle\endcsname\relax"
  write$ newline$
  "  \providecommand{\doi}[1]{doi: #1}\else"
  write$ newline$
  "  \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
  write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
references.bib · 939 B
@article{fickers2012towards,
  author    =   {Andreas Fickers},
  title     =   {{Towards a New Digital Historicism? Doing History in the Age of Abundance}},
  journal   =   {{View: Journal of European Television and Culture}},
  volume    =   {1},
  number    =   {1},
  year      =   {2012},
  url       =   {http://orbilu.uni.lu/bitstream/10993/7615/1/4-4-1-PB.pdf},
}

@book{maxwell2013qualitative,
  title     =   {Qualitative research design: An interactive approach, 3rd edition},
  author    =   {Maxwell, Joseph A},
  year      =   {2013},
  publisher =   {Sage publications}
} 

@misc{owens2014start,
  title     =   {Where to start? On research questions in the digital humanities},
  author    =   {Owens, T},
  url       =   {http://www.trevorowens.org/2014/08/where-to-start-on-researchquestions-in-the-digital-humanities/},
  howpublished  =   {Blog},
  year      =   {2014},
  note      =   {http://www.trevorowens.org/}
}

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗