summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ltxguidex/ltxguidex.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ltxguidex/ltxguidex.cls
Initial commit
Diffstat (limited to 'macros/latex/contrib/ltxguidex/ltxguidex.cls')
-rw-r--r--macros/latex/contrib/ltxguidex/ltxguidex.cls219
1 files changed, 219 insertions, 0 deletions
diff --git a/macros/latex/contrib/ltxguidex/ltxguidex.cls b/macros/latex/contrib/ltxguidex/ltxguidex.cls
new file mode 100644
index 0000000000..2ce25fa8ba
--- /dev/null
+++ b/macros/latex/contrib/ltxguidex/ltxguidex.cls
@@ -0,0 +1,219 @@
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesClass{ltxguidex}[2019/04/15 0.2.0 Extended LaTeX documentation class]
+% Description: An improved document class for writing LaTeX documentation
+% with extra tools for authors.
+% Homepage: https://github.com/9999years/ltxguidex
+% https://ctan.org/pkg/ltxguidex
+% Maintainer: Rebecca Turner <637275@gmail.com>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Rebecca Turner <637275@gmail.com>.
+%
+% This work consists of the files ltxguidex.cls and ltxguidex.tex.
+
+\raggedright
+\parskip=.8ex
+\advance\oddsidemargin-.5cm
+\advance\textwidth1cm
+\addtolength{\textheight}{2cm}
+\addtolength{\topmargin}{-1.5cm}
+
+\LoadClass{ltxguide}
+
+%\RequirePackage{hypdoc}
+%\RequirePackage[
+ %loadHyperref=false,
+ %createIndexEntries=false
+%]{doctools}
+\RequirePackage[colorlinks=true]{hyperref}
+\RequirePackage{xparse}
+\RequirePackage{xkeyval}
+\RequirePackage{xcolor}
+\RequirePackage{framed}
+\RequirePackage{showexpl}
+\RequirePackage{enumitem}
+
+\definecolor{red} {HTML}{BF4C4C}
+\definecolor{green} {HTML}{4CBF67}
+\definecolor{orange} {HTML}{BF8D4C}
+\definecolor{cyan} {HTML}{4CA0BF}
+\definecolor{magenta}{HTML}{594CBF}
+\definecolor{light} {HTML}{F5F5ED}
+
+\definecolor{notes}{named}{red}
+\definecolor{shadecolor}{named}{light}
+
+\lstset{
+ basicstyle=\ttfamily,
+ numbers=none,
+ aboveskip=1em,
+ belowskip=0.5em,
+ breaklines,
+ breakatwhitespace=true,
+ tabsize=4,
+ keywordstyle={\bfseries\color{magenta}},
+ commentstyle={\color{green}},
+ stringstyle={\color{orange}},
+ backgroundcolor={\color{shadecolor}},
+}
+
+% For showexpl
+\renewcommand{\SX@explpreset}{
+ language=[LaTeX]TeX,
+}
+
+%\newcommand{\ltxguidex@suppressindent}{\par\@afterindentfalse\@afterheading}
+
+\newenvironment{desc}
+ {\if@nobreak
+ \vskip-\lastskip
+ \vspace*{-2.5ex}%
+ \fi
+ \decl}
+ {\enddecl}
+
+\newcommand{\noticestyle}{\sffamily\bfseries\color{notes}}
+\def\@begintheorem#1#2{%
+ \list{}{}%
+ \global\advance\@listdepth\m@ne
+ \item[{\noticestyle\MakeUppercase{#1}}]}
+\newcommand{\newnotice}[2]{\newtheorem{#1}{#2}}
+
+\newnotice{warning}{Warning}
+\newnotice{note}{Note}
+\newnotice{example}{Example}
+\newnotice{bug}{Bug}
+
+\let\bblxv\verbatim
+\let\bblexv\endverbatim
+\def\verbatim{\begin{shaded*}\bblxv\vskip-\baselineskip\vskip2.5\parsep}
+\def\endverbatim{\bblexv\vskip-2\baselineskip\end{shaded*}}
+
+\addtolength{\topmargin}{-3pc}
+\addtolength{\textwidth}{6pc}
+\addtolength{\oddsidemargin}{-2pc}
+\addtolength{\textheight}{7pc}
+
+\raggedright
+\parindent1.8em
+\parskip0pt
+
+\newcommand\New[1]{%
+ \colorbox[rgb]{.87, .9, .83}{New #1}\enspace\ignorespaces}
+
+\lstnewenvironment{latexcode}
+ {\lstset{language=[LaTeX]TeX}}{}
+
+% Arguments:
+% Environment defining command (e.g. \newenvironment or \renewenvironment)
+% Environment name
+% \makelabel command
+\newcommand{\@newdescriptionenvironment}[3]
+ {\expandafter#1{#2}%
+ {\begin{description}%
+ \let\makelabel#3}
+ {\end{description}}}
+
+% Arguments:
+% Environment name
+% \item label wrapping command
+\newcommand{\newdescriptionenvironment}[2]
+ {\@newdescriptionenvironment{\newenvironment}{#1}{#2}}
+\newcommand{\renewdescriptionenvironment}[2]
+ {\@newdescriptionenvironment{\renewenvironment}{#1}{#2}}
+
+\newdescriptionenvironment{packages}{\package}
+\newdescriptionenvironment{classes}{\ltxclass}
+\newdescriptionenvironment{options}{\option}
+
+% from lstdoc
+\def\advisespace{\hbox{}\qquad}
+\def\labeladvise{$\to$}
+\def\advisestyle{\footnotesize\sffamily}
+\newenvironment{advise}
+ {\begin{itemize}[
+ label=\labeladvise,
+ itemsep=0pt,
+ ]%
+ \advisestyle
+ \let\Q\item
+ \let\A\advisespace
+ }
+ {\end{itemize}}
+
+% alias `advise' to `faq'
+\let\faq\advise
+\let\endfaq\endadvise
+
+% from ltxdoc; ``iterates down the list and inserts vertical rules'' between
+% items
+\def\alternative#1{\lst@true \alternative@#1,\relax,}
+\def\alternative@#1,{%
+ \ifx\relax#1\@empty
+ \expandafter\@gobble
+ \else
+ \ifx\@empty#1\@empty\else
+ \lst@if \lst@false \else $\vert$\fi
+ \textup{\texttt{#1}}%
+ \fi
+ \fi
+ \alternative@}
+
+\define@cmdkeys{ltxkey}{v, note, default}
+\newenvironment{keys}
+ {\begin{description}[font={}, mode=unboxed]%
+ \def\makelabel##1{}%
+ \providecommand{\bool}{\m{\alternative{true,false}}}%
+ \NewDocumentCommand{\key}{o m o o}{{%
+ \IfValueT{##1}{%
+ \setkeys{ltxkey}{##1}%
+ }%
+ \item[\texttt{##2}]%
+ \leavevmode
+ \@ifundefined{cmdKV@ltxkey@note}{}{%
+ \llap{\footnotesize\textit{\cmdKV@ltxkey@note}\quad}%
+ }%
+ \texttt{\textbf{\color{magenta}##2}}%
+ \IfValueT{##3}{%
+ \texttt{=}##3%
+ }%
+ \IfValueT{##4}{%
+ \hfill\texttt{##4}%
+ }%
+ \@ifundefined{cmdKV@ltxkey@default}{}{%
+ \hfill\texttt{\cmdKV@ltxkey@default}%
+ }%
+ \par
+ }}%
+ }
+ {\end{description}}
+
+\providecommand{\package} [1]{\texttt{#1}}
+\providecommand{\ltxclass} [1]{\texttt{#1}}
+\providecommand{\option} [1]{\texttt{#1}}
+\providecommand{\extension}[1]{\texttt{.#1}}
+\providecommand{\filename} [1]{\texttt{#1}}
+\providecommand{\meta} [1]{\m{#1}}
+
+\newcommand{\docstrip}{\textsc{docstrip}}
+\let\ctanlogo\ctan
+\newcommand{\pipe}{\char"7C}
+\newcommand{\bs}{\char"5C}
+\newcommand{\command}[1]{\texttt{\bs#1}}
+\let\cs\command
+
+\newcommand{\email}[1]{\href{mailto:#1}{#1}}
+\newcommand{\http}[1]{\href{http://#1}{#1}}
+\newcommand{\https}[1]{\href{https://#1}{#1}}
+\renewcommand{\ctan}[1]{\href{https://ctan.org/pkg/#1}{\package{#1}}}
+\NewExpandableDocumentCommand{\Th}{O{l} m}
+ {\multicolumn{1}{#1}{\textbf{#2}}}