\documentclass{amsart}

\usepackage[a4paper, margin=3cm]{geometry}
\usepackage[english]{babel}
\usepackage[foot]{amsaddr}
\usepackage[onehalfspacing]{setspace}
\usepackage[pdfusetitle, colorlinks=true, linkcolor=blue, urlcolor=blue]{hyperref}
\usepackage{adjustbox}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{array}
\usepackage{booktabs}
\usepackage{cleveref}
\usepackage{csquotes}
\usepackage{caption}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{parskip}
\usepackage{xcolor}
\usepackage{xurl}
\usepackage{csthm}

\newcommand{\cmnd}[1]{\texttt{\textbackslash#1}}
\newcommand{\env}[1]{\texttt{#1}}
\newcommand{\opt}[1]{\texttt{#1}}
\newcommand{\pkg}[1]{\textsf{#1}}
\setcounter{tocdepth}{1}
\setlist{nosep,noitemsep}

\title[The \pkg{csthm} Package]{The \pkg{csthm} Package\\[1ex]\large A Comprehensive Set of Theorem Environments for Computer Science}
\author{Agni Datta}
\address[Version 1.3]{January 16, 2025}

\begin{document}

\begin{abstract}
	The \pkg{csthm} package provides a comprehensive collection of theorem-like environments specifically designed for use in computer science documentation. It features a range of customizable theorem styles, distinct visual markers for different types of content, integrated support for cross-referencing, and extensive customization options. This documentation provides detailed examples, usage guidelines, and a complete overview of all available environments and features in the package.
\end{abstract}

\maketitle

\tableofcontents

\section{Package Overview}

The \pkg{csthm} package offers a robust and flexible solution for typesetting theorems, definitions, proofs, and related content typically found in computer science literature. The package provides a variety of specialized environments, each with distinct visual markers and formatting styles suited to different types of content.

Key features include:
\begin{itemize}
	\item Distinct visual styles for different content types, including theorems, definitions, proofs, and more.
	\item Customizable theorem headers and QED symbols.
	\item Optional integration with the \pkg{cleveref} package for enhanced cross-referencing.
	\item Specialized environments tailored for theoretical computer science content.
	\item Support for both numbered and unnumbered variants of all environments.
\end{itemize}

\subsection{Installation}

The \pkg{csthm} package can be installed via your TeX distribution's package manager or downloaded directly from CTAN:
\begin{itemize}
	\item \url{https://ctan.org/pkg/csthm}
\end{itemize}

\subsection{Basic Usage}

To use the package, simply include it in the preamble of your document:
\begin{verbatim}
\usepackage{csthm}
\end{verbatim}

If you require integration with the \pkg{cleveref} package for enhanced cross-referencing, load the package as follows:
\begin{verbatim}
\usepackage[cleveref]{csthm}
\end{verbatim}

\section{Environments}

The \pkg{csthm} package provides a wide range of theorem-like environments. Each environment is associated with a distinct visual style, marked by a specific bullet symbol. The package supports both numbered and unnumbered versions of each environment, with the unnumbered variants achieved by appending an asterisk (\texttt{*}) to the environment name (e.g., \texttt{theorem*}).

\subsection{Complete List of Environments}

\Cref{tab:environments} outlines the available environments in the \pkg{csthm} package, including their respective styles and descriptions.

\begin{table}[!ht]
	\centering
	\begin{adjustbox}{valign=c, width=\textwidth}
		\begin{tabular}{>{\ttfamily}l>{\ttfamily}ll}
			\toprule
			\normalfont\textbf{Environment} & \normalfont\textbf{Style} & \textbf{Description}                          \\
			\midrule
			\multicolumn{3}{l}{\textbf{Mathematical Theorems} --- Marked with black triangle ($\blacktriangleright$)} \\
			\cmidrule{1-3}
			theorem              & thmstyle       & Main theoretical results                      \\
			assumption           & thmstyle       & Assumptions and prerequisites                 \\
			axiom                & thmstyle       & Fundamental statements accepted without proof \\
			claim                & thmstyle       & Minor results within proofs                   \\
			conjecture           & thmstyle       & Unproven mathematical statements              \\
			corollary            & thmstyle       & Results that follow from theorems             \\
			fact                 & thmstyle       & Well-known or established results             \\
			hypothesis           & thmstyle       & Proposed explanations or predictions          \\
			lemma                & thmstyle       & Supporting theoretical results                \\
			property             & thmstyle       & Characteristic attributes or features         \\
			proposition          & thmstyle       & Minor theoretical results                     \\
			\midrule
			\multicolumn{3}{l}{\textbf{Definitions and Protocols} --- Marked with black square ($\blacksquare$)} \\
			\cmidrule{1-3}
			definition           & defstyle       & Formal definitions of terms                   \\
			notation             & defstyle       & Explanation of mathematical notation          \\
			problem              & defstyle       & Problem statements or tasks                   \\
			protocol             & defstyle       & Step-by-step procedures or algorithms         \\
			\midrule
			\multicolumn{3}{l}{\textbf{Remarks and Examples} --- Marked with hollow triangle ($\vartriangleright$)} \\
			\cmidrule{1-3}
			example              & remarkstyle    & Illustrative examples                         \\
			note                 & remarkstyle    & Additional information or clarifications      \\
			remark               & remarkstyle    & Observations or comments                      \\
			\midrule
			\multicolumn{3}{l}{\textbf{Highlights} --- Marked with hollow square ($\square$)} \\
			\cmidrule{1-3}
			exercise             & hltstyle       & Practice problems or exercises                \\
			highlight            & hltstyle       & Emphasized content                            \\
			important            & hltstyle       & Critical information                          \\
			keypoint             & hltstyle       & Essential concepts or takeaways               \\
			\midrule
			\multicolumn{3}{l}{\textbf{Special Environments}} \\
			\cmidrule{1-3}
			proof                & proofstyle     & Proofs with custom QED symbol                 \\
			case                 & (list)         & Enumerated case analysis                      \\
			\bottomrule
			\multicolumn{3}{p{\linewidth}}{\small\smallskip Note: All environments (except proof and case) have unnumbered versions available by adding an asterisk (*) to the environment name (e.g., theorem*).}
		\end{tabular}
	\end{adjustbox}
	\caption{Complete List of Environments Provided by the \pkg{csthm} Package}
	\label{tab:environments}
\end{table}

\subsection{Mathematical Theorems}

These environments are used to represent core theoretical results and are marked with a black triangle ($\blacktriangleright$) bullet. Here are some examples:

\begin{theorem}
	This is a sample theorem environment.
\end{theorem}

\begin{assumption}
	This is a sample assumption environment.
\end{assumption}

\begin{axiom}
	This is a sample axiom environment.
\end{axiom}

\begin{claim}
	This is a sample claim environment.
\end{claim}

\begin{conjecture}
	This is a sample conjecture environment.
\end{conjecture}

\begin{corollary}
	This is a sample corollary environment.
\end{corollary}

\begin{fact}
	This is a sample fact environment.
\end{fact}

\begin{hypothesis}
	This is a sample hypothesis environment.
\end{hypothesis}

\begin{lemma}
	This is a sample lemma environment.
\end{lemma}

\begin{property}
	This is a sample property environment.
\end{property}

\begin{proposition}
	This is a sample proposition environment.
\end{proposition}

\subsection{Definitions and Protocols}

These environments are used for definitions, notations, problems, and protocols. They are marked with a black square ($\blacksquare$) bullet:

\begin{definition}
	This is a sample definition environment.
\end{definition}

\begin{notation}
	This is a sample notation environment.
\end{notation}

\begin{problem}
This is a sample problem environment.
\end{problem}

\begin{protocol}
	This is a sample protocol environment.
\end{protocol}

\subsection{Remarks and Examples}

These environments provide additional explanations and clarifications, marked with a hollow triangle ($\vartriangleright$) bullet:

\begin{example}
	This is a sample example environment.
\end{example}

\begin{note}
	This is a sample note environment.
\end{note}

\begin{remark}
	This is a sample remark environment.
\end{remark}

\subsection{Highlights and Important Content}

These environments emphasize key concepts, tasks, or points, marked with a hollow square ($\square$) bullet:

\begin{exercise}
	This is a sample exercise environment.
\end{exercise}

\begin{highlight}
	This is a sample highlight environment.
\end{highlight}

\begin{important}
	This is a sample important environment.
\end{important}

\begin{keypoint}
	This is a sample keypoint environment.
\end{keypoint}

\subsection{Special Environments}

The proof environment provides a custom QED symbol, and the case environment allows for enumerated cases:

\begin{proof}
	This is a sample proof environment with a custom QED symbol.
\end{proof}

\subsubsection{Case Analysis}

The \env{case} environment provides an enumerated list for case analysis:

\begin{case}
	\item Case 1: This is the first case.
	\item Case 2: This is the second case.
	\item Case 3: This is the third case.
\end{case}

\subsection{Customization}

The \pkg{csthm} package offers extensive customization options. Below are examples of common customizations.

\subsubsection{Accent Color}

To change the accent color used for theorem headers and symbols, you can use the following commands:

\begin{verbatim}
\setaccentcolor{darkblue}  % or
\renewcommand{\accentcolor}{darkblue}
\end{verbatim}

\subsubsection{QED Symbols}

You can customize the QED symbol used in proof environments with the following command:

\begin{verbatim}
\renewcommand\qedsymbol{$\scriptstyle\color{\accentcolor}\blacksquare$}
\end{verbatim}

\section{Implementation Notes}

\subsection{Dependencies}

The following packages are required for the correct functionality of the \pkg{csthm} package:

\begin{itemize}
	\item \pkg{amsmath} - Provides advanced mathematical typesetting features.
	\item \pkg{amssymb} - Adds additional mathematical symbols.
	\item \pkg{amsthm} - Basic theorem functionality.
	\item \pkg{enumitem} - Customizes list environments.
	\item \pkg{thmtools} - Provides advanced theorem tools.
\end{itemize}

Optional dependencies include:

\begin{itemize}
	\item \pkg{hyperref} - Enables hyperlinked cross-references.
	\item \pkg{cleveref} - Provides enhanced cross-referencing features.
\end{itemize}

\section{Version History}

\begin{description}
        \ttfamily
	\item[v1.0 (2024/01/01)] Initial release.
	\item[v1.1 (2024/05/15)] Added support for \pkg{cleveref}.
	\item[v1.2 (2024/08/31)] Released on CTAN.
	\item[v1.3 (2025/01/16)] Current version:
	\begin{itemize}
		\item Added starred versions of all environments.
		\item Enhanced theorem styling.
		\item Added new environments.
		\item Improved customization options.
	\end{itemize}
\end{description}

\section{License}

This work may be distributed and/or modified under the conditions of the \LaTeX\ Project Public License, either version 1.3c or later. The latest version is available at \href{http://www.latex-project.org/lppl.txt}{\LaTeX\ Project Public License}.

\section{Contact and Support}

For bug reports, feature requests, or general feedback, please contact:
\begin{itemize}
	\item \textbf{Email:} \url{agnidatta.org@gmail.com}
	\item \textbf{GitHub:} \url{https://github.com/agnidatta/csthm}
	\item \textbf{CTAN:} \url{https://ctan.org/pkg/csthm}
\end{itemize}

\end{document}