% Copyright 2026 Sumukh Prasad
% 
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
% 
%    http://www.apache.org/licenses/LICENSE-2.0
% 
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.

\documentclass[10pt]{article}
\usepackage[a4paper]{geometry}

\title{\texttt{curriculum-vitae}: Lightweight class for CVs}
\author{Sumukh Prasad}
\date{v3.0, 2026-10-30}

\begin{document}
\maketitle

\tableofcontents

\vspace{1cm}

\section{Overview}
\texttt{curriculum-vitae} provides a flexible and customizable
document class for creating professional curriculum vitae.

\section{Usage}

To use the class, include this in the document preamble:

\begin{verbatim}
\documentclass{curriculum-vitae}
\end{verbatim}

\subsection{Options}
You can configure the document using the \verb|\cvsetup| command.

\begin{verbatim}
\cvsetup{
  layout = <side-by-side, stacked, stacked-compact>,
  header = <default, compact, centered, original>,
  headings-font = <sans, serif, tt>,
  body-font = <sans, serif, tt>,
  accent-color = <HTML Color>,
  heading-color = <HTML Color>,
  body-color = <HTML Color>
}
\end{verbatim}


\paragraph{Layout}

The \verb|layout| option determines how CV sections are
displayed.

\begin{itemize}
    \item \verb|side-by-side|: places section headings
    alongside their corresponding content.

    \item \verb|stacked|: places section headings above
    their content, using a larger heading size.

    \item \textit{(default)} \verb|stacked-compact|: uses a more compact
    stacked layout with smaller headings and reduced
    vertical spacing.
\end{itemize}

\paragraph{Header}

The \verb|header| option selects the appearance of the
document header, which is generated by \verb|\maketitle|.

\begin{itemize}
    \item \verb|default|: a traditional header with the
    contact information right-aligned above the name.

    \item \textit{(default)} \verb|compact|: places the name and qualifications
    on the left and contact information on the right.

    \item \verb|centered|: centres the name, qualifications,
    and contact information.

    \item \verb|original|: uses the original centred header
    style, including the document description.
\end{itemize}

\paragraph{Typography}

The \verb|headings-font| and \verb|body-font| options control 
the typeface used for section headings and body text.

Both options accept the following values:

\begin{itemize}
    \item \verb|sans|: sans-serif typeface.
    \item \verb|serif|: serif typeface.
    \item \verb|tt|: monospaced typeface.
\end{itemize}

The default heading font is \verb|sans|, and the default
body font is \verb|serif|.

\paragraph{Colours}

The \verb|accent-color|, \verb|heading-color|, and
\verb|body-color| options configure the document's color
scheme. Each accepts a six-character hexadecimal RGB color
code without the leading \verb|#|.

\begin{itemize}
    \item \verb|accent-color|: controls accent elements,
    including section headings and horizontal rules.

    \item \verb|heading-color|: controls the name and
    description in the document header.

    \item \verb|body-color|: controls the color of the
    document's body text.
\end{itemize}

All three colors default to \verb|AA0000|,
\verb|AA0000|, and \verb|000000|, respectively.

\section{Commands}

The class provides several commands for specifying
personal information displayed in the document header.

\begin{itemize}
    \item \verb|\name{...}|:\\
    Sets the author's name.

    \item \verb|\desc{...}|:\\
    Sets a short description displayed by the \texttt{original}
    header style.

    \item \verb|\qualification{...}|:\\
    Specifies a qualification or professional designation
    displayed alongside the author's name.

    \item \verb|\email{...}|:\\
    Sets the email address.

    \item \verb|\phone{...}|:\\
    Sets the telephone number.

    \item \verb|\webpage{...}|:\\
    Sets a website or personal webpage address.

    \item \verb|\mailingaddr{...}|:\\
    Specifies the mailing address, displayed beneath
    the header.
\end{itemize}

These commands are optional. Information that has not
been specified is omitted from the header.

The standard \verb|\maketitle| command is redefined to
generate the CV header according to the selected
\verb|header| option.

\section{Environments}

\subsection{\texttt{cvsection}}

The \texttt{cvsection} environment creates a CV section.
It takes one optional argument containing the section
heading.

\begin{verbatim}
\begin{cvsection}[Education]
    ...
\end{cvsection}
\end{verbatim}

The section's appearance is determined by the
\verb|layout| option. The environment automatically
handles the associated heading formatting and spacing.

For example:

\begin{verbatim}
\begin{cvsection}[Experience]
    \textbf{Software Engineer}

    Company Name \hfill 2023--Present

    Description of responsibilities and achievements.
\end{cvsection}
\end{verbatim}

\subsection{\texttt{detail}}

The \texttt{detail} environment provides a compact
format for individual entries.

It accepts three arguments:

\begin{itemize}
    \item An optional first argument containing a bold
    entry title.
    \item A mandatory second argument, typically an
    institution or organisation.
    \item A mandatory third argument, typically a date
    or date range.
\end{itemize}

For example:

\begin{verbatim}
\begin{detail}[B.Sc. Computer Science]
    University Name
    {2020--2023}
\end{detail}
\end{verbatim}

\section{Example}

See the included example \TeX\, and PDF files for a small working example.


\end{document}