% Copyright (c) 2015-2019 Robert Ryszard Paciorek % % MIT License % % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the "Software"), to deal % in the Software without restriction, including without limitation the rights % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell % copies of the Software, and to permit persons to whom the Software is % furnished to do so, subject to the following conditions: % % The above copyright notice and this permission notice shall be included in all % copies or substantial portions of the Software. % % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR % IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, % FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE % AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER % LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE % SOFTWARE. \documentclass[ fontSize=10pt, ]{pdfArticle} \title {Features of \texttt{pdfArticle} document class} \author{Robert Ryszard Paciorek } \date {2019-05-05} \makeatletter\hypersetup{ pdftitle = {\@title}, pdfauthor = {\@author} }\makeatother \setstretch{1.0} \setlength{\parindent}{0pt} \setlength{\parskip}{2pt} \usepackage{titling} \renewcommand{\maketitlehooka}{\vspace{-44pt}} \renewcommand{\maketitlehookb}{\vspace{-14pt}} \renewcommand{\maketitlehookd}{\vspace{-13pt}} \renewcommand{\maketitlehookd}{\vspace{-12pt}} \usepackage{hologo} \newcommand{\pkgLink}[1]{\texttt{\href{https://ctan.org/pkg/#1}{#1}}} \begin{document} \maketitle\thispagestyle{empty} Document class \texttt{pdfArticle} is simple document class dedicated for creating pdf documents with \hologo{LuaLaTeX}. This class: \begin{itemize} \item Use \texttt{extarticle} (from \pkgLink{extsizes}) as base document class (for support wide range of base font sizes). \item Require and configure \pkgLink{fontspec} package, that enable support for Unicode Open Type fonts. Configure default document \textrm{sherif}, \textsf{sans} and \texttt{mono} fonts via \texttt{fontspec} according to class options. By default use \textit{Latin Modern} fonts with support for \textsc{small caps} in sherif and mono fonts. \item Require and configure \pkgLink{graphicx} and \pkgLink{graphbox} packages (for including graphics). Set file extensions for search graphics files to \texttt{.mp, .pdf, .png, .jpg, .jpeg} (in this order -- first \hologo{METAPOST}, last JPEG) and default image resolution to \texttt{imgResolution} class atribute (default 150). \item Require \pkgLink{xcolor} (for foreground and background colors) and \pkgLink{fifo-stack} packages and configure colours stack (you can use it with \Verb$\FSPush{colors}$, \Verb$\FSPop{colors}$ and \Verb$\FSTop{colors}$ commands). \item Require \pkgLink{hyperref} package (for internal and external links in pdfs) and configure color external (url) link as blue and internal (\Verb$\ref{}$) links as color from top of colours stack. More setting (eg. set PDF title, author, etc) can be do via \Verb$\hypersetup{}$ command. \item Require \pkgLink{geometry} package and configure page gemetry (paper size, orientation and marings) according to class options. By default use portrait A4 paper. \item Provide \Verb$\forceNewPageGeometry$ commad for enforce new page geometry (like \Verb$\newgeometry$, but allow change paper size too). \item Require \pkgLink{fancyvrb} and \pkgLink{fvextra} (for good verbatim enviromet with line breaking, line numbering, titles, frames, etc). Redefine standard \Verb$verbatim$ enviromet and \Verb$\verb$ commad to using fancyvrb. Allow break long lines on spaces, \Verb$/$ or \Verb$-$, set $\hookrightarrow$ as post break marker. \item Require \pkgLink{ulem}, \pkgLink{contour} and \pkgLink{shadowtext} (for text decorations). \item Is incompatible with \texttt{sout} package, because define own \Verb$\ul[color]{text}$, \Verb$\st[color]{text}$ and \Verb$\hl[color]{text}$ commands (based on \texttt{ulem} package) for \ul[blue]{underline}, \st[red]{strike out} and \hl[yellow]{highlight} text with selected color. \item Require \pkgLink{enumitem} (for better enumerate, itemize and description environments). \item Redefine \Verb$\alph$ and \Verb$\Alph$ with \pkgLink{alphalph} package (for converting big numbers to letters as \Verb[breaklines=true]$a, b, ..., x, y, z, aa, ab, ac, ..., az, ba, ..., zz, aaa, ...$). \item Require \pkgLink{pbox} and \pkgLink{varwidth} (for vertical box with automatic minimal width). \item Require \pkgLink{overpic} (for putting \hologo{LaTeXTeX} stuff on images). \item Require \pkgLink{wrapfig} (for wraping text around images). \item Require \pkgLink{array} and \pkgLink{dcolumn} (for useful extentions for tables). \item Require \pkgLink{tabto} (for tabbing to fixed positions). \item Require \pkgLink{ragged2e} (for \Verb$justify$ environment and configurable \Verb$Center$, \Verb$FlushLeft$, \Verb$FlushRight$). \item Require \pkgLink{changepage} (for changes margins via \Verb$adjustwidth$ environment). \item Require \pkgLink{setspace} (for setting line stretch -- global and via \Verb$spacing$ environment). \item Require \pkgLink{amsmath} and \pkgLink{unicode-math} (for better math with Unicode Open Type fonts). \item Require \pkgLink{adjustbox} (for scaling, rotating, clipping, etc boxes). \item Only when \Verb$extra$ option was given require: \pkgLink{minted} (code highlight), \pkgLink{tcolorbox} (nice framed boxes). \end{itemize} \clearpage Class can be simple used by: \Verb$\documentclass{pdfArticle}$. Below is example of class usage with all avalible options, all options in this example are set to default values: \begin{Verbatim}[xleftmargin=5mm] \documentclass[ fontSize=12pt, mainFont={Latin Modern Roman}, mainFontFeat={ UprightFeatures = { SmallCapsFont={ lmromancaps10regular } }, ItalicFeatures = { SmallCapsFont={ lmromancaps10oblique } }, SlantedFont = lmromanslant10regular, BoldSlantedFont = lmromanslant10bold, Ligatures=TeX }, sansFont={Latin Modern Sans}, sansFontFeat={ Ligatures=TeX }, monoFont={Latin Modern Mono}, monoFontFeat={ UprightFeatures = { SmallCapsFont={ lmmonocaps10regular } }, ItalicFont = lmmono10italic, ItalicFeatures = { SmallCapsFont={ lmmonocaps10oblique } }, SlantedFont = lmmonoslant10regular }, paperSize=a4paper, paperMode=portrait, twoside=true, tmargin=2.2cm, bmargin=2.5cm, lmargin=2.2cm, rmargin=2.2cm, imgResolution=150, extra=false ]{pdfArticle} \end{Verbatim} It's also possible load some packages (or do other things) right before load \texttt{hyperref} package (after load all other packages) via \Verb$\pdfArticlePreHyperRef$: \begin{Verbatim}[xleftmargin=5mm] \newcommand\pdfArticlePreHyperRef{ % stuff to do before load hyperref } \documentclass{pdfArticle} \end{Verbatim} \end{document}