\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{444B (Iam444b)} \pdfinfo{ /Title (sonic-pi-official.pdf) /Creator (Cheatography) /Author (444B (Iam444b)) /Subject (Sonic Pi Official 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}{FF1493} \definecolor{LightBackground}{HTML}{FFF0F8} \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{Sonic Pi Official Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{444B (Iam444b)} via \textcolor{DarkBackground}{\uline{cheatography.com/134888/cs/27871/}}} \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}444B (Iam444b) \\ \uline{cheatography.com/iam444b} \\ \uline{\seqsplit{github}.com/444b/sonic-pi} \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 7th May, 2021.\\ Updated 31st May, 2024.\\ 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*}{3} \begin{tabularx}{5.377cm}{x{1.44333 cm} x{3.53367 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Conventions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{In this sheet, we use these conventions}}\{\{nl\}\} Meta is either Alt on {\bf{Windows/Linux}} or Cmd on {\bf{Mac}}.\{\{nl\}\} A Strikethrough has been made on commands that were tested on Windows 10 and found to not operate as per the original documentation} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Examples of how to use this document:} \tn % Row Count 6 (+ 1) % Row 2 \SetRowColor{LightBackground} C-a\{\{nobreak\}\} & hold the Control key then press the A key \tn % Row Count 8 (+ 2) % Row 3 \SetRowColor{white} M-r \{\{nobreak\}\} & hold the Meta key and then press the R key \tn % Row Count 10 (+ 2) % Row 4 \SetRowColor{LightBackground} S-M-z\{\{nobreak\}\} & hold the Shift key, then press Meta key, then the z key \tn % Row Count 12 (+ 2) % Row 5 \SetRowColor{white} C-M-f\{\{nobreak\}\} & hold the Control key, then press Meta key, then the f key \tn % Row Count 15 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Part of the notion of consistency is the naming of shortcuts. In Sonic Pi we use the names Control and Meta to refer to the two main combination keys. On all platforms Control is the same. However, on Linux and Windows, Meta is actually the Alt key while on Mac Meta is the Command key. For consistency we'll use the term Meta - just remember to map that to the appropriate key on your operating system.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.54287 cm} x{3.43413 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Main Application Manipulation}} \tn % Row 0 \SetRowColor{LightBackground} M-r\{\{nobreak\}\} & Run code \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M-s\{\{nobreak\}\} & Stop code \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} M-i\{\{nobreak\}\} & Toggle Help System \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} M-p\{\{nobreak\}\} & Toggle Preferences \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} M-\{ \{\{nobreak\}\} & Switch buffer to the left \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} M-\}\{\{nobreak\}\} & Switch buffer to the right \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} S-M-0\{\{nobreak\}\} & Switch to buffer 0 \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} S-M-1\{\{nobreak\}\} & Switch to buffer 1 \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} ...\{\{nobreak\}\} & ... \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} S-M-9\{\{nobreak\}\} & Switch to buffer 9 \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} M-+\{\{nobreak\}\} & Increase text size of current buffer \tn % Row Count 22 (+ 2) % Row 11 \SetRowColor{white} M-{}-\{\{nobreak\}\} & Decrease text size of current buffer \tn % Row Count 24 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Navigation}} \tn % Row 0 \SetRowColor{LightBackground} C-a\{\{nobreak\}\} & Move to beginning of line \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C-e\{\{nobreak\}\} & Move to end of line \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} C-p\{\{nobreak\}\} & Move to previous line \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} C-n\{\{nobreak\}\} & Move to next line \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C-f\{\{nobreak\}\} & Move forward one character \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} C-b\{\{nobreak\}\} & Move backward one character \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} M-f\{\{nobreak\}\} & Move forward one word \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} M-b\{\{nobreak\}\} & Move backward one word \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} C-M-n\{\{nobreak\}\} & Move line or selection down \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} C-M-p\{\{nobreak\}\} & Move line or selection up \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} S-M-u\{\{nobreak\}\} & Move up 10 lines \tn % Row Count 22 (+ 2) % Row 11 \SetRowColor{white} S-M-d\{\{nobreak\}\} & Move down 10 lines \tn % Row Count 24 (+ 2) % Row 12 \SetRowColor{LightBackground} M-\textless{}\{\{nobreak\}\} & \textasciitilde{}\textasciitilde{}Move to beginning of buffer\textasciitilde{}\textasciitilde{} \tn % Row Count 26 (+ 2) % Row 13 \SetRowColor{white} M-\textgreater{}\{\{nobreak\}\} & \textasciitilde{}\textasciitilde{}Move to end of buffer\textasciitilde{}\textasciitilde{} \tn % Row Count 28 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.54287 cm} x{3.43413 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Selection/Copy/Paste}} \tn % Row 0 \SetRowColor{LightBackground} M-a\{\{nobreak\}\} & Select all \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M-c\{\{nobreak\}\} & Copy selection to paste buffer \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} M-{]}\{\{nobreak\}\} & Copy selection to paste buffer \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} M-x\{\{nobreak\}\} & Cut selection to paste buffer \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C-{]}\{\{nobreak\}\} & Cut selection to paste buffer \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} C-k\{\{nobreak\}\} & Cut to the end of the line \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} M-v\{\{nobreak\}\} & Paste from paste buffer to editor \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} C-y\{\{nobreak\}\} & Paste from paste buffer to editor \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} C-SPACE\{\{nobreak\}\} & Set mark. Navigation will now manipulate highlighted region. Use C-g to escape. \tn % Row Count 19 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Text Manipulation}} \tn % Row 0 \SetRowColor{LightBackground} M-m\{\{nobreak\}\} & Align all text \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Tab\{\{nobreak\}\} & Align current line or selection (or select autocompletion) \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} C-l\{\{nobreak\}\} & Centre editor \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} M-/\{\{nobreak\}\} & Comment/Uncomment current line or selection \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C-t\{\{nobreak\}\} & Transpose/swap characters \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} M-u\{\{nobreak\}\} & Convert next word (or selection) to upper case. \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} M-l\{\{nobreak\}\} & Convert next word (or selection) to lower case. \tn % Row Count 14 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Deletion}} \tn % Row 0 \SetRowColor{LightBackground} C-h & Delete previous character \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-d & C-d Delete next character \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.54287 cm} x{3.43413 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Advanced Editor Features}} \tn % Row 0 \SetRowColor{LightBackground} C-i\{\{nobreak\}\} & Show docs for word under cursor \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M-z\{\{nobreak\}\} & Undo \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} S-M-z\{\{nobreak\}\} & Redo \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} C-g\{\{nobreak\}\} & Escape \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} S-M-f\{\{nobreak\}\} & Toggle fullscreen mode \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} S-M-b\{\{nobreak\}\} & Toggle visibility of buttons \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} S-M-l\{\{nobreak\}\} & Toggle visibility of log \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} S-M-m\{\{nobreak\}\} & Toggle between light/dark modes \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} S-M-s\{\{nobreak\}\} & Save contents of buffer to a file \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} S-M-o\{\{nobreak\}\} & Load contents of buffer from a file \tn % Row Count 20 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}