\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{Matthew Perryman (PezMat)} \pdfinfo{ /Title (string-format-syntax-and-format-codes.pdf) /Creator (Cheatography) /Author (Matthew Perryman (PezMat)) /Subject (String.Format syntax \& format codes 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}{666666} \definecolor{LightBackground}{HTML}{F5F5F5} \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{String.Format syntax \& format codes Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Matthew Perryman (PezMat)} via \textcolor{DarkBackground}{\uline{cheatography.com/26431/cs/7793/}}} \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}Matthew Perryman (PezMat) \\ \uline{cheatography.com/pezmat} \\ \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 12th May, 2016.\\ 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{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Composite Format Item Syntax}} \tn \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{\{index{[},alignment{]}{[}:formatString{]}\}% Row Count 1 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Explanation}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{The mandatory {\bf{index}} component, also called a parameter specifier, is a number starting from 0 that identifies a corresponding item in the list of objects} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{17.67cm}}{The optional {\bf{alignment}} component is a signed integer indicating the preferred formatted field width. If the value of alignment is less than the length of the formatted string, alignment is ignored and the length of the formatted string is used as the field width. The formatted data in the field is right-aligned if alignment is positive and left-aligned if alignment is negative. If padding is necessary, white space is used} \tn % Row Count 13 (+ 9) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{The optional {\bf{formatString}} component is a format string that is appropriate for the type of object being formatted} \tn % Row Count 16 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.635 cm} x{8.635 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{\{\{fa-code\}\} index Example 1}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{`String.Format("Prime} numbers less than 10: \{0\}, \{1\}, \{2\}, \{3\}", 2, 3, 5, 7)` & `Prime numbers less than 10: 2, 3, 5, 7` \tn % Row Count 4 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.635 cm} x{8.635 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{\{\{fa-code\}\} index Example 2}} \tn % Row 0 \SetRowColor{LightBackground} `String.Format("0x\{0:X\} \{0:E\} \{0:N\}", Int64.MaxValue)` & `0x7FFFFFFFFFFFFFFF 9.223372E+018 9,223,372,036,854,775,807.00` \tn % Row Count 4 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.635 cm} x{8.635 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{\{\{fa-code\}\} alignment Example}} \tn % Row 0 \SetRowColor{LightBackground} `Dim names() As String = \{"Adam", "Bridgette", "Carla", "Daniel", "Ebenezer", "Francine", "George"\}\{\{nl\}\}Dim hours() As Decimal = \{40, 6.667D, 40.39D, 82, 40.333D, 80, 16.75D\}\{\{nl\}\}Console.WriteLine(String.Format("\{0,-20\} \{1,5\}", "Name", "Hours"))\{\{nl\}\}Console.WriteLine()\{\{nl\}\}For index As Integer = 0 To names.GetUpperBound(0)\{\{nl\}\}~~~Console.WriteLine(String.Format("\{0,-20\} \{1,5\}", names(index), hours(index)))\{\{nl\}\}Next` & `Name~~~~~~~~~~~~~~~~~Hours\{\{nl\}\}\{\{nl\}\}Adam~~~~~~~~~~~~~~~~~~~~40\{\{nl\}\}Bridgette~~~~~~~~~~~~6.667\{\{nl\}\}Carla~~~~~~~~~~~~~~~~40.39\{\{nl\}\}Daniel~~~~~~~~~~~~~~~~~~82\{\{nl\}\}Ebenezer~~~~~~~~~~~~~40.333\{\{nl\}\}Francine~~~~~~~~~~~~~~~~80\{\{nl\}\}George~~~~~~~~~~~~~~~16.75` \tn % Row Count 45 (+ 45) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.8077 cm} x{8.4623 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{\{\{fa-code\}\} formatString Example}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{`String.Format("Name} = \{0\}, hours = \{1:hh\}, minutes = \{1:mm\}", "Fred", DateTime.Now)` & `Name = Fred, hours = 11, minutes = 30` \tn % Row Count 5 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{17.67cm}}{\bf\textcolor{white}{Sources}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{17.67cm}}{\{\{link="https://msdn.microsoft.com/en-us/library/txafckwd(v=vs.110).aspx?cs-save-lang=1\&cs-lang=vb\#code-snippet-3"\}\}Composite Formatting} \tn % Row Count 3 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \end{document}