A Simple Form Class (Gathering Environment Contents)
First the code for the class file sample-form.cls:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sample-form}[2014/11/03]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass[a4paper,12pt]{article}
\RequirePackage{environ}
\newcommand*{\form@fillin}[2]{%
\makebox[#1][l]{\rlap{#2}\hrulefill}%
}
\newcommand*{\form@layout@fillin}[3]{#3: \form@fillin{#1}{#2}}
\newcommand*\@name{}
\newcommand*{\name}[1]{%
\renewcommand*{\@name}{#1}%
}
\newcommand*\@projectdescription{}
\newcommand{\projectdescription}[1]{%
\long\gdef\@projectdescription{#1}%
}
\newenvironment{ProjectDescription}{\Collect@Body\projectdescription}{}
\newcommand{\makeform}{%
\section{Applicant Details}
\form@layout@fillin{8em}{\@name}{Name}
\section{Project Description}
\@projectdescription
}
\endinput
Now the sample document:
\documentclass{sample-form}
\name{Mabel Canary}
\begin{ProjectDescription}
This project will be very interesting.
This is another paragraph.
\end{ProjectDescription}
\begin{document}
\makeform
\end{document}
Download sample-form.cls and sample-project-form.tex or sample-project-form.pdf.
