@ -0,0 +1,15 @@ | |||
/.site | |||
/.store | |||
/.stack-work | |||
/.vscode | |||
/node_modules | |||
/uni | |||
/portfolio.md | |||
/fonts | |||
/css/fonts | |||
/.mailmap | |||
.katex_cache |
@ -0,0 +1,27 @@ | |||
name: blag | |||
version: 0.1.0.0 | |||
build-type: Simple | |||
cabal-version: >= 1.10 | |||
executable site | |||
main-is: site.hs | |||
build-depends: base | |||
, text | |||
, hsass | |||
, aeson | |||
, hakyll | |||
, pandoc | |||
, binary | |||
, process | |||
, deepseq | |||
, hashable | |||
, directory | |||
, containers | |||
, bytestring | |||
, uri-encode | |||
, hakyll-sass | |||
, skylighting | |||
, pandoc-types | |||
, unordered-containers | |||
ghc-options: -threaded | |||
default-language: Haskell2010 |
@ -0,0 +1,98 @@ | |||
$code-bg: hsl(230,1%,98%); | |||
$code-fg: #ABB2BF; | |||
$code-red: #D65122; | |||
$code-red-br: #AE3B36; | |||
$code-green: #88B966; | |||
$code-yellow: #DEB468; | |||
$code-orange: #C58853; | |||
$code-blue: #519DEB; | |||
$code-pink: #C678DD; | |||
$code-cyan: #48A8B5; | |||
$code-white: #ABB2BF; | |||
$code-grey: #7F848E; | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-regular.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-regular.ttf') format('truetype'); | |||
} | |||
body { | |||
margin: 0; | |||
background-color:$code-bg; | |||
color:#ABB2BF; | |||
} | |||
html { | |||
background-color: $code-bg; | |||
color:#ABB2BF; | |||
} | |||
pre.Agda { | |||
margin: 0; | |||
padding: 1em; | |||
background-color: $code-bg; | |||
color: $code-fg; | |||
} | |||
@keyframes highlight { | |||
0% { | |||
background-color: #F5DEB3; | |||
} | |||
100% { | |||
background-color: $code-bg; | |||
} | |||
} | |||
/* Aspects. */ | |||
.Agda { | |||
.Comment { color: $code-grey; } | |||
.Background { background-color: $code-bg; } | |||
.Markup { color: $code-fg; } | |||
.Keyword { color: $code-orange; } | |||
.String { color: $code-red; } | |||
.Number { color: $code-pink; } | |||
.Symbol { color: $code-fg; } | |||
.PrimitiveType { color: $code-blue; } | |||
.Pragma { color: $code-fg; } | |||
/* NameKinds. */ | |||
.Bound { color: $code-fg; } | |||
.Generalizable { color: $code-fg; } | |||
.InductiveConstructor { color: $code-green; } | |||
.CoinductiveConstructor { color: $code-green; } | |||
.Datatype { color: $code-blue; } | |||
.Field { color: #F570B7; } | |||
.Function { color: $code-blue; } | |||
.Module { color: $code-pink; } | |||
.Postulate { color: $code-blue; } | |||
.Primitive { color: $code-blue; } | |||
.Record { color: $code-blue; } | |||
/* OtherAspects. */ | |||
.UnsolvedMeta { color: $code-fg; background: yellow } | |||
.UnsolvedConstraint { color: $code-fg; background: yellow } | |||
.TerminationProblem { color: $code-fg; background: #FFA07A } | |||
.IncompletePattern { color: $code-fg; background: #F5DEB3 } | |||
.Error { color: red; text-decoration: underline } | |||
.TypeChecks { color: $code-fg; background: #ADD8E6 } | |||
.Deadcode { color: $code-fg; background: #808080 } | |||
.ShadowingInTelescope { color: $code-fg; background: #808080 } | |||
/* Standard attributes. */ | |||
a { text-decoration: none } | |||
a[href]:hover { | |||
text-decoration: 2px #B4EEB4 underline dotted; | |||
} | |||
a[href]:target { | |||
animation: highlight 2.5s; | |||
} | |||
background-color: #282C34; | |||
font-family: 'Iosevka', 'Fantasque Sans Mono', 'Roboto Mono', monospace; | |||
font-weight: 400; | |||
font-size: 16pt; | |||
} |
@ -0,0 +1,528 @@ | |||
@import "vars.scss"; | |||
@mixin center-that-bitch { | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
} | |||
html { | |||
min-height: 100%; | |||
height: 100%; | |||
max-width: 100%; | |||
margin: 0; | |||
overflow-x: clip; | |||
} | |||
body { | |||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; | |||
width: 100%; | |||
@include center-that-bitch; | |||
margin: 0; | |||
color: $bluegray-900; | |||
font-size: $font-size; | |||
overflow-x: clip; | |||
} | |||
body > header { | |||
background-color: $purple-600; | |||
display: flex; | |||
height: $nav-height; | |||
width: 100%; | |||
z-index: 999; | |||
position: fixed; | |||
justify-content: space-between; | |||
align-items: center; | |||
padding-left: 1em; | |||
padding-right: 1em; | |||
border-bottom: 3px solid $purple-700; | |||
box-sizing: border-box; | |||
div, nav > a { | |||
height: $nav-height; | |||
padding-left: 0.3em; | |||
padding-right: 0.3em; | |||
display: flex; | |||
align-items: center; | |||
} | |||
div:hover, nav > a:hover { | |||
background-color: $purple-500; | |||
transition: background-color 0.3s ease-in-out; | |||
} | |||
a { | |||
color: white; | |||
font-size: $font-size * 1.2; | |||
text-decoration: none; | |||
} | |||
nav { | |||
display: flex; | |||
align-items: center; | |||
gap: 0.5em; | |||
} | |||
} | |||
@mixin left-bordered-block($color) { | |||
padding-left: 1em; | |||
padding-top: 0.2em; | |||
padding-bottom: 0.2em; | |||
border-left: 5px dashed $color; | |||
} | |||
@mixin material { | |||
padding: 1em; | |||
margin-top: 1em; | |||
margin-bottom: 1em; | |||
box-shadow: 2px 2px 6px black; | |||
border-radius: 10px; | |||
} | |||
main { | |||
max-width: 100ch; | |||
width: 100%; | |||
margin: 0px auto 0px auto; | |||
flex: 1 0 auto; | |||
padding: 2ch; | |||
padding-top: $nav-height; | |||
box-sizing: border-box; | |||
div#title h2 { | |||
display: none; | |||
} | |||
div#post-toc-container { | |||
aside#toc { | |||
display: none; | |||
} | |||
article { | |||
grid-column: 2; | |||
width: 100%; | |||
line-height: 1.5; | |||
} | |||
} | |||
div#post-info { | |||
font-style: italic; | |||
line-height: 1.2; | |||
@include left-bordered-block($bluegray-500); | |||
} | |||
} | |||
div.warning { | |||
@include material; | |||
background-color: $red-200; | |||
} | |||
figure.wraparound { | |||
float: right; | |||
width: auto; | |||
margin-left: 2em; | |||
} | |||
figure { | |||
overflow-x: auto; | |||
overflow-y: clip; | |||
width: 100%; | |||
margin: auto; | |||
@include center-that-bitch; | |||
figcaption { | |||
margin-top: 0.3em; | |||
display: inline-block; | |||
text-align: center; | |||
} | |||
p { | |||
margin: 0; | |||
} | |||
} | |||
ol, ul { | |||
padding-left: 1.2em; | |||
li { | |||
margin-top: 5px; | |||
margin-bottom: 5px; | |||
p { | |||
margin-top: 5px; | |||
margin-bottom: 5px; | |||
} | |||
} | |||
} | |||
.katex-display { | |||
> span.katex { | |||
white-space: normal; | |||
} | |||
} | |||
div.mathpar { | |||
display: flex; | |||
flex-flow: row wrap; | |||
justify-content: center; | |||
align-items: center; | |||
gap: 1em; | |||
> figure { | |||
width: auto; | |||
max-width: 33%; | |||
} | |||
} | |||
div.columns { | |||
blockquote, details.blockquote { | |||
padding-right: 1em; | |||
padding-left: 1em; | |||
padding-top: 0.2em; | |||
padding-bottom: 0.2em; | |||
border: 0; | |||
} | |||
} | |||
code, pre, .sourceCode { | |||
font-size: $font-size; | |||
font-family: 'Iosevka', 'Fantasque Sans Mono', Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; | |||
font-weight: 500; | |||
} | |||
div.sourceCode, pre { | |||
background-color: $code-bg; | |||
color: $code-fg; | |||
flex-grow: 0; | |||
@include material; | |||
overflow-x: auto; | |||
line-height: 1.2; | |||
code { | |||
display: block; | |||
} | |||
> pre { | |||
padding: unset; | |||
margin-top: unset; | |||
margin-bottom: unset; | |||
box-shadow: unset; | |||
margin: 0; | |||
overflow-y: clip; | |||
} | |||
} | |||
p > code { | |||
white-space: nowrap; | |||
} | |||
blockquote, details.blockquote { | |||
@include material; | |||
background-color: $purple-100; | |||
margin-left: 0; | |||
margin-right: 0; | |||
h2 { | |||
margin-top: 0; | |||
} | |||
} | |||
table { | |||
width: 70%; | |||
margin: auto; | |||
border-collapse: collapse; | |||
td, th { | |||
text-align: center; | |||
padding: 0px 1em 0px 1em; | |||
border: 2px solid $purple-400; | |||
} | |||
} | |||
ul#post-list { | |||
list-style-type: none; | |||
display: flex; | |||
flex-direction: column; | |||
.post-list-item { | |||
@include left-bordered-block($yellow-500); | |||
@include material; | |||
margin: 0; | |||
background-color: $yellow-50; | |||
.post-list-header { | |||
margin-top: 0.2em; | |||
display: flex; | |||
justify-content: space-between; | |||
line-height: 14pt; | |||
font-style: italic; | |||
font-size: 10pt; | |||
a { | |||
font-size: 14pt; | |||
font-style: normal; | |||
color: $bluegray-800; | |||
} | |||
} | |||
} | |||
} | |||
div.contact-list { | |||
display: flex; | |||
justify-content: space-evenly; | |||
align-items: stretch; | |||
gap: 3em; | |||
div.contact-card { | |||
background-color: $purple-200; | |||
@include material; | |||
width: 33%; | |||
max-width: 33%; | |||
flex-grow: 1; | |||
p { | |||
margin: 0; | |||
} | |||
div.contact-header { | |||
// I really hate Pandoc sometimes | |||
display: flex; | |||
align-items: center; | |||
gap: 1em; | |||
margin-bottom: 10px; | |||
img { | |||
height: 48px; | |||
clip-path: url(#squircle); | |||
} | |||
span.username { | |||
font-size: 16pt; | |||
} | |||
} | |||
} | |||
} | |||
@media only screen and (max-width: 450px) { | |||
body > header { | |||
div#logo { | |||
width: 100%; | |||
display: flex; | |||
flex-direction: row; | |||
justify-content: center; | |||
} | |||
nav { | |||
display: none; | |||
} | |||
} | |||
} | |||
@media only screen and (min-width: 1500px) { | |||
.narrow-only { | |||
display: none !important; | |||
} | |||
main { | |||
max-width: 100%; | |||
> div#title { | |||
font-size: 15pt; | |||
h1, h2 { | |||
margin: 0; | |||
} | |||
h2 { | |||
font-style: italic; | |||
font-weight: normal; | |||
display: block; | |||
z-index: 1; | |||
} | |||
margin-top: 0.5em; | |||
margin-bottom: 1em; | |||
@include center-that-bitch; | |||
} | |||
div#post-toc-container { | |||
display: grid; | |||
grid-template-columns: 0.5fr 2fr 0.5fr; | |||
gap: 1em; | |||
aside#toc { | |||
display: block !important; | |||
h3 { @include center-that-bitch; } | |||
div#toc-container { | |||
overflow-x: hidden; | |||
width: 100%; | |||
position: sticky; | |||
top: 2em; | |||
overflow-y: auto; | |||
max-height: 90vh; | |||
bottom: 2em; | |||
ul { | |||
border-left: 2px solid $bluegray-400; | |||
list-style-type: none; | |||
padding-left: 1em; | |||
a { | |||
text-decoration: none; | |||
} | |||
a:hover { | |||
text-decoration: underline; | |||
} | |||
} | |||
} | |||
} | |||
article { | |||
max-width: 100ch; | |||
margin-top: -100px; | |||
margin: auto; | |||
} | |||
} | |||
div.columns { | |||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
gap: 1em; | |||
} | |||
} | |||
} | |||
#index { | |||
padding-top: 4em; | |||
a.ico-left { | |||
img { | |||
clip-path: url(#squircle); | |||
width: 96px; | |||
height: 96px; | |||
} | |||
float: left; | |||
margin-right: 1em; | |||
width: 96px; | |||
height: 96px; | |||
} | |||
a.ico-right { | |||
img { | |||
clip-path: url(#squircle); | |||
width: 96px; | |||
height: 96px; | |||
} | |||
float: right; | |||
margin-left: 1em; | |||
width: 96px; | |||
height: 96px; | |||
} | |||
div#social { | |||
display: flex; | |||
flex-direction: row; | |||
justify-content: center; | |||
flex-wrap: wrap; | |||
width: 100%; | |||
gap: 8px; | |||
img { | |||
width: 48px; | |||
height: 48px; | |||
clip-path: url(#squircle); | |||
transition: width 0.25s, height 0.25s; | |||
&:hover { | |||
width: 54px; | |||
height: 54px; | |||
} | |||
} | |||
a { | |||
filter: drop-shadow(2px 2px 3px rgba(50, 50, 0, 0.5)); | |||
height: 54px; | |||
} | |||
} | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
@media only screen and (min-width: 1500px) { | |||
#index { | |||
display: grid; | |||
grid-template-columns: 0.20fr 0.75fr 0.20fr 1fr 0.20fr; | |||
} | |||
} | |||
details { | |||
margin-top: 1em; | |||
margin-bottom: 1em; | |||
} | |||
// Styles for code | |||
code.kw, span.kw { color: $code-pink; } /* Keyword */ | |||
code.dt, span.dt { color: $code-blue; } /* DataType */ | |||
code.dv, span.dv { color: $code-orange; } /* DecVal */ | |||
code.bn, span.bn { color: $code-orange; } /* BaseN */ | |||
code.fl, span.fl { color: $code-orange; } /* Float */ | |||
code.ch, span.ch { color: $code-green; } /* Char */ | |||
code.st, span.st { color: $code-green; } /* String */ | |||
code.co, span.co { color: $code-grey; } /* Comment */ | |||
code.ot, span.ot { color: $code-green; } /* Other */ | |||
code.al, span.al { color: #ff0000; } /* Alert */ | |||
code.fu, span.fu { color: $code-fg; } /* Function */ | |||
code.er, span.er { color: #ff0000; } /* Error */ | |||
code.wa, span.wa { color: #60a0b0; } /* Warning */ | |||
code.cn, span.cn { color: $code-orange; } /* Constant */ | |||
code.sc, span.sc { color: $code-yellow; } /* SpecialChar */ | |||
code.vs, span.vs { color: $code-blue; } /* VerbatimString */ | |||
code.ss, span.ss { color: $code-green; } /* SpecialString */ | |||
code.va, span.va { color: $code-fg; } /* Variable */ | |||
code.cf, span.cf { color: $code-pink; } /* ControlFlow */ | |||
code.op, span.op { color: $code-green; } /* Operator */ | |||
code.pp, span.pp { color: $code-orange; } /* Preprocessor */ | |||
code.at, span.at { color: $code-green; } /* Attribute */ | |||
code.do, span.do { color: $code-red; } /* Documentation */ | |||
code.an, span.an { color: $code-red; } /* Annotation */ | |||
code.cv, span.cv { color: $code-red; } /* CommentVar */ |
@ -0,0 +1,419 @@ | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-regular.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-regular.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extended.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extended.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-oblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-oblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-oblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-oblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-italic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-italic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 400; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendeditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendeditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-medium.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-medium.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extendedmedium.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedmedium.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-mediumoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-mediumoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-mediumoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-mediumoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedmediumoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedmediumoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedmediumoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedmediumoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-mediumitalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-mediumitalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 500; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendedmediumitalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedmediumitalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-semibold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-semibold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extendedsemibold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedsemibold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-semiboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-semiboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-semiboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-semiboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedsemiboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedsemiboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedsemiboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedsemiboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-semibolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-semibolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 600; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendedsemibolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedsemibolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-bold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-bold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extendedbold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedbold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-boldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-boldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-boldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-boldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-bolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-bolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 700; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendedbolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedbolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extrabold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extrabold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extendedextrabold.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedextrabold.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extraboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extraboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-extraboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extraboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedextraboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedextraboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedextraboldoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedextraboldoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extrabolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extrabolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 800; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendedextrabolditalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedextrabolditalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: normal; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-heavy.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-heavy.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: expanded; | |||
font-style: normal; | |||
src: url('/static/woff2/iosevk-abbie-extendedheavy.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedheavy.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: normal; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-heavyoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-heavyoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: normal; | |||
src: url('/static/woff2/iosevk-abbie-heavyoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-heavyoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: expanded; | |||
font-style: oblique; | |||
src: url('/static/woff2/iosevk-abbie-extendedheavyoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedheavyoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka Oblique'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: expanded; | |||
src: url('/static/woff2/iosevk-abbie-extendedheavyoblique.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedheavyoblique.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: normal; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-heavyitalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-heavyitalic.ttf') format('truetype'); | |||
} | |||
@font-face { | |||
font-family: 'Iosevka'; | |||
font-display: swap; | |||
font-weight: 900; | |||
font-stretch: expanded; | |||
font-style: italic; | |||
src: url('/static/woff2/iosevk-abbie-extendedheavyitalic.woff2') format('woff2'), url('/static/ttf/iosevk-abbie-extendedheavyitalic.ttf') format('truetype'); | |||
} |
@ -0,0 +1,62 @@ | |||
$purple-50: #faf5ff; | |||
$purple-100: #f3e8ff; | |||
$purple-200: #e9d5ff; | |||
$purple-300: #d8b4fe; | |||
$purple-400: #c084fc; | |||
$purple-500: #a855f7; | |||
$purple-600: #9333ea; | |||
$purple-700: #7e22ce; | |||
$purple-800: #6b21a8; | |||
$purple-900: #581c87; | |||
$yellow-50: #fefce8; | |||
$yellow-100: #fef9c3; | |||
$yellow-200: #fef08a; | |||
$yellow-300: #fde047; | |||
$yellow-400: #facc15; | |||
$yellow-500: #eab308; | |||
$yellow-600: #ca8a04; | |||
$yellow-700: #a16207; | |||
$yellow-800: #854d0e; | |||
$yellow-900: #713f12; | |||
$bluegray-50: #f8fafc; | |||
$bluegray-100: #f1f5f9; | |||
$bluegray-200: #e2e8f0; | |||
$bluegray-300: #cbd5e1; | |||
$bluegray-400: #94a3b8; | |||
$bluegray-500: #64748b; | |||
$bluegray-600: #475569; | |||
$bluegray-700: #334155; | |||
$bluegray-800: #1e293b; | |||
$bluegray-900: #0f172a; | |||
$red-50: #fef2f2; | |||
$red-100: #fee2e2; | |||
$red-200: #fecaca; | |||
$red-300: #fca5a5; | |||
$red-400: #f87171; | |||
$red-500: #ef4444; | |||
$red-600: #dc2626; | |||
$red-700: #b91c1c; | |||
$red-800: #991b1b; | |||
$red-900: #7f1d1d; | |||
$nav-height: 48px; | |||
$font-size: 14pt; | |||
$code-bg: #282C34; | |||
$code-fg: #ABB2BF; | |||
$code-red: #D65122; | |||
$code-red-br: #AE3B36; | |||
$code-green: #88B966; | |||
$code-yellow: #DEB468; | |||
$code-orange: #C58853; | |||
$code-blue: #519DEB; | |||
$code-pink: #C678DD; | |||
$code-cyan: #48A8B5; | |||
$code-white: #ABB2BF; | |||
$code-grey: #7F848E; | |||
// foo |
@ -0,0 +1,27 @@ | |||
{ pkgs ? import <nixpkgs> { }, stdenv ? pkgs.stdenv }: | |||
let | |||
site = pkgs.haskellPackages.callCabal2nix "blag-site" ./. { }; | |||
our-texlive = with pkgs; texlive.combine { | |||
inherit (texlive) | |||
collection-basic | |||
collection-latex | |||
xcolor | |||
preview | |||
pgf tikz-cd | |||
mathpazo | |||
varwidth xkeyval standalone | |||
jknapltx; | |||
}; | |||
in | |||
stdenv.mkDerivation { | |||
name = "blag"; | |||
src = ./.; | |||
buildInputs = with pkgs; [ | |||
poppler_utils | |||
rubber | |||
nodePackages.katex | |||
our-texlive | |||
site | |||
]; | |||
} |
@ -0,0 +1,15 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {shift}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {foo}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -1.5) {bar}; | |||
\node (Stk3) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -2.25) {reset}; | |||
\node (Stk3) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -3) {baz}; | |||
\draw [red, very thick, dashed] (-3.6, -2.625) -- (-1.89, -2.625) -- (-1.89, 0.375) -- (-3.6, 0.375) -- cycle; | |||
\draw [arrows={Latex}-] (-4, 0.375) -- (-4, -3.375); | |||
\end{scope} |
@ -0,0 +1,2 @@ | |||
\draw[->,thick] (0,0)--(1,0) node[midway,below]{\large{i}}; | |||
\draw[->,thick] (0,0)--(0,1) node[midway,left]{\large{j}}; |
@ -0,0 +1,3 @@ | |||
\node[draw,circle,label=below:{$\mathrm{base}$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (a0) at (0, -1) {}; | |||
\draw[->] (0, 0) circle (1cm); | |||
\node[] (loop) at (0, 0) {$\mathrm{loop}\ i$}; |
@ -0,0 +1,11 @@ | |||
\node[] (i0j0) at (-1, -1) {x}; | |||
\node[] (i1j0) at (1, -1) {y}; | |||
\node[] (i0j1) at (-1, 1) {x}; | |||
\node[] (i1j1) at (1, 1) {z}; | |||
\node (in) at (0, 0) {}; | |||
\draw[->] (i0j0) -- (i0j1) node [midway] {$a$}; | |||
\draw[->] (i0j0) -- (i1j0) node [midway, below] {$p(i)$}; | |||
\draw[->,dashed] (i0j1) -- (i1j1) node [midway] {}; | |||
\draw[->] (i1j0) -- (i1j1) node [midway, right] {$q(j)$}; |
@ -0,0 +1,4 @@ | |||
\node[draw,circle,label=left:{$i0$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=right:{$i1$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw[->] (i0) -- (i1) node [midway] {$\lambda i. i$}; |
@ -0,0 +1,11 @@ | |||
\node[] (i0j0) at (-1, -1) {a}; | |||
\node[] (i1j0) at (1, -1) {a}; | |||
\node[] (i0j1) at (-1, 1) {a}; | |||
\node[] (i1j1) at (1, 1) {b}; | |||
\node (in) at (0, 0) {$\lambda i j. p (i \land j)$}; | |||
\draw[->] (i0j0) -- (i0j1) node [midway] {$\lambda j. p\ i0$}; | |||
\draw[->] (i0j0) -- (i1j0) node [midway, below] {$\lambda i. p\ i0$}; | |||
\draw[->] (i0j1) -- (i1j1) node [midway] {$p$}; | |||
\draw[->] (i1j0) -- (i1j1) node [midway, right] {$p$}; |
@ -0,0 +1,11 @@ | |||
\node[] (i0j0) at (-1, -1) {a}; | |||
\node[] (i1j0) at (1, -1) {b}; | |||
\node[] (i0j1) at (-1, 1) {b}; | |||
\node[] (i1j1) at (1, 1) {b}; | |||
\node (in) at (0, 0) {$\lambda i j. p (i \lor j)$}; | |||
\draw[->] (i0j0) -- (i0j1) node [midway] {$p$}; | |||
\draw[->] (i0j0) -- (i1j0) node [midway, below] {$p$}; | |||
\draw[->] (i0j1) -- (i1j1) node [midway] {$\lambda i. p\ i1$}; | |||
\draw[->] (i1j0) -- (i1j1) node [midway, right] {$\lambda j. p\ i1$}; |
@ -0,0 +1,4 @@ | |||
\node[draw,circle,label=left:{$a$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=right:{$b$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw[->] (i0) -> (i1) node [midway] {$\lambda i. p(i)$}; |
@ -0,0 +1,4 @@ | |||
\node[draw,circle,label=left:{$b$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=right:{$a$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw[<-] (i0) -> (i1) node [midway] {$\lambda i. p(\neg i)$}; |
@ -0,0 +1,4 @@ | |||
\node[draw,circle,label=left:{$a$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=right:{$a$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw[->] (i0) -> (i1) node [midway] {$\lambda i. a$}; |
@ -0,0 +1,6 @@ | |||
\node[] (i0j1) at (-1, 1) {A}; | |||
\node[] (i1j1) at (1, 1) {C}; | |||
\node[] (i0j0) at (-1, -1) {B}; | |||
\draw[<-] (i0j0) -- (i0j1) node [midway] {$f$}; | |||
\draw[->] (i0j1) -- (i1j1) node [midway] {$g$}; |
@ -0,0 +1,9 @@ | |||
\node[] (i1j0) at (1, -1) {P}; | |||
\node[] (i1j1) at (1, 1) {C}; | |||
\node[] (i0j0) at (-1, -1) {B}; | |||
\node[] (i0j1) at (-1, 1) {A}; | |||
\draw[<-] (i0j0) -- (i0j1) node [midway] {$f$}; | |||
\draw[->] (i0j0) -- (i1j0) node [midway, below] {$i_1$}; | |||
\draw[->] (i0j1) -- (i1j1) node [midway] {$g$}; | |||
\draw[<-] (i1j0) -- (i1j1) node [midway, right] {$i_2$}; |
@ -0,0 +1 @@ | |||
\node[draw,circle,label=below:{$a0 : A(i0)$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (a0) at (-1, 0) {}; |
@ -0,0 +1,9 @@ | |||
\node[] (i0j1) at (-1, 1) {A}; | |||
\node[] (i1j1) at (1, 1) {B}; | |||
\node[] (i0j0) at (-1, -1) {B}; | |||
\node[] (i1j0) at (1, -1) {B}; | |||
\draw[<-] (i0j0) -- (i0j1) node [midway] {$\mathrm{equiv}$} node [midway, above, rotate=-90] {$\sim$}; | |||
\draw[->] (i0j0) -- (i1j0) node [midway, below] {$B$}; | |||
\draw[->,dashed] (i0j1) -- (i1j1) node [midway] {}; | |||
\draw[<-] (i1j0) -- (i1j1) node [midway, right] {$\mathrm{id}_B$} node [midway, above, rotate=90] {$\sim$}; |
@ -0,0 +1,30 @@ | |||
\node (a) at (-2.5, 2.5) {a}; | |||
\node (b) at (2.5, 2.5) {b}; | |||
\node (c) at (-2.5, -2.5) {c}; | |||
\node (d) at (2.5, -2.5) {d}; | |||
\node (w) at (-1, 1) {w}; | |||
\node (x) at (1, 1) {x}; | |||
\node (y) at (-1, -1) {y}; | |||
\node (z) at (1, -1) {z}; | |||
\draw[->] (a) -- node[midway] {f} (b); | |||
\draw[->] (b) -- node[midway,right] {q} (d); | |||
\draw[->] (a) -- node[midway,left] {p} (c); | |||
\draw[->] (c) -- node[midway,below] {g} (d); | |||
\draw[->] (w) -- node[midway,below] {h} (x); | |||
\draw[->] (x) -- node[midway,left] {j} (z); | |||
\draw[->] (y) -- node[midway,above] {k} (z); | |||
\draw[->] (w) -- node[midway,right] {l} (y); | |||
\draw[->] (a) -- node[midway] {$\upsilon$} (w); | |||
\draw[->] (b) -- node[midway] {$\phi$} (x); | |||
\draw[->] (c) -- node[midway] {$\chi$} (y); | |||
\draw[->] (d) -- node[midway] {$\psi$} (z); | |||
\node (wxyz) at (0, 0) {$\kappa$}; | |||
\node (awyc) at (-1.8, 0) {$\lambda$}; | |||
\node (awxb) at (0, 1.8) {$\mu$}; | |||
\node (bxzd) at (1.8, 0) {$\nu$}; | |||
\node (cyzd) at (0, -1.8) {$\xi$}; |
@ -0,0 +1,6 @@ | |||
\node (a) at (-1, 0) {a}; | |||
\node (b) at (1, 0) {d}; | |||
\draw[->] (a) to[out=45,in=135] node[midway] (f) {$q \circ f$} (b); | |||
\draw[->] (a) to[out=-45,in=-135] node[midway,below] (g) {$g \circ p$} (b); | |||
\draw[double,->] ([yshift=-2pt]f.south) -- node[midway,right] {$\sigma$} ([yshift=2pt]g.north); |
@ -0,0 +1,10 @@ | |||
\node (fi0j1) at (-0.75,0.75) {$a$}; | |||
\node (fi0j0) at (-0.75,-0.75) {$b$}; | |||
\node (fi1j1) at (0.75,0.75) {$c$}; | |||
\node (fi1j0) at (0.75,-0.75) {$d$}; | |||
\node (f) at (0, 0) {$\sigma$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; |
@ -0,0 +1,11 @@ | |||
\node (atop) at (-1, 0.5) {a}; | |||
\node (abot) at (-1, -0.5) {a}; | |||
\node (btop) at (1, 0.5) {b}; | |||
\node (bbot) at (1, -0.5) {b}; | |||
\draw[->] (atop) to[out=30,in=150] node[midway] (f) {f} (btop); | |||
\draw[->] (atop) -- (abot); | |||
\draw[->] (abot) to[out=-30,in=-150] node[midway,below] (g) {g} (bbot); | |||
\draw[->] (btop) -- (bbot); | |||
\node at (0, 0) {$\alpha$}; |
@ -0,0 +1,24 @@ | |||
\node (a) at (-1, 0) {$a$}; | |||
\node (a0) at (0, 0.75) {$a$}; | |||
\node (a1) at (0, -0.75) {$a$}; | |||
\draw[->] (a0) -- node[midway] (al) {} (a1); | |||
\draw[dashed,->] (a) to[] node[midway,above] {$\sigma$} ([xshift=-0.5em]al); | |||
\node (fi0) at (1, 0.75) {$a$}; | |||
\node (fi1) at (1, -0.75) {$b$}; | |||
\draw[->] (fi0) -- node[midway,right] (f) {f} (fi1); | |||
\node (fi0j1) at (4 + -0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (4 + -0.75, -0.75) {$a$}; | |||
\node (fi1j1) at (4 + 0.75, 0.75) {$b$}; | |||
\node (fi1j0) at (4 + 0.75, -0.75) {$b$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (fs) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (gs) {f}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {}; | |||
\node (sq) at (4, 0) {$\bullet$}; | |||
\draw[dashed,->] (f) to[out=20,in=160] node[midway,below] {$\sigma_0 \circ \sigma$} (sq); |
@ -0,0 +1,9 @@ | |||
\node (fi0j1) at (-0.75,0.75) {$a$}; | |||
\node (fi0j0) at (-0.75,-0.75) {$b$}; | |||
\node (fi1j1) at (0.75,0.75) {$c$}; | |||
\node (fi1j0) at (0.75,-0.75) {$d$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; |
@ -0,0 +1,17 @@ | |||
\node (point) at (0, 0) {$\color{red}{\bullet}$}; | |||
\node (line0) at (2, 1) {$\color{blue}{\bullet}_0$}; | |||
\node (line1) at (2, -1) {$\color{red}{\bullet}_1$}; | |||
\draw (line0) -- (line1) node[midway] (linemid) {}; | |||
; | |||
\draw[->] (point) to[out=-70,in=180] node[midway] (a) {$\delta^1$} (line1); | |||
\node (sq00) at (4, -1) {$\color{red}\bullet_{01}$}; | |||
\node (sq01) at (4, 1) {$\color{blue}{\bullet}_{00}$}; | |||
\node (sq10) at (6, -1) {$\bullet_{11}$}; | |||
\node (sq11) at (6, 1) {$\bullet_{10}$}; | |||
\draw (sq00) -- node[midway] (linemid_img) {} (sq01) -- (sq11) -- (sq10) -- (sq00); | |||
\draw[->] (linemid) -- node[midway] (b) {$\delta^0_0$} (linemid_img); |
@ -0,0 +1,43 @@ | |||
\node (j1) at (0,1) {$\color{red}\bullet$}; | |||
\node (j0) at (0,0) {$\color{red}\bullet$}; | |||
\node (mid) at (0,0.5) {}; | |||
\draw[color=red] (j1) -- (j0); | |||
\node (i0j1) at (1,1) {$\color{red}\bullet$}; | |||
\node (i0j0) at (1,0) {$\color{red}\bullet$}; | |||
\node (i1j1) at (2,1) {$\bullet$}; | |||
\node (i1j0) at (2,0) {$\bullet$}; | |||
\draw[color=red] (i0j1) -- (i0j0); | |||
\draw (i0j1) -- (i1j1) -- (i1j0) -- (i0j0); | |||
\node (mid2) at (1,0.5) {}; | |||
\draw[->] (mid) -> (mid2); | |||
\node (F) at (-0.6, 0.5) {$\mathcal{F}$}; | |||
\node[fit=(j0)(i1j1), left delimiter=(, inner sep=-0.7ex, right delimiter=)] (openF) {}; | |||
\node (colon) at (2.6, 0.5) {$:$}; | |||
\node (F2) at (2.9, 0.5) {$\mathcal{F}$}; | |||
\node (fi0j1) at (3.5,1) {$\color{red}\bullet$}; | |||
\node (fi0j0) at (3.5,0) {$\color{red}\bullet$}; | |||
\node (fi1j1) at (4.5,1) {$\bullet$}; | |||
\node (fi1j0) at (4.5,0) {$\bullet$}; | |||
\draw[color=red] (fi0j1) -- (fi0j0); | |||
\draw (fi0j1) -- (fi1j1) -- (fi1j0) -- (fi0j0); | |||
\node[fit=(fi0j0)(fi1j1), left delimiter=(, inner sep=-0.7ex, right delimiter=)] (openF2) {}; | |||
\node (F3) at (6.1, 0.5) {$\mathcal{F}$}; | |||
\draw[->] ([xshift=2.1ex]openF2.east) -- (F3); | |||
\node (fj1) at (6.7,1) {$\color{red}\bullet$}; | |||
\node (fj0) at (6.7,0) {$\color{red}\bullet$}; | |||
\node[fit=(fj1)(fj0), left delimiter=(, inner sep=-0.7ex, right delimiter=)] (openF3) {}; | |||
\draw[color=red] (fj1) -- (fj0); |
@ -0,0 +1,38 @@ | |||
\node at (-5, 0) {$\bullet_{()}$}; | |||
\node (line0) at (-3, 1) {$\bullet_0$}; | |||
\node (line1) at (-3, -1) {$\bullet_1$}; | |||
\draw[->] (line0) -> (line1); | |||
\node (sq00) at (-1, 1) {$\bullet_{00}$}; | |||
\node (sq01) at (-1, -1) {$\bullet_{01}$}; | |||
\node (sq10) at (1, 1) {$\bullet_{10}$}; | |||
\node (sq11) at (1, -1) {$\bullet_{11}$}; | |||
\draw[->] (sq00) -> (sq01); | |||
\draw[->] (sq00) -> (sq10); | |||
\draw[->] (sq10) -> (sq11); | |||
\draw[->] (sq01) -> (sq11); | |||
\node (sq010) at (3, -1) {$\bullet_{000}$}; | |||
\node (sq011) at (4, 0) {$\bullet_{001}$}; | |||
\node (sq110) at (5, -1) {$\bullet_{100}$}; | |||
\node (sq111) at (6, 0) {$\bullet_{101}$}; | |||
\node (sq000) at (3, 1) {$\bullet_{010}$}; | |||
\node (sq001) at (4, 2) {$\bullet_{011}$}; | |||
\node (sq100) at (5, 1) {$\bullet_{110}$}; | |||
\node (sq101) at (6, 2) {$\bullet_{111}$}; | |||
\draw[->] (sq000) -- (sq001); | |||
\draw[->] (sq000) -- (sq100); | |||
\draw[->] (sq000) -- (sq010); | |||
\draw[->] (sq001) -- (sq011); | |||
\draw[->] (sq001) -- (sq101); | |||
\draw[->] (sq010) -- (sq110); | |||
\draw[->] (sq010) -- (sq011); | |||
\draw[->] (sq100) -- (sq101); | |||
\draw[->] (sq100) -- (sq110); | |||
\draw[->] (sq101) -- (sq111); | |||
\draw[->] (sq110) -- (sq111); | |||
\draw[->] (sq011) -- (sq111); |
@ -0,0 +1,6 @@ | |||
\node (a) at (-1, 0) {a}; | |||
\node (b) at (1, 0) {b}; | |||
\draw[->] (a) to[out=30,in=150] node[midway] (f) {f} (b); | |||
\draw[->] (a) to[out=-30,in=-150] node[midway,below] (g) {g} (b); | |||
\draw[double,->] ([yshift=-2pt]f.south) -- node[midway,right] {$\alpha$} ([yshift=2pt]g.north); |
@ -0,0 +1,7 @@ | |||
\node (open) at (0, 2) {$\sqcap^{n,i,\varepsilon}$}; | |||
\node (box) at (0, 0) {$\square^n$}; | |||
\node (set) at (2, 0) {$X$}; | |||
\draw[right hook->] (open) -- (box); | |||
\draw[->] (open) -- node[midway] {f} (set); | |||
\draw[dotted, ->] (box) -- node[midway, below] {g} (set); |
@ -0,0 +1,9 @@ | |||
\node (sq1_b00) at (-3, 1) {B}; | |||
\node (sq1_a10) at (-1, 1) {A}; | |||
\node (sq1_b01) at (-3, -1) {B}; | |||
\node (sq1_b11) at (-1, -1) {B}; | |||
\draw[dashed,->] (sq1_b00) -- node[midway] {g} (sq1_a10); | |||
\draw[->] (sq1_a10) -> node[midway] {f} (sq1_b11); | |||
\draw[->] (sq1_b00) -> node[midway,left] {1} (sq1_b01); | |||
\draw[->] (sq1_b01) -> node[midway,below] {1} (sq1_b11); |
@ -0,0 +1,9 @@ | |||
\node (sq1_b00) at (-3, 1) {$F(c\prime)$}; | |||
\node (sq1_a10) at (-1, 1) {$F(c)$}; | |||
\node (sq1_b01) at (-3, -1) {$G(c\prime)$}; | |||
\node (sq1_b11) at (-1, -1) {$G(c)$}; | |||
\draw[->] (sq1_b00) -- node[midway] {$F(f)$} (sq1_a10); | |||
\draw[->] (sq1_a10) -> node[midway] {$\alpha_{c}$} (sq1_b11); | |||
\draw[->] (sq1_b00) -> node[midway,left] {$\alpha_{c\prime}$} (sq1_b01); | |||
\draw[->] (sq1_b01) -> node[midway,below] {$G(f)$} (sq1_b11); |
@ -0,0 +1,9 @@ | |||
\node (fi0j1) at (-0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (-0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (0.75, 0.75) {$c$}; | |||
\node (fi1j0) at (0.75, -0.75) {$d$}; | |||
\draw[->,dotted] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; |
@ -0,0 +1,39 @@ | |||
\node (fi0j1) at (-0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (-0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (0.75, 0.75) {$c$}; | |||
\node (fi1j0) at (0.75, -0.75) {$d$}; | |||
\draw[->,dotted] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; | |||
\node (fi0j1) at (2.5 + -0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (2.5 + -0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (2.5 + 0.75, 0.75) {$c$}; | |||
\node (fi1j0) at (2.5 + 0.75, -0.75) {$d$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->,dotted] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; | |||
\node (fi0j1) at (5 + -0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (5 + -0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (5 + 0.75, 0.75) {$c$}; | |||
\node (fi1j0) at (5 + 0.75, -0.75) {$d$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-,dotted] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; | |||
\node (fi0j1) at (7.5 + -0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (7.5 + -0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (7.5 + 0.75, 0.75) {$c$}; | |||
\node (fi1j0) at (7.5 + 0.75, -0.75) {$d$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {g}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {p}; | |||
\draw[<-,dotted] (fi1j0) -- (fi1j1) node[midway,right] (q) {q}; |
@ -0,0 +1,9 @@ | |||
\node (sq1_a00) at (-3, 1) {A}; | |||
\node (sq1_b10) at (-1, 1) {B}; | |||
\node (sq1_a01) at (-3, -1) {A}; | |||
\node (sq1_a11) at (-1, -1) {A}; | |||
\draw[dashed,->] (sq1_b10) -- node[midway] {h} (sq1_a11); | |||
\draw[->] (sq1_a00) -- node[midway] {f} (sq1_b10); | |||
\draw[->] (sq1_a00) -- node[midway,left] {1} (sq1_a01); | |||
\draw[->] (sq1_a01) -- node[midway,below] {1} (sq1_a11); |
@ -0,0 +1,19 @@ | |||
\node (fi0j1) at (-0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (-0.75, -0.75) {$b$}; | |||
\node (fi1j1) at (0.75, 0.75) {$a$}; | |||
\node (fi1j0) at (0.75, -0.75) {$b$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {1}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {1}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {f}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {f}; | |||
\node (fi0j1) at (2.5 + -0.75, 0.75) {$a$}; | |||
\node (fi0j0) at (2.5 + -0.75, -0.75) {$a$}; | |||
\node (fi1j1) at (2.5 + 0.75, 0.75) {$b$}; | |||
\node (fi1j0) at (2.5 + 0.75, -0.75) {$b$}; | |||
\draw[->] (fi0j1) -- (fi1j1) node[midway] (f) {f}; | |||
\draw[->] (fi0j0) -- (fi1j0) node[midway,below] (g) {f}; | |||
\draw[<-] (fi0j0) -- (fi0j1) node[midway,left] (p) {1}; | |||
\draw[<-] (fi1j0) -- (fi1j1) node[midway,right] (q) {1}; |
@ -0,0 +1 @@ | |||
\node[draw,circle,label=right:$x:A$,fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (0, 0) {}; |
@ -0,0 +1,4 @@ | |||
\node[draw,circle,label=left:{$A[0/i]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=right:{$A[1/i]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw (i0) -- (i1); |
@ -0,0 +1,6 @@ | |||
\node[draw,circle,label=left:{$A[0/i, 0/j]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0j0) at (-1, -1) {}; | |||
\node[draw,circle,label=right:{$A[1/i, 0/j]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1j0) at (1, -1) {}; | |||
\node[draw,circle,label=left:{$A[0/i, 1/j]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0j1) at (-1, 1) {}; | |||
\node[draw,circle,label=right:{$A[1/i, 1/j]$},fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1j1) at (1, 1) {}; | |||
\draw (i0j0) -- (i1j0) -- (i1j1) -- (i0j1) -- (i0j0); |
@ -0,0 +1,5 @@ | |||
\node[draw,circle,label=below:$i_0$,fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i0) at (-1, 0) {}; | |||
\node[draw,circle,label=below:$i_1$,fill,outer sep=0.1cm, inner sep=0pt, minimum size=0.1cm] (i1) at (1, 0) {}; | |||
\draw (i0) -- (i1) node [midway, above] (seg) {seg}; | |||
% \draw[-] (i0) -- (i1); |
@ -0,0 +1,39 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (FGX) [inner xsep=0.01cm, inner ysep=0.03cm] at (0, 0) {@}; | |||
\node (FG) [xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, left of=FGX] {@}; | |||
\node (X) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, right of=FGX] {x}; | |||
\node (F) [xshift=0.25cm, inner xsep=0.04cm, inner ysep=0.05cm, below of=FG, left of=FG, xshift=2] {f}; | |||
\node (G) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FG, right of=FG, xshift=-2] {g}; | |||
\node (GX) | |||
[xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=F, xshift=0.75cm] | |||
{@}; | |||
\draw[->] (FGX) to (X); | |||
\draw[->] (FGX) to (FG); | |||
\draw[->] (FG) to (F.north east); | |||
\draw[->] (FG) to (G.north west); | |||
\draw[->] (GX) to ([shift=({-0.35cm,-0.35cm})]GX) | |||
-- ++(0, -0.10cm) | |||
-| (G); | |||
\draw[->] (GX) to ([shift=({0.45cm,-0.35cm})]GX) | |||
-| (X); | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -1.5) {}; | |||
\node (Stk3) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -2.25) {}; | |||
\draw[->] (Stk0.center) to (FGX); | |||
\draw[->] (Stk1.center) to (FG); | |||
\draw[->] (Stk2.center) to (F); | |||
\draw[->] (Stk3.center) to (GX); | |||
\end{scope} |
@ -0,0 +1,51 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (FGX) [inner xsep=0.01cm, inner ysep=0.03cm] at (0, 0) {@}; | |||
\node (FG) [xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, left of=FGX] {@}; | |||
\node (X) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, right of=FGX] {x}; | |||
\node (F) [xshift=0.25cm, inner xsep=0.04cm, inner ysep=0.05cm, below of=FG, left of=FG, xshift=2] {f}; | |||
\node (G) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FG, right of=FG, xshift=-2] {g}; | |||
\node (KGX) | |||
[xshift=-0.55cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=F, xshift=0.75cm] | |||
{@}; | |||
\node (K) | |||
[xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=KGX, left of=KGX] | |||
{K}; | |||
\node (GX) | |||
[xshift=-0.45cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=KGX, right of=KGX] | |||
{@}; | |||
\draw[->] (FGX) to (X); | |||
\draw[->] (FGX) to (FG); | |||
\draw[->] (FG) to (F.north east); | |||
\draw[->] (FG) to (G.north west); | |||
\draw[->] (KGX) to (K); | |||
\draw[->] (KGX) to (GX); | |||
\draw[->] (GX) to ([shift=({-0.35cm,-0.35cm})]GX) | |||
-- ++(0, -0.10cm) | |||
-| (G); | |||
\draw[->] (GX) to ([shift=({0.45cm,-0.35cm})]GX) | |||
-| (X); | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -1.5) {}; | |||
\node (Stk3) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -2.25) {}; | |||
\draw[->] (Stk0.center) to (FGX); | |||
\draw[->] (Stk1.center) to (FG); | |||
\draw[->] (Stk2.center) to (F); | |||
\draw[->] (Stk3.center) to (KGX); | |||
\end{scope} |
@ -0,0 +1,25 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (FGX) [inner xsep=0.01cm, inner ysep=0.03cm] at (0, 0) {@}; | |||
\node (FG) [xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, left of=FGX] {@}; | |||
\node (X) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, right of=FGX] {x}; | |||
\node (F) [xshift=0.25cm, inner xsep=0.04cm, inner ysep=0.05cm, below of=FG, left of=FG, xshift=2] {f}; | |||
\node (G) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FG, right of=FG, xshift=-2] {g}; | |||
\draw[->] (FGX) to (X); | |||
\draw[->] (FGX) to (FG); | |||
\draw[->] (FG) to (F.north east); | |||
\draw[->] (FG) to (G.north west); | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -1.5) {}; | |||
\draw[->] (Stk0.center) to (FGX); | |||
\draw[->] (Stk1.center) to (FG); | |||
\draw[->] (Stk2.center) to (F); | |||
\end{scope} |
@ -0,0 +1,31 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (FGX) [inner xsep=0.01cm, inner ysep=0.03cm] at (0, 0) {@}; | |||
\node (FG) [xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, left of=FGX] {@}; | |||
\node (X) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, right of=FGX] {x}; | |||
\node (F) [xshift=0.25cm, inner xsep=0.04cm, inner ysep=0.05cm, below of=FG, left of=FG, xshift=2] {f}; | |||
\node (G) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FG, right of=FG, xshift=-2] {g}; | |||
\draw[->] (FGX) to (X); | |||
\draw[->] (FGX) to (FG); | |||
\draw[->] (FG) to (F.north east); | |||
\draw[->] (FG) to (G.north west); | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -1.5) {}; | |||
\node (Stk3) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -2.25) {}; | |||
\node (Stk4) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -3) {}; | |||
\draw[->] (Stk0.center) to (FGX); | |||
\draw[->] (Stk1.center) to (FG); | |||
\draw[->] (Stk2.center) to (F); | |||
\draw[->] (Stk3.center) to (X |- 0, -2.25cm) -- (X); | |||
\draw[->] (Stk4.center) to (G |- 0, -3cm) -- (G); | |||
\end{scope} |
@ -0,0 +1,44 @@ | |||
\begin{scope}[node distance=0.75cm] | |||
\node (FGX) [inner xsep=0.01cm, inner ysep=0.03cm] at (0, 0) {@}; | |||
\node (FG) [xshift=0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, left of=FGX] {@}; | |||
\node (X) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FGX, right of=FGX] {x}; | |||
\node (F) [xshift=0.25cm, inner xsep=0.04cm, inner ysep=0.05cm, below of=FG, left of=FG, xshift=2] {f}; | |||
\node (G) [xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=FG, right of=FG, xshift=-2] {g}; | |||
\node (GX) | |||
[xshift=-0.25cm, inner xsep=0.01cm, inner ysep=0.03cm, below of=F, xshift=0.75cm] | |||
{@}; | |||
\draw[->] (FGX) to (X); | |||
\draw[->] (FGX) to (FG); | |||
\draw[->] (FG) to (F.north east); | |||
\draw[->] (FG) to (G.north west); | |||
\draw[->] (GX) to ([shift=({-0.35cm,-0.35cm})]GX) | |||
-- ++(0, -0.10cm) | |||
-| (G); | |||
\draw[->] (GX) to ([shift=({0.45cm,-0.35cm})]GX) | |||
-| (X); | |||
\node (Stk0) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, 0) {}; | |||
\node (Stk1) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||
at (-2.75, -0.75) {}; | |||
\node (Stk2) [draw, shape=rectangle, minimum width=1.5cm, minimum height=0.75cm, anchor=center] | |||