\documentclass[8pt,letterpaper,twoside]{extreport}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{kpfonts}

% page size
\usepackage[
	paperheight=8.5in,
	paperwidth=5.5in,
	left=1cm,
	right=1cm,
	top=2cm,
	bottom=2cm]
	{geometry}

% fancy headers
\usepackage{fancyhdr}
\pagestyle{fancy}
 \fancyhf{}
 \fancyhead[RO]{\textit{A Linux Dictionary}}
 \fancyhead[LE]{1\textsuperscript{st} Edition}
 \cfoot{Page \thepage}
\renewcommand{\footrulewidth}{0.5pt}

% multicolumns
\usepackage{multicol}
\setlength{\columnsep}{0.25in}
\setlength{\columnseprule}{0.1pt}

% hanging indents
\usepackage{hanging}

% paragraph spacing in all paragraphs
\usepackage{parskip}
\setlength{\parskip}{2pt}

% Use tab stops when we need to (especially in footnotes)
\usepackage{tabto}

% Include sections and subsections in the TOC
% https://latex-tutorial.com/tutorials/table-of-contents/
\setcounter{tocdepth}{2}

% Turn off section numbering
% https://tex.stackexchange.com/questions/246571/table-of-contents-problem
% Necessary to create table of contents with unnumbered sections
\setcounter{secnumdepth}{0}

% Use a custom title for the TOC
% https://tex.stackexchange.com/questions/35903/formatting-the-title-of-the-toc
\AtBeginDocument{\renewcommand\contentsname{The Contents}}

% Center the TOC title
% https://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf
% https://tex.stackexchange.com/questions/114709/how-do-i-get-the-table-of-contents-list-of-figures-and-list-of-tables-to-have-t
% See Werner's note about the variable 'Z'
\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\hfill\Large\textbf}
\renewcommand{\cftaftertoctitle}{\hfill} 

% Change the space above and below the TOC title
% https://tex.stackexchange.com/questions/46724/remove-vertical-space-before-table-of-contents-title
\setlength{\cftbeforetoctitleskip}{-3em}
\setlength{\cftaftertoctitleskip}{1em}

% Tighten up the typography
\usepackage{microtype}

\author{Kenneth John Odle}

\begin{document}

\tableofcontents

\bigskip

\hrule

\begin{center}
\section{The Introduction}
\end{center}

\begin{multicols}{2}

What follows is a dictionary of various terms related to Linux. It currently resides at\\ \texttt{https://git.kjodle.net/kjodle/linux-dictionary}. Go here to buy a paper copy of this book. 

\tabto{0.3cm} \textbf{Note:} A lot of these terms also relate to Unix. \textit{Caveat emptor!}

\tabto{0.3cm} \textbf{n.b.:} Some of these terms may also refer to Mac OSX or Windows. \textit{Intense shuddering intensifies.}

\end{multicols}

\hrule

\begin{center}
\section{The Abbreviations}
\end{center}

\begin{multicols}{2}

Standard Latin definitions are used extensively throughout this document.

\tabto{0.3cm} \textit{c.f.} -- 

\tabto{0.3cm} \textit{e.g.} -- 

\tabto{0.3cm} \textit{i.e.} -- 

\tabto{0.3cm} \textit{n.b.} -- 

\tabto{0.3cm} \textit{q.v.} -- This is an abbreviation of the Latin phrase \textit{quae vide}, which translates as ``which see'' which denotes a cross reference to another item. Essentially, it means ``see also (this other thing).''

\tabto{0.3cm} \textit{q.q.v.} -- Similar to \textit{q.v.}, this denotes a cross reference to two or more other items. Essentially, it means ``see also (these other things).''

\medskip

Additional modern abbreviations used include:

\tabto{0.3cm} \textbf{RTFM} -- ``Read the effing manual'' 

\tabto{0.3cm} \textbf{tl;dr:} -- ``too long; didn't read''

\tabto{0.3cm} \textbf{YMMV} -- ``Your mileage may vary''



\end{multicols}

\hrule

\begin{center}
\section{The Words}
\end{center}

\bigskip

\begin{multicols}{2}

%\begin{small}

\begin{hangparas}{.3cm}{1}

\begin{centering}
\subsection{A-F}
\end{centering}
% Replace the letters with actual words later

\textbf{ALSA}

\textbf{apt} -- The Advanced Packaging Tool. It is the front end for the Debian package management system. It performs a large number of functions, including downloading of packages, resolving dependencies, and installation of Debian packages (which have a .deb file extention).

\textbf{apt-get}

\textbf{Arch Linux}

\textbf{bash}

\textbf{bin}

\textbf{binary}

\textbf{boot}

\textbf{build}

\textbf{chmod}

\textbf{chown}

\textbf{Cinnamon}

\textbf{clear}

\textbf{CLI} -- The Command Line Interface, that is, a text-based interface, which is the opposite of a GUI or graphical user interface.

\textbf{codec} -- A piece of software that encodes and decodes (i.e., plays) digital data, typically audio and video streams.

\textbf{command binary}

\textbf{command line}

\textbf{compile}

\textbf{console}

\textbf{cowsay}

\textbf{cp}

\textbf{CUPS} -- The Common Unix Print Server. It is Ubuntu's print server, which is a dream when it works properly and a nightmare when it doesn't.

\textbf{daemon} -- A process that runs in the background. These perform a large number of tasks, such as writing to system logs or monitoring your network.

\textbf{Debian}

\textbf{dependency}

\textbf{dev}

\textbf{df}

\textbf{diff}

\textbf{distro} -- Short for ``distribution,'' this refers to a specific version of Linux that is customized with its own software, options, and look and feel. These include things like \textbf{Ubuntu}, \textbf{Debian}, and \textbf{Fedora}. \textit{c.f.} \textbf{flavor}.

\textbf{dpkg}

\textbf{du}

\textbf{dvipdf}

\textbf{echo}

\textbf{Elementary OS}

\textbf{etc}

\textbf{Fedora}

\textbf{find}

\textbf{fsck}

\begin{centering}
\subsection{G-M}
\end{centering}

\textbf{Ghost Script}

\textbf{git}

\textbf{GNOME}

\textbf{grep}

\textbf{groff}

\textbf{GUI}

\textbf{head}

\textbf{history}

\textbf{home}

\textbf{hostname}

\textbf{info}

\textbf{init}

\textbf{jobs}

\textbf{KDE} -- A graphical environment used by the openSuse Linux distro as well as others.

\textbf{kernel}

\textbf{kernel module}

\textbf{kill}

\textbf{Kubuntu} -- A GUI for Linux, based on Ubuntu. It uses KDE.

\textbf{latex}

\textbf{lib}

\textbf{Linux Mint}

\textbf{locate} -- command

\textbf{ls} 

\textbf{man} -- A command-line utility to display the ``man'' (i.e., manual) page for a particular command. It has many parameters. Try \texttt{man man} to start. \\ \tabto{0.3cm}A lot of people don't find the \texttt{man} command very helpful, as it generally contains no examples. If you are in this camp, \textit{q.v.} both the ``tldr'' and ``info'' entries.

\textbf{media}

\textbf{mkdir}

\textbf{mnt}

\textbf{mv}

\begin{centering}
\subsection{N-S}
\end{centering}

\textbf{opt}

\textbf{package}

\textbf{pandoc}

\textbf{pdftk}

\textbf{ping}

\textbf{Plasma}

\textbf{proc}

\textbf{Pulse}

\textbf{Puppy Linux}

\textbf{pwd} -- Short for ``print working directory,'' this command displays the path you are on from your home directory.

\textbf{rm}

\textbf{rpm}

\textbf{root}

\textbf{run}

\textbf{SANE}

\textbf{sbin}

\textbf{shell}

\textbf{srv}

\textbf{sudo}

\textbf{sys}

\begin{centering}
\subsection{T-Z}
\end{centering}

\textbf{tail}

\textbf{tar}

\textbf{terminal}

\textbf{tex}

\textbf{tldr}

\textbf{tmp}

\textbf{top}

\textbf{touch}

\textbf{troff}

\textbf{Ubuntu}

\textbf{uname}

\textbf{Unity} -- Ubuntu's desktop environment, \textit{i.e.}, the name for Ubuntu's graphical interface. A ``shell'' for GNOME.

\textbf{unix principle}

\textbf{unzip}

\textbf{useradd}

\textbf{userdel}

\textbf{usr}

\textbf{var}

\textbf{wget}

\textbf{X}, \textbf{X-11}, \textbf{X-Windows} -- A windowing system for bitmap displays which is common on Unix-like operating systems. It handles the low-level tasks for the graphical interface.

\textbf{Xfce}

\textbf{zip}

\end{hangparas}

%\end{small}

\end{multicols}

\hrule

\begin{center}
\section{The Sources}
\end{center}


\end{document}