summaryrefslogtreecommitdiff
path: root/doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc.tex')
-rwxr-xr-xdoc.tex127
1 files changed, 127 insertions, 0 deletions
diff --git a/doc.tex b/doc.tex
new file mode 100755
index 0000000..14b63d0
--- /dev/null
+++ b/doc.tex
@@ -0,0 +1,127 @@
+\documentclass{microstructure}
+
+\author{DistressNetwork°}
+
+\begin{document}
+
+\section{Microstructure Documentation}
+
+\hr
+
+\mono{microstructure} is a document class for the XeLaTeX typesetting software system. It aims to provide a well-defined and consistent visual and typographical style, as a print-oriented adaptation of the graphical style of the DistressNetwork° website.\footnote{DistressNetwork. ``Style Template.'' \url{https://distress.network/meta/styletest}.} This document describes its defined features, usage, and annotated implementation.
+
+\subsection{Class Options}
+\begin{description} \addfontfeature{Fractions=On}
+ \item[debug] Prints a 1/2-unit (1/12 in) square grid on every page of output, for monitoring the positioning of document elements.
+ \item[fleqn] Aligns math block elements to the left, as in the \mono{article} class.
+ \item[nohf] Suppresses page header and footer generation.
+\end{description}
+
+\subsection{Commands}
+
+\begin{itemize}
+ \item Preamble: \mono{\textbackslash author\{\}} defines the author name in the page header.
+\end{itemize}
+
+\subsubsection{Inline Elements}
+\begin{table}{x x}
+\bold{Command} & \bold{Output/Description} \\
+\cline{1-2}
+\mono{\textbackslash bold\{\}} & \bold{Bold Weight} \\
+\mono{\textbackslash italic\{\}} & \italic{Italic Style} \\
+\mono{\textbackslash sout\{\}} & \sout{Strikethrough} \\
+\mono{\textbackslash mono\{\}} & \mono{Monospace Font} \\
+\mono{\textbackslash inmath\{\}} & \inmath{\mathrm{Inline\ Math}} \\
+\mono{\textbackslash link\{\}\{\}} & \link{https://en.wikipedia.org/wiki/Hyperlink}{Link} \\
+\mono{\textbackslash footnote\{\}} & Footnote Reference \\
+\mono{\textbackslash case} & Enable Case-Sensitive Forms
+\end{table}
+
+\newpage
+
+\subsubsection{Block Elements}
+\begin{table}{x x}
+\bold{Command} & \bold{Output/Description} \\
+\cline{1-2}
+\mono{\textbackslash section\{\}} & Header Level One \\
+\mono{\textbackslash subsection\{\}} & Header Level Two \\
+\mono{\textbackslash subsubsection\{\}} & Header Level Three \\
+\mono{\textbackslash hr} & Horizontal Rule \\
+\mono{\textbackslash inputblock\{\}} & Code block from external file \\
+\mono{\textbackslash inputblockenum\{\}} & Code block from external file with line numbering \\
+\mono{\textbackslash reset} & Reset baseline grid alignment
+\end{table}
+
+\reset
+\subsection{Environments}
+\begin{description}[labelwidth=\dimexpr1.5in-\labelsep]
+ \item[itemize] Unordered list (three levels)
+ \item[enumerate] Ordered list (three levels)
+ \item[description] Description list (arbitrary levels)
+ \item[codeblock] Verbatim code block
+ \item[codeblockenum] Verbatim code block with line numbering
+ \item[mathblock] Math mode alignment block, similar to \mono{amsmath}'s \mono{align*}
+\end{description}
+
+\subsubsection{Tables}
+The \mono{table} environment's column specification parameter has two defined symbols: `\mono{x}' for left-aligned paragraphs, and `\mono{X}' for justified paragraphs. Horizontal separators should be specified using \mono{\textbackslash cline\{\}} rather than \mono{\textbackslash hline}.
+
+\subsubsection{Figures}
+The \mono{figure} environment may contain:
+\begin{itemize}
+ \item One or more instances of \mono{\textbackslash includegraphics\{\}},
+ \item Zero or more instances of \mono{\textbackslash caption\{\}}.
+\end{itemize}
+
+\newpage
+
+\section{Usage Notes}
+
+\reset
+\subsection{Dependencies}
+
+\begin{itemize}
+ \item The XeLaTeX typesetting software system.
+ \item The following typefaces:
+ \begin{itemize}
+ \item Neue Haas Grotesk Display
+ \item Neue Haas Grotesk Text
+ \item JetBrains Mono
+ \end{itemize}
+ \item The following packages which are included in the \mono{texlive} distribution:
+ \begin{itemize}
+ \item \mono{amsmath, amssymb, datetime2, enumitem, eso-pic, fancyhdr,\\
+ footmisc, geometry, graphicx, hyperref, lastpage, listings,\\
+ mathspec, microtype, realscripts, tabularx, tikz, ulem}
+ \end{itemize}
+ \item The following packages which are not included in the \mono{texlive} distribution:
+ \begin{itemize}
+ \item \mono{returntogrid}
+ \end{itemize}
+\end{itemize}
+
+\subsection{Grid Alignment}
+
+\addfontfeature{Fractions=On} The positioning and spacing of all document elements are strictly defined in terms of a length of 1/6 of an inch, referred to internally as the \italic{unit}. Document elements are to remain aligned with an implicit 1/2-unit grid spanning the entire page. In order to ensure this alignment is preserved surrounding elements of variable height, it is possible to issue a \mono{\textbackslash reset} command immediately preceding paragraphs or block elements to be realigned. It is recommended to temporarily enable the \mono{debug} class option in order to verify consistent alignment during the document preparation process.
+
+\subsection{Caveats}
+
+\begin{itemize}
+ \item Correct realignment of document elements via the \mono{\textbackslash reset} command may require multiple recompilations.
+ \item Correct typesetting of page numbers and the debug grid may require multiple recompilations.
+ \item Grid alignments of tables are not well defined and must be corrected manually.
+ \item Grid alignments of the uppermost element of each page are as of yet unable to be corrected.
+\end{itemize}
+
+\newpage
+
+\section{Implementation}
+
+\reset (In progress.)
+
+%\inputblockenum{microstructure.cls}[firstline=x,lastline=x]
+
+\end{document}
+
+
+