This commit is contained in:
343
resources/net/deertopia/doerg/Temml-Plex.css
Normal file
343
resources/net/deertopia/doerg/Temml-Plex.css
Normal file
@@ -0,0 +1,343 @@
|
||||
/* Based on Temml-local.css. */
|
||||
math {
|
||||
font-family: "IBM Plex Math", "Cambria Math", 'STIXTwoMath-Regular', 'NotoSansMath-Regular', math;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: normal;
|
||||
font-size-adjust: none;
|
||||
text-indent: 0;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
/* Prevent Firefox from omitting the dot on i or j. */
|
||||
font-feature-settings: "dtls" off;
|
||||
}
|
||||
|
||||
math * {
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
/* display: block is necessary in Firefox and Safari.
|
||||
* Not in Chromium, which recognizes display: "block math" written inline. */
|
||||
math.tml-display {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
*.mathcal {
|
||||
/* NotoSans */
|
||||
font-feature-settings: 'ss01';
|
||||
}
|
||||
|
||||
math .mathscr {
|
||||
font-family: "IBM Plex Math";
|
||||
}
|
||||
|
||||
mo.tml-prime {
|
||||
font-family: "IBM Plex Math";
|
||||
}
|
||||
|
||||
/* Cramped superscripts in WebKit */
|
||||
mfrac > :nth-child(2),
|
||||
msqrt,
|
||||
mover > :first-child {
|
||||
math-shift: compact
|
||||
}
|
||||
|
||||
.menclose {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
padding: 0.5ex 0ex;
|
||||
}
|
||||
.tml-cancelto {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 0.5ex 0ex;
|
||||
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'><defs><marker id='a' markerHeight='5' markerUnits='strokeWidth' markerWidth='7' orient='auto' refX='7' refY='2.5'><path fill='currentColor' d='m0 0 7 2.5L0 5z'/></marker></defs><line x2='100%' y1='100%' stroke='currentColor' stroke-width='.06em' marker-end='url(%23a)' vector-effect='non-scaling-stroke'/></svg>");
|
||||
}
|
||||
|
||||
@supports (-moz-appearance: none) {
|
||||
/* \vec w/o italic correction for Firefox */
|
||||
.tml-vec {
|
||||
transform: scale(0.75)
|
||||
}
|
||||
/* Fix \cancelto in Firefox */
|
||||
.ff-narrow {
|
||||
width: 0em;
|
||||
}
|
||||
.ff-nudge-left {
|
||||
margin-left: -0.2em;
|
||||
}
|
||||
}
|
||||
|
||||
@supports (not (-moz-appearance: none)) {
|
||||
/* Chromium and WebKit */
|
||||
/* prime vertical alignment */
|
||||
mo.tml-prime {
|
||||
font-family: "IBM Plex Math";
|
||||
}
|
||||
/* Italic correction on superscripts */
|
||||
.tml-sml-pad {
|
||||
padding-left: 0.05em;
|
||||
}
|
||||
.tml-med-pad {
|
||||
padding-left: 0.10em;
|
||||
}
|
||||
.tml-lrg-pad {
|
||||
padding-left: 0.15em;
|
||||
}
|
||||
}
|
||||
|
||||
@supports (-webkit-backdrop-filter: blur(1px)) {
|
||||
/* WebKit vertical & italic correction on accents */
|
||||
.wbk-acc {
|
||||
/* lower by x-height distance */
|
||||
transform: translate(0em, 0.431em);
|
||||
}
|
||||
.wbk-sml {
|
||||
transform: translate(0.07em, 0);
|
||||
}
|
||||
.wbk-sml-acc {
|
||||
transform: translate(0.07em, 0.431em);
|
||||
}
|
||||
.wbk-sml-vec {
|
||||
transform: scale(0.75) translate(0.07em, 0);
|
||||
}
|
||||
.wbk-med {
|
||||
transform: translate(0.14em, 0);
|
||||
}
|
||||
.wbk-med-acc {
|
||||
transform: translate(0.14em, 0.431em);
|
||||
}
|
||||
.wbk-med-vec {
|
||||
transform: scale(0.75) translate(0.14em, 0);
|
||||
}
|
||||
.wbk-lrg {
|
||||
transform: translate(0.21em, 0);
|
||||
}
|
||||
.wbk-lrg-acc {
|
||||
transform: translate(0.21em, 0.431em);
|
||||
}
|
||||
.wbk-lrg-vec {
|
||||
transform: scale(0.75) translate(0.21em, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* \cancel & \phase use background images. Get them to print. */
|
||||
menclose {
|
||||
-webkit-print-color-adjust: exact; /* Chrome & Edge */
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
|
||||
/* Array cell justification in Firefox & WebKit */
|
||||
.tml-right {
|
||||
text-align: right;
|
||||
}
|
||||
.tml-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* For CD labels that grow to the left in Firefox and WebKit */
|
||||
.tml-shift-left { margin-left:-200% }
|
||||
|
||||
/* Styles for Chromium only */
|
||||
@supports (not (-webkit-backdrop-filter: blur(1px))) and (not (-moz-appearance: none)) {
|
||||
/* Italic correction on accents */
|
||||
.chr-sml {
|
||||
transform: translate(0.07em, 0)
|
||||
}
|
||||
.chr-sml-vec {
|
||||
transform: scale(0.75) translate(0.07em, 0)
|
||||
}
|
||||
.chr-med {
|
||||
transform: translate(0.14em, 0)
|
||||
}
|
||||
.chr-med-vec {
|
||||
transform: scale(0.75) translate(0.14em, 0)
|
||||
}
|
||||
.chr-lrg {
|
||||
transform: translate(0.21em, 0)
|
||||
}
|
||||
.chr-lrg-vec {
|
||||
transform: scale(0.75) translate(0.21em, 0)
|
||||
}
|
||||
|
||||
/* For CD labels that grow to the left */
|
||||
.tml-shift-left { margin-left:-100% }
|
||||
|
||||
/* MathML Core & Chromium do not support the MathML 3.0 element <menclose> attributes. */
|
||||
/* So use styles. */
|
||||
menclose {
|
||||
position: relative;
|
||||
padding: 0.5ex 0ex;
|
||||
}
|
||||
|
||||
.tml-overline {
|
||||
padding: 0.1em 0 0 0;
|
||||
border-top: 0.065em solid;
|
||||
}
|
||||
|
||||
.tml-underline {
|
||||
padding: 0 0 0.1em 0;
|
||||
border-bottom: 0.065em solid;
|
||||
}
|
||||
|
||||
.tml-cancel {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 0.5px;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: currentColor;
|
||||
}
|
||||
.upstrike {
|
||||
clip-path: polygon(0.05em 100%, 0em calc(100% - 0.05em), calc(100% - 0.05em) 0em, 100% 0.05em);
|
||||
}
|
||||
.downstrike {
|
||||
clip-path: polygon(0em 0.05em, 0.05em 0em, 100% calc(100% - 0.05em), calc(100% - 0.05em) 100%);
|
||||
}
|
||||
.sout {
|
||||
clip-path: polygon(0em calc(55% + 0.0333em), 0em calc(55% - 0.0333em), 100% calc(55% - 0.0333em), 100% calc(55% + 0.0333em));
|
||||
}
|
||||
.tml-xcancel {
|
||||
background: linear-gradient(to top left,
|
||||
rgba(0,0,0,0) 0%,
|
||||
rgba(0,0,0,0) calc(50% - 0.06em),
|
||||
rgba(0,0,0,1) 50%,
|
||||
rgba(0,0,0,0) calc(50% + 0.06em),
|
||||
rgba(0,0,0,0) 100%),
|
||||
linear-gradient(to top right,
|
||||
rgba(0,0,0,0) 0%,
|
||||
rgba(0,0,0,0) calc(50% - 0.06em),
|
||||
rgba(0,0,0,1) 50%,
|
||||
rgba(0,0,0,0) calc(50% + 0.06em),
|
||||
rgba(0,0,0,0) 100%)
|
||||
}
|
||||
|
||||
.longdiv-top {
|
||||
border-top: 0.067em solid;
|
||||
padding: 0.1em 0.2em 0.2em 0.433em;
|
||||
}
|
||||
.longdiv-arc {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0.1em;
|
||||
left: -0.4em;
|
||||
width: 0.7em;
|
||||
border: 0.067em solid;
|
||||
transform: translateY(-0.067em);
|
||||
border-radius: 70%;
|
||||
clip-path: inset(0 0 0 0.4em);
|
||||
box-sizing: border-box;}
|
||||
.menclose {display: inline-block;
|
||||
text-align: left;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.phasor-bottom {
|
||||
border-bottom: 0.067em solid;
|
||||
padding: 0.2em 0.2em 0.1em 0.6em;
|
||||
}
|
||||
.phasor-angle {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 0.5px;
|
||||
bottom: -0.04em;
|
||||
height: 100%;
|
||||
aspect-ratio: 0.5;
|
||||
background-color: currentColor;
|
||||
clip-path: polygon(0.05em 100%, 0em calc(100% - 0.05em), calc(100% - 0.05em) 0em, 100% 0.05em);
|
||||
}
|
||||
|
||||
.tml-fbox {
|
||||
padding: 3pt;
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.circle-pad {
|
||||
padding: 0.267em;
|
||||
}
|
||||
.textcircle {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
border: 0.067em solid;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.actuarial {
|
||||
padding: 0.03889em 0.03889em 0 0.03889em;
|
||||
border-width: 0.08em 0.08em 0em 0em;
|
||||
border-style: solid;
|
||||
margin-right: 0.03889em;
|
||||
}
|
||||
|
||||
/* Stretch \widetilde */
|
||||
.tml-crooked-2 {
|
||||
transform: scale(2.0, 1.1)
|
||||
}
|
||||
.tml-crooked-3 {
|
||||
transform: scale(3.0, 1.3)
|
||||
}
|
||||
.tml-crooked-4 {
|
||||
transform: scale(4.0, 1.4)
|
||||
}
|
||||
/* set array cell justification */
|
||||
.tml-right {
|
||||
text-align: -webkit-right;
|
||||
}
|
||||
.tml-left {
|
||||
text-align: -webkit-left;
|
||||
}
|
||||
}
|
||||
|
||||
.special-fraction {
|
||||
font-family: "IBM Plex Math", 'STIX TWO', 'Times New Roman', Times, Tinos, serif;
|
||||
}
|
||||
|
||||
/* flex-wrap for line-breaking in Chromium */
|
||||
math {
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: baseline;
|
||||
}
|
||||
math > mrow {
|
||||
padding: 0.5ex 0ex;
|
||||
}
|
||||
|
||||
/* Default mtd top padding is 0.5ex per MathML-Core and user-agent CSS */
|
||||
/* We adjust for jot and small */
|
||||
mtable.tml-jot mtd {
|
||||
padding-top: 0.7ex;
|
||||
padding-bottom: 0.7ex;
|
||||
}
|
||||
mtable.tml-small mtd {
|
||||
padding-top: 0.35ex;
|
||||
padding-bottom: 0.35ex;
|
||||
}
|
||||
|
||||
/* Firefox */
|
||||
@-moz-document url-prefix() {
|
||||
/* Avoid flex-wrap */
|
||||
math { display: inline; }
|
||||
math > mrow { padding: 0 }
|
||||
/* Adjust Firefox spacing between array rows */
|
||||
mtd, mtable.tml-small mtd { padding-top: 0; padding-bottom: 0; }
|
||||
mtable.tml-jot mtd { padding-top: 0.2ex; padding-bottom: 0.ex; }
|
||||
}
|
||||
|
||||
/* AMS environment auto-numbering via CSS counter. */
|
||||
.tml-eqn::before {
|
||||
counter-increment: tmlEqnNo;
|
||||
content: "(" counter(tmlEqnNo) ")";
|
||||
}
|
||||
|
||||
body {
|
||||
counter-reset: tmlEqnNo;
|
||||
}
|
||||
11
resources/net/deertopia/doerg/deerstar.css
Normal file
11
resources/net/deertopia/doerg/deerstar.css
Normal file
@@ -0,0 +1,11 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
:root
|
||||
{ --ds-hoof-black: #0c0c0f
|
||||
; --ds-velvet-grey: #4a4241
|
||||
; --ds-untitled-1: rgb(47, 35, 28)
|
||||
; --ds-untitled-2: rgb(168, 134, 109)
|
||||
; --ds-buck-brown: #b57b4c
|
||||
; --ds-antler-tan: #fce7ca
|
||||
; --ds-fawn-spot-white: #fffffa
|
||||
}
|
||||
18
resources/net/deertopia/doerg/default-config.edn
Normal file
18
resources/net/deertopia/doerg/default-config.edn
Normal file
@@ -0,0 +1,18 @@
|
||||
#:net.deertopia.doerg.config
|
||||
{:ibm-plex-web #or [#xdg-data-dir "ibm-plex-web"
|
||||
#env IBM_PLEX_WEB]
|
||||
:latex "xelatex"
|
||||
:dvisvgm "dvisvgm"
|
||||
:doerg-temml-worker
|
||||
#profile {:dev #file "../../../../doerg-temml-worker/index.js"
|
||||
:default "doerg-temml-worker"}
|
||||
:doerg-parser
|
||||
#profile {:dev #file "../../../../doerg-parser/index.js"
|
||||
:default "doerg-parser"}
|
||||
:state-directory #join [#or [#env XDG_STATE_HOME
|
||||
#envf ["%s/.local/share" HOME]]
|
||||
"/doerg-server"]
|
||||
:org-roam-db-path
|
||||
#profile {:default #join [#env HOME "/.cache/emacs/org-roam.db"]
|
||||
:test #join [#or [#env TMP "/tmp"] "/doerg-org-roam-test.db"]}
|
||||
:port #profile {:default 8080}}
|
||||
30
resources/net/deertopia/doerg/elisp/grammar
Normal file
30
resources/net/deertopia/doerg/elisp/grammar
Normal file
@@ -0,0 +1,30 @@
|
||||
<file> ::= elements
|
||||
|
||||
<elements> ::= ws? element ws? elements
|
||||
| ws? ε
|
||||
|
||||
<element> ::= string
|
||||
| list
|
||||
| symbol
|
||||
| integer
|
||||
| property-string
|
||||
|
||||
string ::= <'"'> #'([^"\\]|\\.|\\\n)*' <'"'>
|
||||
|
||||
property-string
|
||||
::= <'#('> ws? string text-property* ws? <')'>
|
||||
|
||||
text-property ::= ws? element ws? element ws? element
|
||||
|
||||
list ::= <'('> elements dot-cdr? <')'>
|
||||
|
||||
symbol ::= #'([^?#0-9 \n\s\f()\[\]"\'\\.]|\\.)([^ \n\s\f()\[\]"\'\\]|\\.)*'
|
||||
| #'\.([^ \n\s\f()\[\]"\'\\]|\\.)+'
|
||||
|
||||
integer ::= #'[-+]?[0-9]+' <#'.'>?
|
||||
|
||||
dot-cdr ::= <'.'> ws? element
|
||||
|
||||
<text> ::= ws? (string | property-string) ws?
|
||||
|
||||
<ws> ::= <#'(\s||\n)'>+
|
||||
BIN
resources/net/deertopia/doerg/favicon.ico
Normal file
BIN
resources/net/deertopia/doerg/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
5
resources/net/deertopia/doerg/native-prelude.tex
Normal file
5
resources/net/deertopia/doerg/native-prelude.tex
Normal file
@@ -0,0 +1,5 @@
|
||||
% Default uses arrow glyphs from the active font, which are kinda ugly in the
|
||||
% case of Plex.
|
||||
\tikzcdset{
|
||||
arrow style=tikz
|
||||
}
|
||||
154
resources/net/deertopia/doerg/prelude.tex
Normal file
154
resources/net/deertopia/doerg/prelude.tex
Normal file
@@ -0,0 +1,154 @@
|
||||
% Of the highest importance:
|
||||
\renewcommand{\phi}{\varphi}
|
||||
\renewcommand{\epsilon}{\varepsilon}
|
||||
|
||||
% Saner abbreviations for font faces (take an argument rather than
|
||||
% applying to the current context).
|
||||
\renewcommand{\rm}[1]{\mathrm{#1}}
|
||||
\newcommand{\bb}[1]{\mathbb{#1}}
|
||||
\renewcommand{\bf}[1]{\mathbf{#1}}
|
||||
|
||||
% \cA … \cZ
|
||||
\newcommand{\cA}{\mathcal{A}}
|
||||
\newcommand{\cB}{\mathcal{B}}
|
||||
\newcommand{\cC}{\mathcal{C}}
|
||||
\newcommand{\cD}{\mathcal{D}}
|
||||
\newcommand{\cE}{\mathcal{E}}
|
||||
\newcommand{\cF}{\mathcal{F}}
|
||||
\newcommand{\cG}{\mathcal{G}}
|
||||
\newcommand{\cH}{\mathcal{H}}
|
||||
\newcommand{\cI}{\mathcal{I}}
|
||||
\newcommand{\cJ}{\mathcal{J}}
|
||||
\newcommand{\cK}{\mathcal{K}}
|
||||
\newcommand{\cL}{\mathcal{L}}
|
||||
\newcommand{\cM}{\mathcal{M}}
|
||||
\newcommand{\cN}{\mathcal{N}}
|
||||
\newcommand{\cO}{\mathcal{O}}
|
||||
\newcommand{\cP}{\mathcal{P}}
|
||||
\newcommand{\cQ}{\mathcal{Q}}
|
||||
\newcommand{\cR}{\mathcal{R}}
|
||||
\newcommand{\cS}{\mathcal{S}}
|
||||
\newcommand{\cT}{\mathcal{T}}
|
||||
\newcommand{\cU}{\mathcal{U}}
|
||||
\newcommand{\cV}{\mathcal{V}}
|
||||
\newcommand{\cW}{\mathcal{W}}
|
||||
\newcommand{\cX}{\mathcal{X}}
|
||||
\newcommand{\cY}{\mathcal{Y}}
|
||||
\newcommand{\cZ}{\mathcal{Z}}
|
||||
|
||||
% \bA … \bZ
|
||||
\newcommand{\bA}{\mathbb{A}}
|
||||
\newcommand{\bB}{\mathbb{B}}
|
||||
\newcommand{\bC}{\mathbb{C}}
|
||||
\newcommand{\bD}{\mathbb{D}}
|
||||
\newcommand{\bE}{\mathbb{E}}
|
||||
\newcommand{\bF}{\mathbb{F}}
|
||||
\newcommand{\bG}{\mathbb{G}}
|
||||
\newcommand{\bH}{\mathbb{H}}
|
||||
\newcommand{\bI}{\mathbb{I}}
|
||||
\newcommand{\bJ}{\mathbb{J}}
|
||||
\newcommand{\bK}{\mathbb{K}}
|
||||
\newcommand{\bL}{\mathbb{L}}
|
||||
\newcommand{\bM}{\mathbb{M}}
|
||||
\newcommand{\bN}{\mathbb{N}}
|
||||
\newcommand{\bO}{\mathbb{O}}
|
||||
\newcommand{\bP}{\mathbb{P}}
|
||||
\newcommand{\bQ}{\mathbb{Q}}
|
||||
\newcommand{\bR}{\mathbb{R}}
|
||||
\newcommand{\bS}{\mathbb{S}}
|
||||
\newcommand{\bT}{\mathbb{T}}
|
||||
\newcommand{\bU}{\mathbb{U}}
|
||||
\newcommand{\bV}{\mathbb{V}}
|
||||
\newcommand{\bW}{\mathbb{W}}
|
||||
\newcommand{\bX}{\mathbb{X}}
|
||||
\newcommand{\bY}{\mathbb{Y}}
|
||||
\newcommand{\bZ}{\mathbb{Z}}
|
||||
|
||||
% Notation for lambda abstractions and function application. $~$
|
||||
% is the spacing that should be used between arguments.
|
||||
\newcommand{\lam}[2]{\lambda #1.\ #2}
|
||||
|
||||
% Notation for paths, the interval, and its operations.
|
||||
\newcommand{\PathP}[3]{\rm{PathP}~ {#1}~ {#2}~ {#3}}
|
||||
\newcommand{\Path}[3]{\rm{Path}~ {#1}~ {#2}~ {#3}}
|
||||
\newcommand{\Square}[4]{\rm{Square}~ {#1}~ {#2}~ {#3}~ {#4}}
|
||||
\newcommand{\ap}[2]{\rm{ap}~ {#1}~ {#2}}
|
||||
|
||||
\newcommand{\subst}{\operatorname{subst}}
|
||||
\newcommand{\ua}{\operatorname{ua}}
|
||||
|
||||
\newcommand{\iZ}{\rm{i0}}
|
||||
\newcommand{\iO}{\rm{i1}}
|
||||
|
||||
\newcommand{\ineg}{\lnot}
|
||||
\newcommand{\imin}{\land}
|
||||
\newcommand{\imax}{\lor}
|
||||
|
||||
\newcommand{\transport}[2]{\rm{transport}~ #1~ #2}
|
||||
\newcommand{\transp}[3]{\rm{transp}~ #1~ #2~ #3}
|
||||
\newcommand{\Partial}[2]{\rm{Partial}~ #1~ #2}
|
||||
\newcommand{\dcomp}{\mathrel{\cdot\cdot}}
|
||||
\newcommand{\Extn}[2]{{#1}[#2]}
|
||||
|
||||
\newcommand{\thecat}[1]{\mathbf{#1}} % Names of "concrete" categories
|
||||
\newcommand{\ca}[1]{\mathcal{#1}} % Names of variable categories
|
||||
|
||||
%% \newcommand{\knowncat}[1]{\newcommand{\csname #1\endcsname}{\thecat{#1}}}
|
||||
%% \newcommand{\knownbicat}[1]{\newcommand{\csname #1\endcsname}{\thebicat{#1}}}
|
||||
|
||||
\newcommand{\ty}{\rm{Type}}
|
||||
%% \newcommand{\set}{\rm{Set}}
|
||||
\newcommand{\prop}{\rm{Prop}}
|
||||
|
||||
%% \DeclareMathOperator{\id}{id}
|
||||
%% \DeclareMathOperator{\Id}{Id}
|
||||
|
||||
%% \knowncat{Sets}
|
||||
%% \knowncat{Ab}
|
||||
%% \knowncat{Graphs}
|
||||
%% \knowncat{MarkedGraphs}
|
||||
%% \knowncat{Props}
|
||||
%% \knowncat{FinSets}
|
||||
%% \knowncat{Rings}
|
||||
%% \knowncat{Grp}
|
||||
%% \knowncat{Rel}
|
||||
%% \knowncat{Par}
|
||||
%% \knowncat{Pos}
|
||||
|
||||
\renewcommand{\Set}{\thecat{Set}}
|
||||
|
||||
% "Postfix" operators that have a subscript and are annoying to write
|
||||
% out:
|
||||
\newcommand{\inv}{^{-1}}
|
||||
\renewcommand{\op}{^{\rm{op}}}
|
||||
|
||||
\newcommand{\eps}{\varepsilon}
|
||||
|
||||
\newcommand{\B}[1]{\mathbf{B} #1}
|
||||
\newcommand{\point}[1]{\bullet_{#1}}
|
||||
\newcommand{\List}[1]{\operatorname{List}(#1)}
|
||||
|
||||
\renewcommand{\hom}{\mathbf{Hom}}
|
||||
|
||||
\newcommand{\refl}{\mathrm{refl}}
|
||||
|
||||
\DeclareMathOperator{\isiso}{is-iso}
|
||||
\DeclareMathOperator{\isequiv}{is-equiv}
|
||||
|
||||
% Relations
|
||||
\newcommand{\pathto}{\equiv}
|
||||
\newcommand{\is}{\pathto}
|
||||
\newcommand{\definedto}{≔}
|
||||
\newcommand{\equivto}{\simeq}
|
||||
\newcommand{\homotopicto}{\sim}
|
||||
\newcommand{\homotopyto}{\sim}
|
||||
\newcommand{\naturalto}{\Rightarrow}
|
||||
\newcommand{\isoto}{\cong}
|
||||
\newcommand{\monicto}{\rightarrowtail}
|
||||
\newcommand{\epicto}{\twoheadrightarrow}
|
||||
|
||||
% Category names
|
||||
\newcommand{\C}[1]{\mathbf{#1}}
|
||||
|
||||
\newcommand{\homset}[3]{{{#1} \left[ {#2} \to {#3} \right]}}
|
||||
\newcommand{\horizontalcompose}{\ast}
|
||||
19
resources/net/deertopia/doerg/preview-template.tex
Normal file
19
resources/net/deertopia/doerg/preview-template.tex
Normal file
@@ -0,0 +1,19 @@
|
||||
\documentclass[tikz,dvisvgm]{standalone}
|
||||
\usepackage[active,tightpage,auctex,dvips]{preview}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{ifxetex}
|
||||
\usepackage{syd-plex}
|
||||
\usepackage{quiver}
|
||||
\usepackage{tikz}
|
||||
\usepackage{amscd}
|
||||
\usepackage{metalogo}
|
||||
|
||||
% {{preamble}}
|
||||
|
||||
\begin{document}
|
||||
\setlength\abovedisplayskip{0pt} % Remove padding before equation environments.
|
||||
|
||||
% {{contents}}
|
||||
|
||||
\end{document}
|
||||
1
resources/net/deertopia/doerg/public/Temml-Plex.css
Symbolic link
1
resources/net/deertopia/doerg/public/Temml-Plex.css
Symbolic link
@@ -0,0 +1 @@
|
||||
../Temml-Plex.css
|
||||
1
resources/net/deertopia/doerg/public/deerstar.css
Symbolic link
1
resources/net/deertopia/doerg/public/deerstar.css
Symbolic link
@@ -0,0 +1 @@
|
||||
../deerstar.css
|
||||
1
resources/net/deertopia/doerg/public/tuftesque.css
Symbolic link
1
resources/net/deertopia/doerg/public/tuftesque.css
Symbolic link
@@ -0,0 +1 @@
|
||||
../tuftesque.css
|
||||
565
resources/net/deertopia/doerg/tuftesque.css
Normal file
565
resources/net/deertopia/doerg/tuftesque.css
Normal file
@@ -0,0 +1,565 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
/* @import "/vendor/ibm-plex-serif/css/ibm-plex-serif-default.min.css"; */
|
||||
/* @import "/vendor/ibm-plex-sans-kr/css/ibm-plex-sans-kr-default.min.css"; */
|
||||
/* @import "/vendor/ibm-plex-math/css/ibm-plex-math-default.min.css"; */
|
||||
/* @import "deerstar.css"; */
|
||||
|
||||
html {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "IBM Plex Serif", "IBM Plex Sans KR", "IBM Plex Math", Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
|
||||
counter-reset: sidenote-counter;
|
||||
background-color: var(--ds-antler-tan);
|
||||
color: var(--ds-hoof-black);
|
||||
}
|
||||
|
||||
/* Adds dark mode */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background-color: var(--ds-untitled-1);
|
||||
color: var(--ds-antler-tan);
|
||||
}
|
||||
}
|
||||
|
||||
math { font-family: "IBM Plex Math"; }
|
||||
|
||||
h1 {
|
||||
font-weight: 400;
|
||||
margin-top: 4rem;
|
||||
margin-bottom: 1.5rem;
|
||||
font-size: 3.2rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
margin-top: 2.1rem;
|
||||
margin-bottom: 1.4rem;
|
||||
font-size: 2.2rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-size: 1.7rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1.4rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
width: 55%;
|
||||
border: 0;
|
||||
border-top: 1px solid var(--ds-velvet-grey);
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
hr {
|
||||
border-color: var(--ds-velvet-grey);
|
||||
}
|
||||
}
|
||||
|
||||
p.subtitle {
|
||||
font-style: italic;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1.8rem;
|
||||
display: block;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.numeral {
|
||||
font-family: et-book-roman-old-style;
|
||||
}
|
||||
|
||||
.danger {
|
||||
color: red;
|
||||
}
|
||||
|
||||
article {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 5rem;
|
||||
padding-left: 6%;
|
||||
padding-right: 0;
|
||||
width: 87.5%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-width: 1400px;
|
||||
}
|
||||
|
||||
section {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
p,
|
||||
dl,
|
||||
ol,
|
||||
.latex-fragment,
|
||||
ul {
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 1.4rem;
|
||||
margin-bottom: 1.4rem;
|
||||
padding-right: 0;
|
||||
vertical-align: baseline;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
/* Chapter Epigraphs */
|
||||
div.epigraph {
|
||||
margin: 5em 0;
|
||||
}
|
||||
|
||||
div.epigraph > blockquote {
|
||||
margin-top: 3em;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
||||
div.epigraph > blockquote,
|
||||
div.epigraph > blockquote > p {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.epigraph > blockquote > footer {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
div.epigraph > blockquote > footer > cite {
|
||||
font-style: italic;
|
||||
}
|
||||
/* end chapter epigraphs styles */
|
||||
|
||||
blockquote {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
width: 55%;
|
||||
margin-right: 40px;
|
||||
}
|
||||
|
||||
blockquote footer {
|
||||
width: 55%;
|
||||
font-size: 1.1rem;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
section > p,
|
||||
section > footer,
|
||||
section > table {
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
/* 50 + 5 == 55, to be the same width as paragraph */
|
||||
section > dl,
|
||||
section > ol,
|
||||
section > ul {
|
||||
width: 50%;
|
||||
-webkit-padding-start: 5%;
|
||||
/* Accounts for the padding from the bullet, resulting in the same width as
|
||||
paragraphs. */
|
||||
width: calc(55% - 40px);
|
||||
}
|
||||
|
||||
dt:not(:first-child),
|
||||
li:not(:first-child) {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
figure {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
max-width: 55%;
|
||||
-webkit-margin-start: 0;
|
||||
-webkit-margin-end: 0;
|
||||
margin: 0 0 3em 0;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
float: right;
|
||||
clear: right;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.6;
|
||||
vertical-align: baseline;
|
||||
position: relative;
|
||||
max-width: 40%;
|
||||
text-align: left
|
||||
}
|
||||
|
||||
figure.fullwidth figcaption {
|
||||
margin-right: 24%;
|
||||
}
|
||||
|
||||
a:link,
|
||||
a:visited {
|
||||
color: inherit;
|
||||
text-underline-offset: 0.1em;
|
||||
text-decoration-thickness: 0.05em;
|
||||
}
|
||||
|
||||
/* Sidenotes, margin notes, figures, captions */
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.sidenote,
|
||||
.marginnote {
|
||||
float: right;
|
||||
clear: right;
|
||||
margin-right: -60%;
|
||||
width: 50%;
|
||||
margin-top: 0.3rem;
|
||||
/* margin-bottom: 0; */
|
||||
margin-bottom: 1em;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.3;
|
||||
vertical-align: baseline;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidenote-number {
|
||||
counter-increment: sidenote-counter;
|
||||
}
|
||||
|
||||
li .sidenote,
|
||||
li .margin-note {
|
||||
/* it's so close lol */
|
||||
transform: translateX(4px)
|
||||
}
|
||||
|
||||
.sidenote-number:after,
|
||||
.sidenote:before {
|
||||
font-family: et-book-roman-old-style;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.sidenote-number:after {
|
||||
content: counter(sidenote-counter);
|
||||
font-size: 1rem;
|
||||
top: -0.5rem;
|
||||
left: 0.1rem;
|
||||
}
|
||||
|
||||
.sidenote:before {
|
||||
content: counter(sidenote-counter) " ";
|
||||
font-size: 1rem;
|
||||
top: -0.5rem;
|
||||
}
|
||||
|
||||
blockquote .sidenote,
|
||||
blockquote .margin-note {
|
||||
margin-right: -82%;
|
||||
min-width: 59%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.fullwidth,
|
||||
table.fullwidth {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.table-wrapper {
|
||||
overflow-x: auto;
|
||||
font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
|
||||
}
|
||||
|
||||
.sans {
|
||||
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
||||
letter-spacing: .03em;
|
||||
}
|
||||
|
||||
code, pre > code {
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 1.0rem;
|
||||
line-height: 1.42;
|
||||
-webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS. See https://github.com/edwardtufte/tufte-css/issues/81#issuecomment-261953409 */
|
||||
}
|
||||
|
||||
.sans > code {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h1 > code,
|
||||
h2 > code,
|
||||
h3 > code {
|
||||
font-size: 0.80em;
|
||||
}
|
||||
|
||||
.margin-note > code,
|
||||
.sidenote > code {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
font-size: 0.9rem;
|
||||
width: 52.5%;
|
||||
margin-left: 2.5%;
|
||||
overflow-x: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
pre.fullwidth > code {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.fullwidth {
|
||||
max-width: 90%;
|
||||
clear:both;
|
||||
}
|
||||
|
||||
span.newthought {
|
||||
font-variant: small-caps;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
input.margin-toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label.sidenote-number {
|
||||
display: inline-block;
|
||||
max-height: 2rem; /* should be less than or equal to paragraph line-height */
|
||||
}
|
||||
|
||||
label.margin-toggle:not(.sidenote-number) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iframe-wrapper {
|
||||
position: relative;
|
||||
padding-bottom: 56.25%; /* 16:9 */
|
||||
padding-top: 25px;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.iframe-wrapper iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
article {
|
||||
width: 84%;
|
||||
padding-left: 8%;
|
||||
padding-right: 8%;
|
||||
}
|
||||
|
||||
hr,
|
||||
section > p,
|
||||
section > footer,
|
||||
section > table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
width: 97%;
|
||||
}
|
||||
|
||||
section > dl,
|
||||
section > ol,
|
||||
section > ul {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
figure {
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
figcaption,
|
||||
figure.fullwidth figcaption {
|
||||
margin-right: 0%;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-left: 1.5em;
|
||||
margin-right: 0em;
|
||||
}
|
||||
|
||||
blockquote p,
|
||||
blockquote footer {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
label.margin-toggle:not(.sidenote-number) {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.sidenote,
|
||||
.margin-note {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.margin-toggle:checked + .sidenote,
|
||||
.margin-toggle:checked + .margin-note {
|
||||
display: block;
|
||||
float: left;
|
||||
left: 1rem;
|
||||
clear: both;
|
||||
width: 95%;
|
||||
margin: 1rem 2.5%;
|
||||
vertical-align: baseline;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.table-wrapper,
|
||||
table {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.org-link.external::after
|
||||
{ content: "↗"
|
||||
; vertical-align: super
|
||||
; font-size: 1rem
|
||||
; line-height: 0
|
||||
}
|
||||
|
||||
.center
|
||||
{ align-items: center
|
||||
; justify-content: center
|
||||
; display: flex
|
||||
; max-width: 55%
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
.center
|
||||
{ max-width: 90%
|
||||
}
|
||||
}
|
||||
|
||||
.navbar
|
||||
{ padding: 0 1rem
|
||||
; font-size: 1rem
|
||||
; color: var(--ds-velvet-grey)
|
||||
; height: 2rem
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.navbar {
|
||||
color: var(--ds-untitled-2)
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-list
|
||||
{ list-style-type: none
|
||||
; padding-left: 0
|
||||
; font-size: 1.2rem
|
||||
; display: flex
|
||||
; flex-direction: row
|
||||
; flex-wrap: wrap
|
||||
; column-gap: 1.5rem
|
||||
}
|
||||
|
||||
.navbar-list li
|
||||
{ display: inline
|
||||
; margin-top: 0
|
||||
}
|
||||
|
||||
#page-info
|
||||
{ list-style-type: none
|
||||
; padding-left: 0
|
||||
; font-size: 0.8rem
|
||||
; color: var(--ds-velvet-grey)
|
||||
; text-align: center
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
#page-info {
|
||||
color: var(--ds-untitled-2)
|
||||
}
|
||||
}
|
||||
|
||||
.home-link
|
||||
{ text-decoration: none
|
||||
}
|
||||
|
||||
#references ul
|
||||
{ width: auto
|
||||
}
|
||||
|
||||
figcaption {
|
||||
margin-right: -60%;
|
||||
width: 50%;
|
||||
margin-top: 1.4rem;
|
||||
line-height: 1.3;
|
||||
max-width: unset;
|
||||
}
|
||||
|
||||
figure.fullwidth {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
figure.fullwidth figcaption {
|
||||
margin-right: 0%;
|
||||
float: none;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
figcaption,
|
||||
figure.fullwidth figcaption {
|
||||
margin-right: 0%;
|
||||
float: none;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.empty-section-message
|
||||
{ color: var(--ds-untitled-2);
|
||||
; font-style: italic
|
||||
; text-align: center
|
||||
; max-width: 55%
|
||||
; font-size: 1.5rem
|
||||
}
|
||||
|
||||
.latex-fragment
|
||||
{ fill: currentColor
|
||||
}
|
||||
|
||||
.latex-fragment.display-math
|
||||
{ display: block
|
||||
/* Center it — do we want to do that? */
|
||||
; align-items: center
|
||||
; justify-content: center
|
||||
; display: flex
|
||||
; max-width: 55%
|
||||
; width: 55%
|
||||
}
|
||||
|
||||
p > .latex-fragment.display-math
|
||||
{ max-width: 100%
|
||||
; width: 100%
|
||||
}
|
||||
Reference in New Issue
Block a user