1 % -*- mode: latex; mode: reftex; mode: auto-fill; mode: flyspell; coding: utf-8; tex-command: "pdflatex.sh" -*-
3 \documentclass[oneside,11pt]{memoir}
9 \newlength{\captionheight}
12 \usepackage[us]{datetime}
13 \newdateformat{dotdate}{\THEYEAR.\twodigit{\THEMONTH}.\twodigit{\THEDAY}}
16 \def\breakforlittle{\\}
22 \setlist[itemize]{leftmargin=0pt,itemindent=1em,itemsep=2ex}
23 \setlist{nosep} % or \setlist{noitemsep} to leave space around whole list
25 \usepackage[utf8]{inputenc}
26 \usepackage[T1]{fontenc}
27 \usepackage[osf]{libertine}
28 \usepackage{microtype}
34 bookmarksnumbered=false,
43 hypertexnames=false, % to avoid errors with autonum
44 ]{hyperref} % PDF meta-information specification
46 %\usepackage{cleveref}
53 \usepackage{lipsum}% just to generate text for the example
59 innerbottommargin=0pt,
68 %% \usepackage[object=vectorian]{pgfornament}
72 %% \centerline{\pgfornament[anchor=center,ydelta=0pt,width=2cm]{82}}
77 \AddToHook{cmd/section/before}{\clearpage}
78 \usepackage[section]{placeins}
81 \def\wordfig{Figure\xspace}
82 \def\wordeq{Equation\xspace}
83 \def\wordtable{Table\xspace}
84 \def\wordchap{Chapter\xspace}
87 \let\oldendcenter\endcenter
88 \renewenvironment{center}{\setlength\topsep{0pt}\oldcenter}{\oldendcenter}
91 \NewEnviron{hardcenter}{\makebox[\textwidth][c]{\BODY}}
93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100 \usepackage{mleftright}
102 \newcommand{\setmuskip}[2]{#1=#2\relax}
103 \setmuskip{\thinmuskip}{1.5mu} % by default it is equal to 3 mu
104 \setmuskip{\medmuskip}{2mu} % by default it is equal to 4 mu
105 \setmuskip{\thickmuskip}{3.5mu} % by default it is equal to 5 mu
108 \DeclareFontEncoding{LS1}{}{}
109 \DeclareFontSubstitution{LS1}{stix}{m}{n}
110 \DeclareMathAlphabet{\mathcal}{LS1}{stixscr}{m}{n}
113 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115 \newcommand{\eqnumber}{\MakeLinkTarget{equation}\text{(\theequation)}}
117 \newcommand{\inputgenerated}[1]{%
118 \IfFileExists{#1}{\input{#1}}{%
119 \errmessage{Cannot find "#1", compile with -shell-escape}\stop}%
122 %\newcommand{\gradient}[2]{{\nabla\!}_{#1 \mid #2}}
123 \newcommand{\gradient}[2]{{\nabla\!#1}_{\mid #2}}
125 \def\given{\,\middle\vert\,}
126 \newcommand{\proba}{{P}}
127 \newcommand{\seq}{{S}}
128 \newcommand{\expect}{\mathds{E}}
129 \newcommand{\variance}{\mathds{V}}
130 \newcommand{\empexpect}{\hat{\mathds{E}}}
131 \newcommand{\mutinf}{\mathds{I}}
132 \newcommand{\empmutinf}{\hat{\mathds{I}}}
133 \newcommand{\entropy}{\mathds{H}}
134 \newcommand{\empentropy}{\hat{\mathds{H}}}
135 \newcommand{\ganG}{\mathbf{G}}
136 \newcommand{\ganD}{\mathbf{D}}
137 \newcommand{\ganF}{\mathbf{F}}
139 \newcommand{\dkl}{\mathds{D}_{\mathsf{KL}}}
140 \newcommand{\djs}{\mathds{D}_{\mathsf{JS}}}
142 \newcommand*{\vertbar}{\rule[-1ex]{0.5pt}{2.5ex}}
143 \newcommand*{\horzbar}{\rule[.5ex]{2.5ex}{0.5pt}}
145 \def\positionalencoding{\operatorname{pos-enc}}
146 \def\concat{\operatorname{concat}}
147 \def\crossentropy{\LL_{\operatorname{ce}}}
149 \def\embedding{\operatorname{embed}}
150 \def\mha{\operatorname{mha}}
151 \def\layernorm{\operatorname{layernorm}}
152 \def\batchnorm{\operatorname{batchnorm}}
153 \def\fullyconnected{\operatorname{fully-conn}}
154 \def\softargmax{\operatorname{softargmax}}
155 \def\selfattention{\operatorname{self-att}}
156 \def\crossattention{\operatorname{cross-att}}
157 \def\ffw{\operatorname{f{}fw}}
158 \def\attention{\operatorname{att}}
159 \def\relu{\operatorname{relu}}
160 \def\gelu{\operatorname{gelu}}
161 \def\dropout{\operatorname{dropout}}
162 \def\resblock{\operatorname{resblock}}
163 \def\dresblock{\operatorname{dresblock}}
164 \def\reshape{\operatorname{reshape}}
165 \def\convtwod{\operatorname{conv-2d}}
166 \def\maxpool{\operatorname{maxpool}}
167 \def\avgpool{\operatorname{avgpool}}
168 %\def\samax{\Upsilon}
169 %\def\samax{\operatorname{samax}}
170 \def\sigmoid{\operatorname{sigm}}
171 \def\sample{\operatorname{sample}}
172 \def\diag{\operatorname{diag}}
173 \def\sign{\operatorname{sign}}
174 \def\argmax{\operatornamewithlimits{argmax}}
175 \def\argmin{\operatornamewithlimits{argmin}}
177 %\usepackage{oldgerm}
181 \newcommand{\adaptedscale}[1]{#1}
183 %\newcommand{\li}[1]{^{\textgoth{#1}}}
184 \newcommand{\li}[1]{^{\scalebox{.5}{\textbf{#1}}}}
185 %% \newcommand{\li}[1]{^{\textbf{#1}}}
186 %\newcommand{\li}[1]{{|#1}}
187 \newcommand{\DATAVAR}{\mathbf{{\cal D}}}
188 \newcommand{\DATAVAL}{\mathbf{d}}
189 \newcommand{\BD}{\mathbf{D}}
190 \newcommand{\LL}{\mathcal{L}}
191 \newcommand{\Ll}{\mathcal{l}}
192 \newcommand{\RR}{\mathbb{R}}
193 \newcommand{\Lh}{\mathcal{h}}
194 \newcommand{\transpose}{^{\top}}
196 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
198 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201 \usetikzlibrary{arrows,arrows.meta,calc}
202 \usetikzlibrary{patterns,backgrounds}
203 \usetikzlibrary{positioning,fit}
204 \usetikzlibrary{shapes.geometric,shapes.multipart}
205 \usetikzlibrary{patterns.meta,decorations.pathreplacing,calligraphy}
206 \usetikzlibrary{tikzmark}
207 \usetikzlibrary{decorations.pathmorphing}
209 % remove the "There is no ... in font nullfont!" errors
210 \AtBeginEnvironment{tikzpicture}{\tracinglostchars=0\relax}
215 \definecolor{operatorcolor}{rgb}{0.95,0.95,1.00}
216 \definecolor{paramcolor}{rgb}{0.8,0.8,1.0}
226 \newlength{\layergap}
227 \setlength{\layergap}{2pt}
228 \newlength{\layerthickness}
229 \setlength{\layerthickness}{12pt}
230 \newlength{\layerwidth}
231 \setlength{\layerwidth}{4.5em}
233 \newlength{\diminfoshift}
234 \setlength{\diminfoshift}{70pt}
237 >={Straight Barb[angle'=80,scale=\adaptedscale{1.2}]},
239 %% background rectangle/.style={fill=paper},
240 %% show background rectangle,
241 %every text node part/.style={align=center},
242 %rounded corners=0.5pt,
243 curly brace/.style={sharp corners,very thick,decoration={calligraphic brace,amplitude=0.20cm},decorate},
246 %% on layer=background,
248 draw=white,line width=2pt,-,%shorten <=1pt,shorten >=1pt,
251 operator/.style={draw=black!30,fill=operatorcolor,inner sep=1pt},
252 next/.style={above=##1\layergap of \tikzlastnode},
254 prev/.style={below=##1\layergap of \tikzlastnode},
256 var/.style={inner sep=2pt},
258 layer/.style={operator,minimum width=\layerwidth,minimum height=\layerthickness,text depth=1pt,text height=1.3ex},
259 layer small/.style={layer,minimum width=\layerthickness},
260 layer large/.style={layer,minimum height=1.5\layerthickness},
261 layer very large/.style={layer,minimum height=1.75\layerthickness},
263 draw=black,line width=0.4pt,dash pattern=on 0.4pt off 2pt,
264 %% draw=black!50,line width=0.2pt,-,
265 shorten >=2pt,shorten <=2pt,
267 block definition/.style={draw=black,inner sep=2\layergap,dash pattern=on 2.5pt off 0.5pt},
270 inner sep=\layergap, dash pattern=on 2.5pt off 0.8pt,
274 ]south east:$\times ##1$},
281 ($(path picture bounding box.south west)+(1pt,6pt)$)--($(path picture bounding box.south east)+(-1pt,6pt)$)
283 node[midway,yshift=-15.5pt] {\scalebox{.5}{##1}};
290 %% preaction={fill=white},
291 %% pattern color=black!15,
293 meta param/.style={label={[%
298 ]south east:{\tiny\color{blue}##1}}},
302 \newcommand{\diminfo}[3]{%
303 \coordinate (t) at ($(#2.north)+(\diminfoshift,0.5\layergap)$);
304 \node[inner sep=0pt,yshift=-0.5pt] (s) at (#1.north east-|t) {\tiny #3};
305 \draw[info line] (#1.north east|-s)--(s);
308 \newcommand{\defop}[2]{%
309 %% \coordinate (BL) at ($(#1.north)+(-0.49\textwidth, 4\layergap)$);
310 %% \coordinate (BR) at ($(#1.north)+( 0.49\textwidth, 4\layergap)$);
311 %% \coordinate (TL) at ($(#2.south-|#1)+(-0.49\textwidth,-4\layergap)$);
312 %% \coordinate (TR) at ($(#2.south-|#1)+( 0.49\textwidth,-4\layergap)$);
313 \begin{pgfinterruptboundingbox}
314 \node[anchor=south west,inner sep=2pt] (label) at #1 {#2};
315 \draw[decorate,decoration={coil,amplitude=0.5pt,segment length=2pt,aspect=0}] (label.south west) -- (label.south east);
316 \end{pgfinterruptboundingbox}
319 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 \pgfonlayer{#1}\begingroup
325 \aftergroup\endpgfonlayer
330 %% fix for bb computation of double wires.
331 %% from https://tex.stackexchange.com/questions/130456/tikz-double-lines-are-shifted
333 only coordinates are relevant/.is choice,
334 only coordinates are relevant/.default=true,
335 only coordinates are relevant/true/.code={%
336 \tikz@addmode{\pgf@relevantforpicturesizefalse}},
337 only coordinates are relevant/false/.code={%
338 \tikz@addmode{\pgf@relevantforpicturesizetrue}}
342 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
345 % extract interval `start:end` values
346 \def\get@interval@start#1:#2\@nil{#1}
347 \def\get@interval@end#1:#2\@nil{#2}
349 \def\domainmin{\expandafter\get@interval@start\tikz@plot@domain\@nil}
350 \def\domainmax{\expandafter\get@interval@end\tikz@plot@domain\@nil}
352 \def\rangemin{\expandafter\get@interval@start\tikz@plot@range\@nil}
353 \def\rangemax{\expandafter\get@interval@end\tikz@plot@range\@nil}
356 \usepackage{pgfplots}
357 \usepgfplotslibrary{patchplots,colormaps}
358 \pgfplotsset{compat = newest}
360 \newcommand{\mygrid}[5]{%
361 \pgfmathsetmacro{\xmin}{#1+1}
362 \pgfmathsetmacro{\xmax}{#1+#3-1}
363 \pgfmathsetmacro{\ymin}{#2+1}
364 \pgfmathsetmacro{\ymax}{#2+#4-1}
365 \ifthenelse{\equal{#5}{}}
366 {\draw (#1,#2) rectangle ++(#3,#4);}
367 {\draw[fill=#5] (#1,#2) rectangle ++(#3,#4);}
368 \foreach \x in {\xmin,...,\xmax}{
369 \draw (\x,#2)-- ++(0,#4);
371 \foreach \y in {\ymin,...,\ymax}{
372 \draw (#1,\y)-- ++(#3,0);
376 \newcommand{\amatrix}[7]{%
377 \begin{tikzpicture}[scale=\adaptedscale{0.2}]
378 \ifthenelse{\equal{#7}{}}
380 {\draw[draw=none,fill=#7] (#3,#4) rectangle ++(#5,#6);}
381 \mygrid{0}{0}{#1}{#2}{}
385 \newcommand{\gridcube}[3]{% 7,4,6
387 \foreach \b in { 0,...,#2 }{
388 \draw (0,\b,0)--++(#1,0,0)--++(0,0,#3);
391 \foreach \d in { 0,...,#1 }{
392 \draw (\d,0,0)--++(0,#2,0)--++(0,0,#3);
395 \foreach \hw in { 0,...,#3 }{
396 \draw (0,0,\hw)++(#1,0,0)--++(0,#2,0)--++(-#1,0,0);
400 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
402 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404 \usepackage[square]{natbib}
405 \bibliographystyle{plainnatmodified}
407 \newcommand{\biburl}[1]{\href{#1}{pdf}}
409 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
411 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
413 \setlength{\cftbeforepartskip}{3ex}
414 \setlength{\cftbeforechapterskip}{1.0ex}
415 \setlength{\cftbeforesectionskip}{0.1ex}
417 %% \setsecnumdepth{subsection}
418 %% \renewcommand{\thesubsection}{\alph{subsection}\,-\hskip -12pt\,}
419 %% \setsecnumformat{\csname the#1\endcsname :}
421 \cftsetindents{part}{0em}{1.8em}
422 \cftsetindents{chapter}{0em}{1.8em}
423 \cftsetindents{section}{1.8em}{2.2em}
425 \setlength{\parindent}{0cm}
426 \setlength{\parskip}{2ex}
428 \setstocksize{15cm}{8cm}
429 \settrimmedsize{\stockheight}{\stockwidth}{*}
430 \setlrmarginsandblock{8pt}{8pt}{*}
431 \setulmarginsandblock{14pt}{26pt}{*}
432 \setheadfoot{14pt}{14pt}
433 \setheaderspaces{*}{*}{*}
434 %% \setlength{\headsep}{0pt}
435 %% \setlength{\headheight}{0pt}
437 %% \newcommand\ignoreme[1]{}
438 %% \setsecheadstyle{\ignoreme}
440 %% \makepagestyle{littlebook}
441 %% \makeoddhead{littlebook}{}{}{}
442 %% \makeevenhead{littlebook}{}{}{}
443 \newcommand{\myfooter}{\footnotesize {\thepage}}
444 %\newcommand{\myfooter}{\footnotesize {\thepage \hskip 0.8em \raisebox{-2pt}{\vline height 8pt} \hskip 0.4em \thelastpage}}
445 %% \makeoddfoot{littlebook}{}{\myfooter}{}
446 %% \makeevenfoot{littlebook}{}{\myfooter}{}
447 \makeoddfoot{plain}{}{\myfooter}{}
448 \makeevenfoot{plain}{}{\myfooter}{}
451 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
453 \renewcommand{\partnamefont}{\centering\sffamily\scshape\Huge}
454 \renewcommand{\partnumfont}{\sffamily\Huge}
455 \renewcommand{\parttitlefont}{\centering\sffamily\scshape\Huge}
456 \renewcommand{\beforepartskip}{\vspace*{\stretch{3}}}
457 \renewcommand{\afterpartskip}{%
458 \vspace*{\stretch{4}}
462 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
464 \makechapterstyle{Tufte}{
465 \renewcommand{\chapterheadstart}{\null \vskip1.5\onelineskip}
466 \renewcommand{\printchaptername}{\large\sffamily\itshape\chaptername}
467 \renewcommand{\printchapternum}{\LARGE\thechapter \\}
468 \renewcommand{\afterchapternum}{}
469 \renewcommand{\printchaptertitle}[1]{
472 \renewcommand{\afterchaptertitle}{
477 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 \setsecheadstyle{\sethangfrom{\noindent ##1}\raggedright\sffamily\itshape\Large}
480 \setbeforesecskip{-.9\onelineskip}
481 \setaftersecskip{.75\onelineskip}
483 \setsubsecheadstyle{\sethangfrom{\noindent ##1}\raggedright\sffamily\itshape\large}
484 \setbeforesubsecskip{\onelineskip}
485 \setaftersubsecskip{.65\onelineskip}
487 \setsubsubsecheadstyle{\sethangfrom{\noindent ##1}\raggedright\sffamily\itshape}
488 \setbeforesubsubsecskip{-.5\onelineskip}
489 \setaftersubsubsecskip{.1\onelineskip}
491 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
493 \captiontitlefont{\itshape\small}
494 \captionnamefont{\small}
495 \newcommand{\likecaption}{\color{black}\itshape\small}
499 \checkandfixthelayout
501 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
503 \newcounter{nbdrafts}
504 \setcounter{nbdrafts}{0}
506 \newcommand{\checknbdrafts}{
507 \ifnum \thenbdrafts > 0
508 \@latex@warning@no@line{*WARNING* The document contains \thenbdrafts \space draft note(s)}
510 \newcommand{\todo}[1]{\addtocounter{nbdrafts}{1}{\color{red} #1}}
512 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
513 \definecolor{paper}{rgb}{0.95,0.95,0.95}
514 \definecolor{math}{rgb}{0.0,0.5,0.0}
515 %\definecolor{links}{rgb}{0.0,0.2,0.5}
516 \definecolor{links}{rgb}{0.0,0.2,0.85}
517 %\definecolor{hlcolor}{rgb}{0.8,1.0,0.85}
519 \definecolor{blue}{rgb}{0.3,0.5,0.85}
520 \definecolor{red}{rgb}{0.65,0.0,0.0}
521 \definecolor{green}{rgb}{0.0,0.50,0.0}
522 \definecolor{dimmed}{rgb}{0.8,0.8,0.8}
523 \definecolor{orange}{rgb}{1.0,0.75,0.0}
525 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526 % Pretty underline, taken from
527 % https://tex.stackexchange.com/questions/36894/underline-omitting-the-descenders
535 \cs_new:Npn \white_text:n #1
537 \fp_set:Nn \l_tmpa_fp {#1 * .01}
538 \llap{\textcolor{white}{\the\SOUL@syllable}\hspace{\fp_to_decimal:N \l_tmpa_fp em}}
539 \llap{\textcolor{white}{\the\SOUL@syllable}\hspace{-\fp_to_decimal:N \l_tmpa_fp em}}
541 \NewDocumentCommand{\whiten}{ m }
543 \int_step_function:nnnN {1}{1}{#1} \white_text:n
547 \NewDocumentCommand{ \prettyul }{ D<>{5} O{0.2ex} O{0.1ex} +m } {%
550 \def\SOUL@uleverysyllable{%
551 \setbox0=\hbox{\the\SOUL@syllable}%
553 \SOUL@ulunderline{\phantom{\the\SOUL@syllable}}%
557 \SOUL@setkern\SOUL@charkern
562 \SOUL@setkern\SOUL@charkern
572 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
575 \usepackage{xcolor, soul}
577 \definecolor{hlcolor}{rgb}{1.0,1.0,0.5}
579 %% \definecolor{ulcolor}{rgb}{0.65,0.65,0.65}
580 %% \setulcolor{ulcolor}
582 %% \index{Attention Layer@\hypertarget{Attention Layer.ind}{}Attention Layer}
583 %% \href{\#Attention Layer.ind}%
585 %% \newcommand{\keyterm}[2][]{%
586 %% \ifthenelse{\equal{#1}{}}
587 %% {\prettyul[2pt]{#2}\linkedindex{#2}}
588 %% {\prettyul[2pt]{#2}\linkedindex{#1}}%
591 \newcommand{\keytermold}[2][]{%
592 % \BeginAccSupp{method=plain,ActualText={#2}}%
593 \ifthenelse{\equal{#1}{}}
594 {\prettyul[2pt]{#2}\index{#2}}
595 {\prettyul[2pt]{#2}\index{#1}}%
601 \newcommand{\keyterm}[2][]{%
603 %% \prettyul[2pt]{#2}%
604 \ifthenelse{\equal{#1}{}}{\index{#2}}{\index{#1}}%
607 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
609 \newcommand{\gizmo}{%
610 \begin{tikzpicture}[scale=0.25]
611 \draw[draw=none,fill=red] (0,0) rectangle ++(1,1);
612 \draw[draw=none,fill=blue] (1,0) rectangle ++(1,1);
613 \draw[draw=none,fill=blue] (0,1) rectangle ++(1,1);
614 \draw[draw=none,fill=red] (1,1) rectangle ++(1,1);
618 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%