%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Preliminary modifications % %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \makeatletter \DeclareFontFamily{T1}{cmtt}{\hyphenchar \font\m@ne} \DeclareFontShape{T1}{cmtt}{m}{n}{ <-9> ectt0800 <9-10> ectt0900 <10-12> ectt1000 <12-17> ectt1200 <17-> ectt1728 }{} \DeclareFontShape{T1}{cmtt}{m}{it}{ <-9> ecit0800 <9-10> ecit0900 <10-12> ecit1000 <12-17> ecit1200 <17-> ecit1728 }{} \DeclareFontShape{T1}{cmtt}{m}{sl}{ <-9> ecst0800 <9-10> ecst0900 <10-12> ecst1000 <12-17> ecst1200 <17-> ecst1728 }{} \DeclareFontShape{T1}{cmtt}{m}{sc}{ <-9> ectc0800 <9-10> ectc0900 <10-12> ectc1000 <12-17> ectc1200 <17-> ectc1728 }{} \DeclareFontShape{T1}{cmtt}{bx}{n}{ <-> ssub * cmtt/m/n }{} \DeclareFontShape{T1}{cmtt}{bx}{it}{ <-> ssub * cmtt/m/it }{} \DeclareFontShape{T1}{cmtt}{bx}{sl}{ <-> ssub * cmtt/m/sl }{} \DeclareFontShape{T1}{cmtt}{bx}{sc}{ <-> ssub * cmtt/m/sc }{} \makeatother % To be completed with all missing glyphs provided by the ucs package %% Probably best idea to just copy-paste code from the ucs package \DeclareUnicodeCharacter{1E25}{\d{h}} %%%%%%%%%%%% % Packages % %%%%%%%%%%%% % Required to support mathematical unicode %\usepackage[ warnunknown, fasterrors, mathletters, cjkjis ]{ucs} \usepackage{ CJKutf8 } % Support for Asian scripts \usepackage[ T1 ]{ fontenc } % Wider support of output characters (e.g. French) \usepackage[ utf8 ]{ inputenc } % Standard mathematical typesetting packages \usepackage{ amsfonts, amsthm, amsmath } \usepackage{ mathtools } % Extension to amsmath % Symbol and utility packages \usepackage{ cancel, textcomp } \usepackage[ mathscr ]{ euscript } \usepackage[ nointegrals ]{ wasysym } % Extras \usepackage[ spanish , german , czech , french , english ]{ babel } % Allows to change to language-specific typesettings \usepackage{ multicol, etoc } % Multiple columns and nice ToCs \usepackage{ enumitem } % Great customizability for lists \usepackage{ IEEEtrantools } % The only acceptable equation typesetter \usepackage[ nomessages ]{ fp } % Performing arithmetic \usepackage{ xparse } % Creating new commands \usepackage{ xfrac } % Nice inline fractions (best for exponents) \usepackage{ siunitx } % Adding units to figures \usepackage[ version = 4 ]{ mhchem } % Chemistry notation \usepackage{ esvect } % Vectors using arrows \usepackage{ tikz } % Drawings \usepackage{ pgfplots } % Plotting stuff \usepackage{ chemfig } % Drawing molecules \usepackage{ tikz-cd } % Drawing commutative diagrams easily \usepackage{ circuitikz } % Drawing electrical circuits \usepackage{ xlop } % Showing arithmetic calculations \usepackage{ stackengine } % Stacking text appropriately \usepackage{ booktabs } % Appropriate typesetting for tables \usepackage{ tcolorbox } % BOXES! \usepackage[ svgnames, table ]{ xcolor } % Pretty colors \usepackage{ contour } % Nice contours \usepackage{ MnSymbol } % Lotta symbols! \usepackage{ anyfontsize } % Allow for any font size \usepackage{ scrextend } % Change font size easily (among others) \usepackage{ microtype } % Font tweaks \usepackage{ lettrine } % Initials \usepackage[ normalem ]{ ulem } % Underlines \usepackage{ lipsum } % Dummy text \usepackage{ csquotes } % Quoting stuff \usepackage{ parskip } % Disables indents \usepackage{ comment } % Commenting stuff \usepackage{ hyperref } % Linking stuff. Needs to be loaded last. %%%%%%%%%%%%%%%%%%% % Package options % %%%%%%%%%%%%%%%%%%% \pgfplotsset{ compat = 1.16 } % Sets compatibility options \tcbuselibrary{ breakable } % Allow for breakable boxes \KOMAoptions{ fontsize = 20pt } % Change global font size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Helpful macros and shortuts % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\tnm}[1]{\textnormal{#1}} \newcommand{\trm}[1]{\textrm{#1}} \newcommand{\tsf}[1]{\textsf{#1}} \newcommand{\ttt}[1]{\texttt{#1}} \newcommand{\tup}[1]{\textup{#1}} \newcommand{\tit}[1]{\textit{#1}} \newcommand{\tsl}[1]{\textsl{#1}} \newcommand{\tsc}[1]{\textsc{#1}} \newcommand{\tbf}[1]{\textbf{#1}} \newcommand{\tmd}[1]{\textmd{#1}} %\newcommand{\tlf}[1]{\textlf{#1}} \newcommand{\tui}[1]{{\fontshape{ui}\selectfont{}#1}} \newcommand{\tbd}[1]{{\fontseries{b}\selectfont{}#1}} \newcommand{\mnm}[1]{\ensuremath{ \mathnormal{ #1 } }} \newcommand{\mrm}[1]{\ensuremath{ \mathrm{ #1 } }} \newcommand{\msf}[1]{\ensuremath{ \mathsf{ #1 } }} \newcommand{\mtt}[1]{\ensuremath{ \mathtt{ #1 } }} \newcommand{\msl}[1]{\ensuremath{ \mathit{ #1 } }} \newcommand{\mbf}[1]{\ensuremath{ \mathbf{ #1 } }} \newcommand{\mbb}[1]{\ensuremath{ \mathbb{ #1 } }} \newcommand{\mcl}[1]{\ensuremath{ \mathcal{ #1 } }} \newcommand{\mfk}[1]{\ensuremath{ \mathfrak{ #1 } }} \newcommand{\msr}[1]{\ensuremath{ \mathscr{ #1 } }} \newcommand{\sbf}[1]{\ensuremath{ \boldsymbol{ #1 } }} \makeatletter \let\old@alpha\alpha \newcommand{\Alpha}{\mrm{ A }} \renewcommand{\alpha}{\ensuremath{ \old@alpha }} % \let\old@beta\beta \newcommand{\Beta}{\mrm{ B }} \renewcommand{\beta}{\ensuremath{ \old@beta }} % \let\old@Gamma\Gamma \let\old@gamma\gamma \renewcommand{\Gamma}{\ensuremath{ \old@Gamma }} \renewcommand{\gamma}{\ensuremath{ \old@gamma }} % \let\old@Delta\Delta \let\old@delta\delta \renewcommand{\Delta}{\ensuremath{ \old@Delta }} \renewcommand{\delta}{\ensuremath{ \old@delta }} % \let\old@epsilon\epsilon \let\old@varepsilon\varepsilon \newcommand{\Epsilon}{\mrm{ E }} \renewcommand{\epsilon}{\ensuremath{ \old@epsilon }} \renewcommand{\varepsilon}{\ensuremath{ \old@varepsilon }} % \let\old@zeta\zeta \newcommand{\Zeta}{\mrm{ Z }} \renewcommand{\zeta}{\ensuremath{ \old@zeta }} % \let\old@eta\eta \newcommand{\Eta}{\mrm{ H }} \renewcommand{\eta}{\ensuremath{ \old@eta }} % \let\old@Theta\Theta \let\old@theta\theta \let\old@vartheta\vartheta \renewcommand{\Theta}{\ensuremath{ \old@Theta }} \renewcommand{\theta}{\ensuremath{ \old@theta }} \renewcommand{\vartheta}{\ensuremath{ \old@vartheta }} % \let\old@iota\iota \newcommand{\Iota}{\mrm{ I }} \renewcommand{\iota}{\ensuremath{ \old@iota }} % \let\old@kappa\kappa \newcommand{\Kappa}{\mrm{ K }} \renewcommand{\kappa}{\ensuremath{ \old@kappa }} % \let\old@Lambda\Lambda \let\old@lambda\lambda \renewcommand{\Lambda}{\ensuremath{ \old@Lambda }} \renewcommand{\lambda}{\ensuremath{ \old@lambda }} % \let\old@mu\mu \newcommand{\Mu}{\mrm{ M }} \renewcommand{\mu}{\ensuremath{ \old@mu }} % \let\old@nu\nu \newcommand{\Nu}{\mrm{ N }} \renewcommand{\nu}{\ensuremath{ \old@nu }} % \let\old@Xi\Xi \let\old@xi\xi \renewcommand{\Xi}{\ensuremath{ \old@Xi }} \renewcommand{\xi}{\ensuremath{ \old@xi }} % \newcommand{\Omicron}{\mrm{ O }} \newcommand{\omicron}{\mit{ o }} % \let\old@Pi\Pi \let\old@pi\pi \let\old@varpi\varpi \renewcommand{\Pi}{\ensuremath{ \old@Pi }} \renewcommand{\pi}{\ensuremath{ \old@pi }} \renewcommand{\varpi}{\ensuremath{ \old@varpi }} % \let\old@rho\rho \let\old@varrho\varrho \newcommand{\Rho}{\mrm{ P }} \renewcommand{\rho}{\ensuremath{ \old@rho }} \renewcommand{\varrho}{\ensuremath{ \old@varrho }} % \let\old@Sigma\Sigma \let\old@sigma\sigma \let\old@varsigma\varsigma \renewcommand{\Sigma}{\ensuremath{ \old@Sigma }} \renewcommand{\sigma}{\ensuremath{ \old@sigma }} \renewcommand{\varsigma}{\ensuremath{ \old@varsigma }} % \let\old@tau\tau \newcommand{\Tau}{\mrm{ T }} \renewcommand{\tau}{\ensuremath{ \old@tau }} % \let\old@Upsilon\Upsilon \let\old@upsilon\upsilon \renewcommand{\Upsilon}{\ensuremath{ \old@Upsilon }} \renewcommand{\upsilon}{\ensuremath{ \old@upsilon }} % \let\old@Phi\Phi \let\old@phi\phi \let\old@varphi\varphi \renewcommand{\Phi}{\ensuremath{ \old@Phi }} \renewcommand{\phi}{\ensuremath{ \old@phi }} \renewcommand{\varphi}{\ensuremath{ \old@varphi }} % \let\old@chi\chi \newcommand{\Chi}{\mrm{ X }} \renewcommand{\chi}{\ensuremath{ \old@chi }} % \let\old@Psi\Psi \let\old@psi\psi \renewcommand{\Psi}{\ensuremath{ \old@Psi }} \renewcommand{\psi}{\ensuremath{ \old@psi }} % \let\old@Omega\Omega \let\old@omega\omega \renewcommand{\Omega}{ \ensuremath{ \old@Omega }} \renewcommand{\omega}{ \ensuremath{ \old@omega }} \makeatother \NewDocumentEnvironment{eqn}{ O{} m }{% \begin{IEEEeqnarray}[#1]{#2}% }{\end{IEEEeqnarray}} \NewDocumentEnvironment{eqn*}{ O{} m }{% \begin{IEEEeqnarray*}[#1]{#2}% }{\end{IEEEeqnarray*}} \NewDocumentEnvironment{eqnbox}{ O{} O{b} o m }{% \IfNoValueTF{#3}{% \begin{IEEEeqnarraybox}[#1][#2]{#4}% }{% \begin{IEEEeqnarraybox}[#1][#2][#3]{#4}% }% }{\end{IEEEeqnarraybox}} \NewDocumentEnvironment{eqnbox*}{ O{} O{b} o m }{% \IfNoValueTF{#3}{% \begin{IEEEeqnarraybox*}[#1][#2]{#4}% }{% \begin{IEEEeqnarraybox*}[#1][#2][#3]{#4}% }% }{\end{IEEEeqnarraybox*}} \newcommand{\bC}{\mbb{ C }} \newcommand{\bN}{\mbb{ N }} \newcommand{\bQ}{\mbb{ Q }} \newcommand{\bR}{\mbb{ R }} \newcommand{\bZ}{\mbb{ Z }} \newcommand{\cB}{\mcl{ B }} \newcommand{\dd}[1]{\ensuremath{ \mrm{ d } #1 }} \newcommand{\dv}[2][v]{\ensuremath{ \frac{ \dd{ #2 } }{ \dd{ #1 } } }} \newcommand{\prth}[1]{\ensuremath{ \left( #1 \right) }} \newcommand{\brck}[1]{\ensuremath{ \left[ #1 \right] }} \newcommand{\crbr}[1]{\ensuremath{ \left\{ #1 \right\} }} \newcommand{\floor}[1]{\ensuremath{ \left\lfloor #1 \right\rfloor }} \newcommand{\ceil}[1]{\ensuremath{ \left\lceil #1 \right\rceil }} \newcommand{\abs}[1]{\ensuremath{ \left\lvert #1 \right\rvert }} \newcommand{\norm}[1]{\ensuremath{ \left\lVert #1 \right\rVert }} \newcommand{\eval}[3]{\ensuremath{ \left. #1 \right\vert_{ #2 }^{ #3 } }} \newcommand{\applMat}[2][ \cB ]{\ensuremath{ \brck{ #2 }_{ #1 } }} \newcommand{\func}[3]{\ensuremath{ #1 \colon #2 \to #3 }} \newcommand{\vfunc}[5]{\ensuremath{ \func{ #1 }{ #2 }{ #3 }, \quad #4 \longmapsto #5 }} \newcommand{\tSup}[1]{\textsuperscript{#1}} \newcommand{\pr}{\ensuremath{ ^\prime }} \newcommand{\bBox}{\ensuremath{ \Box }} \newcommand{\bCirc}{\ensuremath{ \medcircle }} % Custom underline, taken from https://alexwlchan.net/ \renewcommand{\ULdepth}{0.15em} \contourlength{0.1em} \newcommand{\myul}[1]{\uline{\phantom{#1}}\llap{\contour{bgcolor}{#1}}} % Change color definitions (for TeXit to not change the display) \definecolor{white}{RGB}{ 255, 254, 255 } \definecolor{black}{RGB}{ 1, 0, 0 } % Other color definitions \definecolor{bgcolor}{RGB}{ 1, 0, 0 } \definecolor{txtcolor}{RGB}{ 255, 254, 255 } %%%%%%%%%%%%%%%%%%%%%%%