\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Tynamoguy} \pdfinfo{ /Title (snow-usage.pdf) /Creator (Cheatography) /Author (Tynamoguy) /Subject (Snow Usage Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{00DFF7} \definecolor{LightBackground}{HTML}{EFFDFE} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Snow Usage Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Tynamoguy} via \textcolor{DarkBackground}{\uline{cheatography.com/147126/cs/31949/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Tynamoguy \\ \uline{cheatography.com/tynamoguy} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 1st May, 2022.\\ Updated 1st May, 2022.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{2.96 cm} x{5.04 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Options}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{-C}} & Compress the data if concealing, or uncompress it if extracting. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{-Q}} & Quiet mode. If not set, the program reports statistics such as compression percentages and amount of available storage space used. \tn % Row Count 9 (+ 6) % Row 2 \SetRowColor{LightBackground} {\bf{-S}} & Report on the approximate amount of space available for hidden message in the text file. Line length is taken into account, but other options are ignored. \tn % Row Count 16 (+ 7) % Row 3 \SetRowColor{white} {\bf{-p}} {\emph{password}} & If this is set, the data will be encrypted with this password during concealment, or decrypted during extraction. \tn % Row Count 21 (+ 5) % Row 4 \SetRowColor{LightBackground} {\bf{-l}} {\emph{line-length}} & When appending whitespace, snow will always produce lines shorter than this value. By default it is set to 80. \tn % Row Count 26 (+ 5) % Row 5 \SetRowColor{white} {\bf{-f}} {\emph{message-file}} & The contents of this file will be concealed in the input text file. \tn % Row Count 29 (+ 3) % Row 6 \SetRowColor{LightBackground} {\bf{-m}} {\emph{message-string}} & The contents of this string will be concealed in the input text file. Note that, unless a newline is somehow included in the string, a newline will not be printed when the message is extracted. \tn % Row Count 37 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Synopsis: {\bf{snow}} {[} {\bf{-CQS}} {]} {[} {\bf{-p}} {\emph{passwd}} {]} {[} {\bf{-l}} {\emph{line-len}} {]} {[} {\bf{-f}} {\emph{file}} | {\bf{-m}} {\emph{message}} {]} {[} {\emph{infile}} {[} {\emph{outfile}} {]}{]}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Examples}} \tn % Row 0 \SetRowColor{LightBackground} The following command will conceal the message "I am lying" in the file infile, with compression, and encrypted with the password "hello world". The resulting text will be stored in outfile. & `snow -C -m "I am lying" -p "hello world" infile outfile` \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} To extract the message, the command would be \{\{nl\}\} \{\{nl\}\} \textasciicircum{}Note that the resulting message will not be terminated by a newline.\textasciicircum{} & `snow -C -p "hello world" outfile` \tn % Row Count 17 (+ 7) % Row 2 \SetRowColor{LightBackground} To prevent line wrap if text with concealed whitespace is likely to be indented by mail or news readers, a line length of 72 or less can be used. snow -C -l 72 -m "I am lying" infile outfile & `snow -C -l 72 -m "I am lying" infile outfile` \tn % Row Count 27 (+ 10) % Row 3 \SetRowColor{white} The approximate storage capacity of a file can be determined with the -S option. & `snow -S -l 72 infile` \tn % Row Count 31 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Note for Compression:}} SNOW provides rudimentary compression, using Huffman tables optimised for English text. However, if the data is not text, or if there is a lot of data, the use of the built-in compression is not recommended, since an external compression program such as compress or gzip will do a much better job.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}