%% Packages and Settings \UseRawInputEncoding \documentclass{article} \usepackage[english]{babel} \usepackage{adjustbox} \usepackage{colortbl} \usepackage[T1]{fontenc} \usepackage[margin=1in]{geometry} \usepackage{graphicx} \usepackage{fontspec} \setmainfont[Script=Devanagari]{Courier New} \setsansfont{DejaVu Sans} \setmonofont{DejaVu Sans Mono} \usepackage{xeCJK} \setCJKmainfont[BoldFont=SimHei,ItalicFont=KaiTi]{微软雅黑} \xeCJKsetup{PunctStyle=kaiming,CJKspace=true,CheckSingle=true} % https://tex.stackexchange.com/questions/219174/issue-with-page-breaks-before-section-and-toc-hyperlinks?rq=1 \usepackage{titlesec} \usepackage{hyperref} \newcommand{\sectionbreak}{\clearpage} \usepackage[utf8]{inputenc} \usepackage{listings} \usepackage{longtable} \usepackage{tabularx} \usepackage{tabu} \usepackage{textcomp} \usepackage{xcolor} \usepackage{array} \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp} \newcolumntype{C}[1]{>{\PreserveBackslash\centering}m{#1}} \newcolumntype{R}[1]{>{\PreserveBackslash\raggedleft}p{#1}} \newcolumntype{L}[1]{>{\PreserveBackslash\raggedright}p{#1}} % https://tex.stackexchange.com/questions/143015/different-column-number-in-rows \usepackage{booktabs,multirow,tabularx}% http://ctan.org/pkg/{booktabs,multirow,tabularx} \newcommand{\makecell}[1]{\begin{tabular}{c}#1\end{tabular}} % https://tex.stackexchange.com/questions/823/remove-ugly-borders-around-clickable-cross-references-and-hyperlinks \hypersetup{ colorlinks, linkcolor={red!50!black}, citecolor={blue!50!black}, urlcolor={blue!80!black} } %% Unicode rules. % https://tex.stackexchange.com/questions/215520/output-from-tree-command-in-a-listing \usepackage{newunicodechar} \newunicodechar{└}{{\smash{\raisebox{0.5ex}{\rule{0.5pt}{\dimexpr\baselineskip-1.5ex}}}\raisebox{0.5ex}{\rule{1ex}{0.5pt}}}} \newunicodechar{─}{{\raisebox{0.5ex}{\rule{1.5ex}{0.5pt}}}} \newunicodechar{├}{{\smash{\raisebox{-1ex}{\rule{0.5pt}{\baselineskip}}}\raisebox{0.5ex}{\rule{1ex}{0.5pt}}}} \newunicodechar{’}{{'}} \newunicodechar{“}{{"}} \newunicodechar{”}{{"}} %% Code highlighting. \definecolor{commentsColor}{rgb}{0.497495, 0.497587, 0.497464} \definecolor{keywordsColor}{rgb}{0.000000, 0.000000, 0.635294} \definecolor{stringColor}{rgb}{0.558215, 0.000000, 0.135316} \lstset{ % backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor} basicstyle=\footnotesize\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{commentsColor}\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{keywordsColor}\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{commentsColor}, % 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{stringColor}, % string literal style prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookrightarrow}}, 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) inputencoding=utf8, % https://tex.stackexchange.com/questions/24528/having-problems-with-listings-and-utf-8-can-it-be-fixed literate={└}{{\smash{\raisebox{0.5ex}{\rule{0.5pt}{\dimexpr\baselineskip-1.5ex}}}\raisebox{0.5ex}{\rule{1ex}{0.5pt}}}}1 {─}{{\raisebox{0.5ex}{\rule{1.5ex}{0.5pt}}}}1 {├}{{\smash{\raisebox{-1ex}{\rule{0.5pt}{\baselineskip}}}\raisebox{0.5ex}{\rule{1ex}{0.5pt}}}}1, } %% Language definitions. \lstdefinelanguage{rust}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{rs}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{console}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{\#}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{handlebars}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{shell}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{\#}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{json}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{yaml}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{toml}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{diff}{ sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{JavaScript}{ keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, ndkeywords={class, export, boolean, throw, implements, import, this}, sensitive=false, comment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]" } \lstdefinelanguage{text}{} \lstdefinelanguage{hbs}{} \lstdefinelanguage{cmd}{} \lstdefinelanguage{powershell}{} \lstdefinelanguage{makefile}{} \lstdefinelanguage{markdown}{} %% Title and Author (retreived from book.toml) \title{} \author{} \date{} %% Begin document. \begin{document} \maketitle \clearpage \tableofcontents \clearpage %% mdbook-latex begin \end{document}