\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{superstructor} \pdfinfo{ /Title (gitlab-markdown.pdf) /Creator (Cheatography) /Author (superstructor) /Subject (GitLab Markdown 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}{f3130f} \definecolor{LightBackground}{HTML}{FEF0F0} \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{GitLab Markdown Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{superstructor} via \textcolor{DarkBackground}{\uline{cheatography.com/54103/cs/14533/}}} \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}superstructor \\ \uline{cheatography.com/superstructor} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 30th January, 2018.\\ 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{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Special References}} \tn % Row 0 \SetRowColor{LightBackground} `@user\_name` & specific user \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `@group\_name` & specific group \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `@all` & entire team \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `\#123` & issue \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `!123` & merge request \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `\$123` & snippet \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `\&123` & epic \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} `\textasciitilde{}123` & label by ID \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} `\textasciitilde{}bug` & one-word label by name \tn % Row Count 10 (+ 2) % Row 9 \SetRowColor{white} `\textasciitilde{}"feature request"` & multi-word label by name \tn % Row Count 12 (+ 2) % Row 10 \SetRowColor{LightBackground} `\%123` & project milestone by ID \tn % Row Count 14 (+ 2) % Row 11 \SetRowColor{white} `\%v1.23` & one-word milestone by name \tn % Row Count 16 (+ 2) % Row 12 \SetRowColor{LightBackground} `\%"release candidate"` & multi-word milestone by name \tn % Row Count 18 (+ 2) % Row 13 \SetRowColor{white} `9ba12248` & specific commit \tn % Row Count 19 (+ 1) % Row 14 \SetRowColor{LightBackground} \seqsplit{`9ba12248...b19a04f5`} & commit range comparison \tn % Row Count 21 (+ 2) % Row 15 \SetRowColor{white} `{[}README{]}(doc/README)` & repository file references \tn % Row Count 23 (+ 2) % Row 16 \SetRowColor{LightBackground} `{[}README{]}(doc/README\#L13)` & repository file line references \tn % Row Count 25 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.88666 cm} x{2.09034 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Cross-Project References}} \tn % Row 0 \SetRowColor{LightBackground} `ns/project\#123` & issue \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `ns/project!123` & merge request \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `ns/project\%123` & project milestone \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} `ns/project\$123` & snippet \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `ns/project@9ba12248` & specific commit \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} `group1/subgroup\&123` & epic \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} \seqsplit{`ns/project@9ba12248...b19a04f5`} & commit range comparison \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} `ns/project\textasciitilde{}"Some label"` & issues with given label \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.78712 cm} x{2.18988 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Shorthand Cross-Project References}} \tn % Row 0 \SetRowColor{LightBackground} `project\#123` & issue \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `project!123` & merge request \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `project\%123` & project milestone \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `project\$123` & snippet \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `project@9ba12248` & specific commit \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \seqsplit{`project@9ba12248...b19a04f5`} & commit range comparison \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} `project\textasciitilde{}"Some label"` & issues with given label \tn % Row Count 9 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{For projects from the same namespace.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Syntax Highlighting}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\{\{literal\}\}```clojure \newline (def xf (comp (filter odd?) (map inc))) \newline ```} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Inline Diff}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{- \{+ additions +\} \newline - {[}+ additions +{]} \newline - \{- deletions -\} \newline - {[}- deletions -{]}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{With inline diffs you can display \{+ additions +\} or {[}- deletions -{]}.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Unordered Task Lists}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{- {[}x{]} Completed task \newline - {[} {]} Incomplete task \newline - {[} {]} Sub-task 1 \newline - {[}x{]} Sub-task 2 \newline - {[} {]} Sub-task 3} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{You can add task lists to issues, merge requests and comments.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ordered Task Lists}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{1. {[}x{]} Completed task \newline 1. {[} {]} Incomplete task \newline 1. {[} {]} Sub-task 1 \newline 1. {[}x{]} Sub-task 2} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Videos}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{!{[}Sample Video{]}(img/markdown\_video.mp4)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Image tags with a video extension are automatically converted to a video player. \newline \newline The valid video extensions are .mp4, .m4v, .mov, .webm, and .ogv.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Math with KaTeX}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\{\{literal\}\}This math is inline \$`a\textasciicircum{}2+b\textasciicircum{}2=c\textasciicircum{}2`\$. \newline \newline This is on a separate line \newline ```math \newline a\textasciicircum{}2+b\textasciicircum{}2=c\textasciicircum{}2 \newline ```} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Diagrams \& Flowcharts}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\{\{literal\}\}```mermaid \newline graph TD; \newline A-{}-\textgreater{}B; \newline A-{}-\textgreater{}C; \newline B-{}-\textgreater{}D; \newline C-{}-\textgreater{}D; \newline ```} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Refer to the Mermaid Cheat Sheet.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Headers}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\# H1 \newline \#\# H2 \newline \#\#\# H3 \newline \#\#\#\# H4 \newline \#\#\#\#\# H5 \newline \#\#\#\#\#\# H6 \newline \newline Alternatively, for H1 and H2, an underline-ish style: \newline \newline Alt-H1 \newline ====== \newline \newline Alt-H2 \newline -{}-{}-{}-{}-{}-} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Header IDs \& Links}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{All headers automatically get IDs, except in comments. \newline % Row Count 2 (+ 2) IDs are generated from header content as follows: \newline % Row Count 3 (+ 1) 1. All text is converted to lowercase \newline % Row Count 4 (+ 1) 2. All non-word text is removed \newline % Row Count 5 (+ 1) 3. All spaces are converted to hyphens \newline % Row Count 6 (+ 1) 4. Two or more hyphens in a row are converted to one \newline % Row Count 8 (+ 2) 5. Emojis are removed \newline % Row Count 9 (+ 1) 6. Duplicate headers have a unique incrementing number appended.% Row Count 11 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Emphasis}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\{\{literal\}\}Emphasis, aka italics, with {\emph{asterisks}} or \_underscores\_. \newline \newline Strong emphasis, aka bold, with {\bf{asterisks}} or \_\_underscores\_\_. \newline \newline Combined emphasis with {\bf{asterisks and \_underscores\_}}. \newline \newline Strikethrough uses two tildes. \textasciitilde{}\textasciitilde{}Scratch this.\textasciitilde{}\textasciitilde{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}