1

I am using titling package and authblk to manage multiple articles in a single file. Below is the code for example

\documentclass[11pt,openany]{article}
\usepackage{amsmath,amsfonts,amsthm,dsfont,amssymb,csquotes}
\usepackage{titling}

\usepackage[blocks]{authblk}


\usepackage{geometry}
\geometry{
    headheight=4ex,
    includehead,
    includefoot
}

\geometry{
    %   paper=a4paper, % Change to letterpaper for US letter
    paperheight=25cm,paperwidth=18cm,
    inner=1cm, % Inner margin
    outer=2cm, % Outer margin
    bindingoffset=1cm, % Binding offset
    top=1cm, % Top margin
    bottom=1cm, % Bottom margin
    %   showframe,% show how the type block is set on the page
}


\makeatletter
\newcommand\receivedon[1]{\renewcommand\@receivedon{#1}}
\newcommand\@receivedon{}
\newcommand\acceptedon[1]{\renewcommand\@acceptedon{\underline{\hspace{1.7cm}}#1}}
\newcommand\@acceptedon{}
\newcommand\uniqueid[1]{\renewcommand\@uniqueid{\text{#1}}}
\newcommand\@uniqueid{}
\newcommand\category[1]{\renewcommand\@category{\text{#1}}}
\newcommand\@category{}
\setlength{\droptitle}{-5cm}

\def\@maketitle{%
    \begin{minipage}{.5\textwidth}
        %       \raggedright
        $\begin{array}{lcl}
        \text{Unique Id} & :& \@uniqueid  \\
        \text{Category} & : & \@category  \\
        \end{array} $
    \end{minipage}
    \begin{minipage}{.5\textwidth}
        \raggedleft
        Received on : \@receivedon \\
        Accepted on : \@acceptedon
    \end{minipage}
    \vskip 1.5em%
    \begin{center}%
        \let \footnote \thanks
        {\LARGE \@title \par}%
        \vskip 1.5em%
        {\large
            \lineskip .5em%
            \begin{tabular}[t]{c}%
                \@author 
            \end{tabular}\par}%
        \vskip 1em%
        %{\large \@date}%
    \end{center}%
    \par    
    \vskip 1.5em}
\makeatother


\begin{document}

%%%%%%%---------First Article-------------

\title{First Article}


\author[]{Author A}

\affil[]{Affiliation of Author A}

\uniqueid {17ICLAA034} \category{Invited Speaker }
\receivedon{26.09.2017}  \acceptedon{}


\maketitle


\begin{abstract}
    Abstract goes here...
 \end{abstract}


%%%%%%%---------Second Article-------------

\title{Second Article}

\author[]{\underline{Author B}}

\affil[]{Affiliation of author B. }

\uniqueid {17ICLAA087} \category{Invited Speaker }
\receivedon{03.10.2017}  \acceptedon{}

\maketitle

\begin{abstract}
    Abstract goes here...
\end{abstract}




\end{document}

What I want?

  • Need to reset the authors list for each article.
  • Have to remove the pagebreaks.
  • Need to add the title and authors in the table of contents.
  • Need to add the authors in the header.

Current output:

enter image description here

PS: The solution given in this question was not working for me.

Thanks in advance.

14
  • I'll have a look later. But to repeat myself: you are not using the package.
    – Johannes_B
    Commented Nov 14, 2017 at 8:45
  • oh!!!! I will try to resolve myself and if i succeed i will surely add as an answer or comment here...@Johannes_B
    – David
    Commented Nov 14, 2017 at 9:23
  • Are you relyig on the features of the authblk package?
    – Johannes_B
    Commented Nov 15, 2017 at 17:36
  • authblk is an aged package with no updates for more than a decade. This doesn't mean it is deprecated or outdated, but perhaps there are alternatives? Besides that, openany is no useful option for article and \def\@authors{} will reset the author list
    – user31729
    Commented Nov 15, 2017 at 22:17
  • @Johannes_B Not really. I am looking for a solution which solves my issue. Any solution is fine.
    – David
    Commented Nov 16, 2017 at 6:00

1 Answer 1

3

I focused on resetting the author list of authblk package.

The list of authors is stored in \AB@authors which can be reset manually by defining it to be empty before each new title of an article is used.

Another way is to grab the \author definition, use a \RenewDocumentCommand and check whether the number of authors is 0, then redefine \AB@authors, then use the original \author inside.

\@maketitle sets the author and affil counter values to 0 at its end.

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{dsfont}
\usepackage{amssymb}
\usepackage{csquotes}
\usepackage{titling}
\usepackage{letltxmacro}
\usepackage{xparse}
\usepackage[blocks]{authblk}



\usepackage{geometry}
\geometry{
    headheight=4ex,
    includehead,
    includefoot
}

\geometry{
    %   paper=a4paper, % Change to letterpaper for US letter
    paperheight=25cm,paperwidth=18cm,
    inner=1cm, % Inner margin
    outer=2cm, % Outer margin
    bindingoffset=1cm, % Binding offset
    top=1cm, % Top margin
    bottom=1cm, % Bottom margin
    %   showframe,% show how the type block is set on the page
}


\makeatletter
\LetLtxMacro\@uthorfrom@uthblk\author

\RenewDocumentCommand{\author}{+o+m}{%
  \ifnum0=\value{authors}%
  \def\AB@authors{}%
  \fi
  \IfValueTF{#1}{%
    \@uthorfrom@uthblk[#1]{#2}%
  }{%   
    \@uthorfrom@uthblk{#2}%
  }%
}

\newcommand\receivedon[1]{\renewcommand\@receivedon{#1}}
\newcommand\@receivedon{}
\newcommand\acceptedon[1]{\renewcommand\@acceptedon{\underline{\hspace{1.7cm}}#1}}
\newcommand\@acceptedon{}
\newcommand\uniqueid[1]{\renewcommand\@uniqueid{\text{#1}}}
\newcommand\@uniqueid{}
\newcommand\category[1]{\renewcommand\@category{\text{#1}}}
\newcommand\@category{}
\setlength{\droptitle}{-5cm}



\def\@maketitle{%
  \begin{minipage}{.5\textwidth}
    % \raggedright
    $\begin{array}{lcl}
      \text{Unique Id} & :& \@uniqueid  \\
      \text{Category} & : & \@category  \\
    \end{array} $
  \end{minipage}
  \begin{minipage}{.5\textwidth}
        \raggedleft
        Received on : \@receivedon \\
        Accepted on : \@acceptedon
      \end{minipage}
    \vskip 1.5em%
    \begin{center}%
      \let \footnote \thanks
      {\LARGE \@title \par}%
      \vskip 1.5em%
      {\large
        \lineskip .5em%
        \begin{tabular}[t]{c}%
          \@author% 
        \end{tabular}\par}%
        \vskip 1em%
        % {\large \@date}%
      \end{center}%
      \par    
      \vskip 1.5em%
      % reset counters for possible next \author macro
      \setcounter{authors}{0}%
      \setcounter{affil}{0}%
    }
\makeatother


\begin{document}

%%%%%%%---------First Article-------------

\title{First Article}


\author[]{Author A}

\affil[]{Affiliation of Author A}

\uniqueid {17ICLAA034} \category{Invited Speaker }
\receivedon{26.09.2017}  \acceptedon{}


\maketitle


\begin{abstract}
  Abstract goes here...
\end{abstract}


%%%%%%%---------Second Article-------------




\title{Second Article}

\author[]{\underline{Author B}}

\affil[]{Affiliation of author B. }

\uniqueid {17ICLAA087} \category{Invited Speaker }
\receivedon{03.10.2017}  \acceptedon{}

\makeatletter
\makeatother
\maketitle

\begin{abstract}
    Abstract goes here...
\end{abstract}




\end{document}

You must log in to answer this question.

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