\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{cheatsheet}[2022/02/10 Cheatsheet package] %------------------------------------------------------------------------------- % 3rd party packages %------------------------------------------------------------------------------- % \RequirePackage[utf8]{inputenc} % \RequirePackage[T1]{fontenc} % Needed to configure page layout \RequirePackage[landscape]{geometry} % Needed to make header & footer effeciently \RequirePackage{fancyhdr} % Needed to manage colors \RequirePackage{xcolor} % Needed to deal hyperlink \RequirePackage[hidelinks,unicode,pdfencoding=auto]{hyperref} % Needed to create multicolumn environment \RequirePackage{multicol} % Needed for math \RequirePackage{amsmath,amsthm,amsfonts,amssymb} % Needed for color and graphics \RequirePackage{color,graphicx,overpic} % Needed to present code \RequirePackage{listings} % less space for headers \RequirePackage[compact]{titlesec} % less space for lists \RequirePackage{mdwlist} % \RequirePackage{pdflscape} % \RequirePackage{verbatim} % Needed to create boxes \RequirePackage[most]{tcolorbox} % \RequirePackage{bussproofs} % Needed to create header and footer \RequirePackage{fancyhdr} % Needed to get last page of document \RequirePackage{lastpage} % Tables \RequirePackage{tabularx} % Icons \usepackage{pifont} %------------------------------------------------------------------------------- % Configuration for options %------------------------------------------------------------------------------- % Defines the date for letter (cover letter only) % Usage: \letterdate{} \newcommand*{\cheatsheettitle}[1]{\def\@cheatsheettitle{#1}} \newcommand*{\cheatsheetauthor}[1]{\def\@cheatsheetauthor{#1}} %------------------------------------------------------------------------------- % Configuration for layout %------------------------------------------------------------------------------- %% Page Layout % Configure page margins with geometry \geometry{top=1.3cm, left=1cm, right=1cm, bottom=1.2cm, footskip=.5cm} %% Header & Footer % Set offset to each header and footer \fancyhfoffset{0em} % Remove head rule \renewcommand{\headrulewidth}{0pt} % Clear all header & footer fields \fancyhf{} % Enable if you want to make header or footer using fancyhdr \pagestyle{fancy} %------------------------------------------------------------------------------- % Configuration for colors %------------------------------------------------------------------------------- % Basic colors \definecolor{green}{HTML}{C2E15F} \definecolor{orange}{HTML}{FDA333} \definecolor{purple}{HTML}{D3A4F9} \definecolor{yellow}{HTML}{EBE64B} \definecolor{red}{HTML}{FB4485} \definecolor{blue}{HTML}{6CE0F1} \definecolor{codegreen}{rgb}{0,0.6,0} \definecolor{codegray}{rgb}{0.5,0.5,0.5} \definecolor{codepurple}{rgb}{0.58,0,0.82} \definecolor{codeback}{rgb}{0.95,0.95,0.92} %------------------------------------------------------------------------------- % Configuration for styles %------------------------------------------------------------------------------- % header and footer style \pagestyle{fancy} \fancyhf{} % header title \fancyhead[L]{\@cheatsheettitle} % show current and total pages \fancyfoot[L]{\thepage/\pageref{LastPage}} % top bar \renewcommand{\headrulewidth}{0pt} % bottom bar \renewcommand{\footrulewidth}{0pt} %%% Tables \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} %%% Checkmarks and Crosses \newcommand{\cmark}{\ding{51}} \newcommand{\xmark}{\ding{55}} %%% Code Listings \lstdefinestyle{mystyle}{ backgroundcolor=\color{codeback}, % choose the background color; basicstyle=\ttfamily, % the size of the fonts that are used for the code breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace breaklines=true, % sets automatic line breaking captionpos=b, % sets the caption-position to bottom commentstyle=\color{codegreen}\textit, % comment style deletekeywords={...}, % if you want to delete keywords from the given language escapeinside={\%*}{*)}, % if you want to add LaTeX within your code extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 frame=tb, % adds a frame around the code keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) keywordstyle=\color{magenta}\bfseries, % keyword style language=Python, % the language of the code (can be overrided per snippet) otherkeywords={*,...}, % if you want to add more keywords to the set numbers=left, % where to put the line-numbers; possible values are (none, left, right) numbersep=5pt, % how far the line-numbers are from the code numberstyle=\tiny\color{codegray}, % the style that is used for the line-numbers rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' showstringspaces=false, % underline spaces within strings only showtabs=false, % show tabs within strings adding particular underscores stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered stringstyle=\color{codepurple}, % string literal style tabsize=2, % sets default tabsize to 2 spaces title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title columns=fixed % Using fixed column width (for e.g. nice alignment) } \lstset{style=mystyle, upquote=true} %textmarker style from colorbox doc \tcbset{textmarker/.style={% enhanced, parbox=false,boxrule=0mm,boxsep=0mm,arc=0mm, outer arc=0mm,left=2mm,right=2mm,top=3pt,bottom=3pt, toptitle=1mm,bottomtitle=1mm,oversize}} % define new colorboxes \newtcolorbox{hintBox}{textmarker, borderline west={4pt}{0pt}{yellow}, colback=yellow!10!white} \newtcolorbox{importantBox}{textmarker, borderline west={4pt}{0pt}{red}, colback=red!10!white} \newtcolorbox{noteBox}{textmarker, borderline west={4pt}{0pt}{green}, colback=green!10!white} \newtcolorbox{redbox}{leftrule=3mm, colback=red!5!white,colframe=red!75!black } % define new text higlights \newtcbox{\lhigh}[1][red]{on line, arc=0pt,outer arc=0pt,colback=#1!10!white,colframe=#1!50!black, boxsep=0pt,left=0pt,right=0pt,top=1pt,bottom=1pt, boxrule=0pt,bottomrule=1pt,toprule=1pt} \newtcbox{\rhigh}[1][red]{on line, arc=7pt,colback=#1!10!white,colframe=#1!50!black, before upper={\rule[-3pt]{0pt}{10pt}},boxrule=.5pt, boxsep=0pt,left=2.5pt,right=2.5pt,top=0pt,bottom=0pt} % define commands for easy access \renewcommand{\note}[2]{\begin{noteBox} \textbf{#1} #2 \end{noteBox}} \newcommand{\warning}[2]{\begin{hintBox} \textbf{#1} #2 \end{hintBox}} \newcommand{\important}[2]{\begin{importantBox} \textbf{#1} #2 \end{importantBox}} \newcommand{\headnote}[2]{ \begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,title=#1] #2 \end{tcolorbox} } \newcommand{\headcenternote}[2]{ \newtcolorbox{mybox}[2][]{colback=red!5!white, colframe=red!75!black,fonttitle=\bfseries, colbacktitle=red!85!black,enhanced, attach boxed title to top center={yshift=-2mm}, title={#2},#1} \begin{mybox}[colback=yellow]{#1} #2 \end{mybox} } % define cardbox \newcommand{\flashcard}[4]{ \vspace{.1cm} \fbox{\parbox[t][1in][c]{2in}{% \footnotesize\textsc{#1}\par\vspace*{\fill}\par \centerline{\textbf{#2}}\par\vspace*{\fill}\par \hspace*{\fill}\textsc{#3}}} \fbox{\parbox[t][1in][c]{2in}{% \footnotesize\vspace*{\fill}\par\begin{center} #4 \end{center}\par\vspace*{\fill}}} } % Redefine section commands to use less space \makeatletter \renewcommand{\section}{\@startsection{section}{1}{0mm}% {-1ex plus -.5ex minus -.2ex}% {0.5ex plus .2ex}%x {\normalfont\large\bfseries}} \renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}% {-1explus -.5ex minus -.2ex}% {0.5ex plus .2ex}% {\normalfont\normalsize\bfseries}} \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}% {-1ex plus -.5ex minus -.2ex}% {1ex plus .2ex}% {\normalfont\small\bfseries}} \makeatother % Don't print section numbers \setcounter{secnumdepth}{0} % compress space \setlength{\parindent}{0pt} \setlength{\parskip}{0pt} \setlength\abovedisplayskip{0pt} \setlength{\parsep}{0pt} \setlength{\topskip}{0pt} \setlength{\topsep}{0pt} \setlength{\partopsep}{0pt} \setlength{\premulticols}{1pt} \setlength{\postmulticols}{1pt} \setlength{\multicolsep}{5pt} \setlength{\columnsep}{.8cm} \linespread{0.5} \titlespacing{\section}{0pt}{*0}{*0} \titlespacing{\subsection}{0pt}{*0}{*0} \titlespacing{\subsubsection}{0pt}{*0}{*0} \raggedright %------------------------------------------------------------------------------- % Configuration other %------------------------------------------------------------------------------- \hypersetup{% pdftitle={\@cheatsheettitle - Cheatsheet}, pdfauthor={\@cheatsheetauthor}, pdfsubject={\@cheatsheettitle}, pdfkeywords={\@cheatsheettitle, Cheatsheet} } \pdfinfo{ /Title (\@cheatsheettitle - Cheatsheet) /Creator (TeX) /Producer (pdfTeX 1.40.0) /Author (\@cheatsheetauthor) /Subject () }