Skip to content

Instantly share code, notes, and snippets.

@puripuri2100
Last active December 22, 2018 13:56
Show Gist options
  • Save puripuri2100/9143639ef19c54abf5ac629c940dbd04 to your computer and use it in GitHub Desktop.
Save puripuri2100/9143639ef19c54abf5ac629c940dbd04 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
@require: stdjabook
@import: texlogo
@require: table
@require: code
let-block ctx +centering it =
line-break true true ctx (inline-fil ++ read-inline ctx it ++ inline-fil)
let-inline ctx \textrm it =
let ctxsf =
ctx |> StdJaBook.set-latin-font StdJaBook.font-latin-roman
in
read-inline ctxsf it
let-inline ctx \textss it =
let ctxss =
ctx |> StdJaBook.set-latin-font StdJaBook.font-latin-sans
in
read-inline ctxss it
let-inline ctx \textit it =
let ctxit =
ctx |> StdJaBook.set-latin-font StdJaBook.font-latin-italic
in
read-inline ctxit it
in
document (|
title = {\TeX;logo};
author = {};
show-title = false;
show-toc = false;
|) '<
+centering{
\tabular(fun t -> (
let (c, l, r) = (t#c, t#l, t#r) in
[
[c {}; c {\textrm{roman}}; c {\textss{sans}}; c {\textit{italic}} ];
[c {\code(`\TeX`);} ; c {\textrm{\TeX;}}; c {\textss{\TeX;}}; c {\textit{\TeX;}}];
[c {\code(`\eTeX`);} ; c {\textrm{\eTeX;}}; c {\textss{\eTeX;}}; c {\textit{\eTeX;}}];
[c {\code(`\LaTeX`);} ; c {\textrm{\LaTeX;}}; c {\textss{\LaTeX;}}; c {\textit{\LaTeX;}}];
[c {\code(`\LaTeXe`);} ; c {\textrm{\LaTeXe;}}; c {\textss{\LaTeXe;}}; c {\textit{\LaTeXe;}}];
[c {\code(`\BibTeX`);} ; c {\textrm{\BibTeX;}}; c {\textss{\BibTeX;}}; c {\textit{\BibTeX;}}];
[c {\code(`\pTeX`);} ; c {\textrm{\pTeX;}}; c {\textss{\pTeX;}}; c {\textit{\pTeX;}}];
[c {\code(`\epTeX`);} ; c {\textrm{\epTeX;}}; c {\textss{\epTeX;}}; c {\textit{\epTeX;}}];
[c {\code(`\pLaTeX`);} ; c {\textrm{\pLaTeX;}}; c {\textss{\pLaTeX;}}; c {\textit{\pLaTeX;}}];
[c {\code(`\pLaTeXe`);} ; c {\textrm{\pLaTeXe;}}; c {\textss{\pLaTeXe;}}; c {\textit{\pLaTeXe;}}];
[c {\code(`\pBibTeX`);} ; c {\textrm{\pBibTeX;}}; c {\textss{\pBibTeX;}}; c {\textit{\pBibTeX;}}];
[c {\code(`\upTeX`);} ; c {\textrm{\upTeX;}}; c {\textss{\upTeX;}}; c {\textit{\upTeX;}}];
[c {\code(`\eupTeX`);} ; c {\textrm{\eupTeX;}}; c {\textss{\eupTeX;}}; c {\textit{\eupTeX;}}];
[c {\code(`\upLaTeX`);} ; c {\textrm{\upLaTeX;}}; c {\textss{\upLaTeX;}}; c {\textit{\upLaTeX;}}];
[c {\code(`\upLaTeXe`);} ; c {\textrm{\upLaTeXe;}}; c {\textss{\upLaTeXe;}}; c {\textit{\upLaTeXe;}}];
[c {\code(`\upBibTeX`);} ; c {\textrm{\upBibTeX;}}; c {\textss{\upBibTeX;}}; c {\textit{\upBibTeX;}}];
[c {\code(`\JTeX`);} ; c {\textrm{\JTeX;}}; c {\textss{\JTeX;}}; c {\textit{\JTeX;}}];
[c {\code(`\JLaTeX`);} ; c {\textrm{\JLaTeX;}}; c {\textss{\JLaTeX;}}; c {\textit{\JLaTeX;}}];
[c {\code(`\JBibTeX`);} ; c {\textrm{\JBibTeX;}}; c {\textss{\JBibTeX;}}; c {\textit{\JBibTeX;}}];
[c {\code(`\LuaTeX`);} ; c {\textrm{\LuaTeX;}}; c {\textss{\LuaTeX;}}; c {\textit{\LuaTeX;}}];
[c {\code(`\LuaLaTeX`);} ; c {\textrm{\LuaLaTeX;}}; c {\textss{\LuaLaTeX;}}; c {\textit{\LuaLaTeX;}}];
[c {\code(`\XeTeX`);} ; c {\textrm{\XeTeX;}}; c {\textss{\XeTeX;}}; c {\textit{\XeTeX;}}];
[c {\code(`\XeLaTeX`);} ; c {\textrm{\XeLaTeX;}}; c {\textss{\XeLaTeX;}}; c {\textit{\XeLaTeX;}}];
[c {\code(`\pdfTeX`);} ; c {\textrm{\pdfTeX;}}; c {\textss{\pdfTeX;}}; c {\textit{\pdfTeX;}}];
[c {\code(`\pdfLaTeX`);} ; c {\textrm{\pdfLaTeX;}}; c {\textss{\pdfLaTeX;}}; c {\textit{\pdfLaTeX;}}];
[c {\code(`\ConTeXt`);} ; c {\textrm{\ConTeXt;}}; c {\textss{\ConTeXt;}}; c {\textit{\ConTeXt;}}];
[c {\code(`\LyX`);} ; c {\textrm{\LyX;}}; c {\textss{\LyX;}}; c {\textit{\LyX;}}];
[c {\code(`\TikZ`);} ; c {\textrm{\TikZ;}}; c {\textss{\TikZ;}}; c {\textit{\TikZ;}}];
[c {\code(`\KOMAScript`);} ; c {\textrm{\KOMAScript;}}; c {\textss{\KOMAScript;}}; c {\textit{\KOMAScript;}}];
[c {\code(`\LaTeXTeX`);} ; c {\textrm{\LaTeXTeX;}}; c {\textss{\LaTeXTeX;}}; c {\textit{\LaTeXTeX;}}];
[c {\code(`\PiCTeX`);} ; c {\textrm{\PiCTeX;}}; c {\textss{\PiCTeX;}}; c {\textit{\PiCTeX;}}];
[c {\code(`\teTeX`);} ; c {\textrm{\teTeX;}}; c {\textss{\teTeX;}}; c {\textit{\teTeX;}}];
[c {\code(`\SageTeX`);} ; c {\textrm{\SageTeX;}}; c {\textss{\SageTeX;}}; c {\textit{\SageTeX;}}];
[c {\code(`\TTH`);} ; c {\textrm{\TTH;}}; c {\textss{\TTH;}}; c {\textit{\TTH;}}];
[c {\code(`\HeVeA`);} ; c {\textrm{\HeVeA;}}; c {\textss{\HeVeA;}}; c {\textit{\HeVeA;}}];
[c {\code(`\KaTeX`);} ; c {\textrm{\KaTeX;}}; c {\textss{\KaTeX;}}; c {\textit{\KaTeX;}}];
[c {\code(`\KET`);} ; c {\textrm{\KET;}}; c {\textss{\KET;}}; c {\textit{\KET;}}];
[c {\code(`\KETpic`);} ; c {\textrm{\KETpic;}}; c {\textss{\KETpic;}}; c {\textit{\KETpic;}}];
[c {\code(`\LaTeXiT`);} ; c {\textrm{\LaTeXiT;}}; c {\textss{\LaTeXiT;}}; c {\textit{\LaTeXiT;}}];
[c {\code(`\LaTeXML`);} ; c {\textrm{\LaTeXML;}}; c {\textss{\LaTeXML;}}; c {\textit{\LaTeXML;}}];
[c {\code(`\pTeXsT`);} ; c {\textrm{\pTeXsT;}}; c {\textss{\pTeXsT;}}; c {\textit{\pTeXsT;}}];
[c {\code(`\BaSiX`);} ; c {\textrm{\BaSiX;}}; c {\textss{\BaSiX;}}; c {\textit{\BaSiX;}}];
[c {\code(`\TeXonLaTeX`);} ; c {\textrm{\TeXonLaTeX;}}; c {\textss{\TeXonLaTeX;}}; c {\textit{\TeXonLaTeX;}}];
[c {\code(`\ApTeX`);} ; c {\textrm{\ApTeX;}}; c {\textss{\ApTeX;}}; c {\textit{\ApTeX;}}];
[c {\code(`\DVIPDFMx`);} ; c {\textrm{\DVIPDFMx;}}; c {\textss{\DVIPDFMx;}}; c {\textit{\DVIPDFMx;}}];
]
))(fun xs ys -> (
let thin = stroke 0.5pt Color.black in
let thick = stroke 1pt Color.black in
match (ys, List.reverse ys) with
| (y0 :: y1 :: y2 :: _, ylast :: _) ->
( match (xs, List.reverse xs) with
| (x0 :: x1 :: _ :: x3 :: _, xlast :: _) ->
let gsY1 =
[y1] |> List.map (fun y ->
thin (Gr.line (x0, y) (xlast, y))) in
let gsY2 =
[y0; ylast] |> List.map (fun y ->
thick (Gr.line (x0, y) (xlast, y))) in
let gsX =
[x1] |> List.map (fun x ->
thin (Gr.line (x, y0) (x, ylast))) in
List.concat [
gsX; gsY1; gsY2;
]
| _ -> []
)
| _ -> []
));
}
>
@require: pervasives
@require: math
let-inline ctx \TeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fE = ctx |> set-manual-rising (0pt -' (size *' 0.15))
|> read-inline
in
f {T} ++ kern (size *' 0.125) ++ fE {E} ++ kern (size *' 0.08) ++ f {X}
let-inline ctx \eTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {${\epsilon}} ++ f {-} ++ kern (size *' 0.08) ++ f {\TeX;}
let-inline ctx \LaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fA = ctx |> set-font-size (size *' 0.85)
|> set-manual-rising (size *' 0.1)
|> read-inline
in
f {L} ++ kern (size *' 0.3) ++ fA {A} ++ kern (size *' 0.15) ++ f {\TeX;}
let-inline ctx \LaTeXe =
let size = get-font-size ctx in
let fe = ctx |> set-manual-rising (0pt -' (size *' 0.125))
|> read-inline
in
let f = read-inline ctx in
f {\LaTeX;} ++ inline-skip (size *' 0.15) ++ f {2} ++ fe {${\epsilon}}
let-inline ctx \BibTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fI = ctx |> set-font-size (size *' 0.75)
|> read-inline
in
let fB = ctx |> set-font-size (size *' 0.75)
|> read-inline
in
f {B} ++ kern (size *' 0.05) ++ fI {I} ++ kern (size *' 0.025) ++ fB {B} ++ kern (size *' 0.08) ++ f {\TeX;}
let-inline ctx \pTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {p} ++ kern (size *' 0.05) ++ f {\TeX;}
let-inline ctx \epTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {${\epsilon}} ++ f {-} ++ kern (size *' 0.08) ++ f {\pTeX;}
let-inline ctx \pLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {p} ++ kern (size *' 0.05) ++ f {\LaTeX;}
let-inline ctx \pLaTeXe =
let size = get-font-size ctx in
let f = read-inline ctx in
f {p} ++ kern (size *' 0.05) ++ f {\LaTeXe;}
let-inline ctx \pBibTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {p} ++ kern (size *' 0.05) ++ f {\BibTeX;}
let-inline ctx \upTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {up} ++ kern (size *' 0.05) ++ f {\TeX;}
let-inline ctx \eupTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {${\epsilon}} ++ f {-} ++ kern (size *' 0.08) ++ f {\upTeX;}
let-inline ctx \upLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {up} ++ kern (size *' 0.05) ++ f {\LaTeX;}
let-inline ctx \upLaTeXe =
let size = get-font-size ctx in
let f = read-inline ctx in
f {up} ++ kern (size *' 0.05) ++ f {\LaTeXe;}
let-inline ctx \upBibTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {up} ++ kern (size *' 0.05) ++ f {\BibTeX;}
let-inline ctx \JTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fJ = ctx |> set-manual-rising (0pt -' (size *' 0.2))
|> read-inline
in
fJ {J} ++ kern (size *' 0.15) ++ f {\TeX;}
let-inline ctx \JLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fJ = ctx |> set-manual-rising (0pt -' (size *' 0.2))
|> read-inline
in
fJ {J} ++ kern (size *' 0.15) ++ f {\LaTeX;}
let-inline ctx \JBibTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fJ = ctx |> set-manual-rising (0pt -' (size *' 0.2))
|> read-inline
in
fJ {J} ++ kern (size *' 0.15) ++ f {\BibTeX;}
let-inline ctx \LuaTeX =
let f = read-inline ctx in
f {Lua} ++ f {\TeX;}
let-inline ctx \LuaLaTeX =
let f = read-inline ctx in
f {Lua} ++ f {\LaTeX;}
let-inline ctx \XeTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fE = ctx |> set-manual-rising (0pt -' (size *' 0.15))
|> read-inline
in
f {X} ++ kern (size *' 0.08) ++ fE {Ǝ} ++ kern (size *' 0.13) ++ f {\TeX;}
let-inline ctx \XeLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fE = ctx |> set-manual-rising (0pt -' (size *' 0.15))
|> read-inline
in
f {X} ++ kern (size *' 0.08) ++ fE {Ǝ} ++ kern (size *' 0.1) ++ f {\LaTeX;}
let-inline ctx \pdfTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {pdf} ++ inline-skip (size *' 0.08)++ f {\TeX;}
let-inline ctx \pdfLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {pdf} ++ inline-skip (size *' 0.08)++ f {\LaTeX;}
let-inline ctx \ConTeXt =
let size = get-font-size ctx in
let f = read-inline ctx in
f {C} ++ kern (size *' 0.0333) ++ f {on} ++ kern (size *' 0.0667) ++ f {\TeX;} ++ kern (size *' 0.0333) ++ f {t}
let-inline ctx \LyX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fY = ctx |> set-manual-rising (0pt -' (size *' 0.25))
|> read-inline
in
f {L} ++ kern (size *' 0.1667) ++ fY {Y} ++ kern (size *' 0.125) ++ f {X}
let-inline ctx \TikZ =
let f = read-inline ctx in
let fk = ctx |> set-font Latin (`Junicode-it`, 1., 0.)
|> read-inline
in
f {Ti} ++ fk {k} ++ f {Z}
let-inline ctx \KOMAScript =
let size = get-font-size ctx in
let f = read-inline ctx in
f {K} ++ inline-skip (size *' 0.05) ++ f {O} ++ inline-skip (size *' 0.05)
++ f {M} ++ inline-skip (size *' 0.05) ++ f {A} ++ inline-skip (size *' 0.1)
++ f {-} ++ inline-skip (size *' 0.1) ++ f {Script}
let-inline ctx \LaTeXTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fA = ctx |> set-font-size (size *' 0.85)
|> set-manual-rising (size *' 0.1)
|> read-inline
in
f {(} ++ kern (size *' 0.15) ++ f {L} ++ kern (size *' 0.3)
++ fA {A} ++ kern (size *' 0.2) ++ f{)} ++ kern (size *' 0.15) ++ f{\TeX;}
let-inline ctx \PiCTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fI = ctx |> set-manual-rising (0pt -' (size *' 0.25))
|> read-inline
in
f{P} ++ kern (size *' 0.12) ++ fI {I} ++ kern (size *' 0.075) ++ f {C}
++ kern (size *' 0.11) ++ f {\TeX;}
let-inline ctx \SageTeX =
let f = read-inline ctx in
f {Sage} ++ f{\TeX;}
let-inline ctx \teTeX =
let f = read-inline ctx in
f {te\TeX;}
let-inline ctx \TTH =
let size = get-font-size ctx in
let f = read-inline ctx in
let fT = ctx |> set-manual-rising (0pt -' (size *' 0.2))
|> set-font-size (size *' 0.8)
|> read-inline
in
f {T} ++ fT {T} ++ f {H}
let-inline ctx \HeVeA =
let size = get-font-size ctx in
let f = read-inline ctx in
let fE = ctx |> set-manual-rising (size *' 0.1)
|> set-font-size (size *' 0.7)
|> read-inline
in
f {H} ++ fE {E} ++ kern (size *' 0.07) ++ f {V} ++ kern ( size *' 0.08) ++ fE {E} ++ f {A}
let-inline ctx \KaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fA = ctx |> set-font-size (size *' 0.8)
|> set-manual-rising (size *' 0.1)
|> read-inline
in
f {K} ++ kern (size *' 0.15) ++ fA {A} ++ kern (size *' 0.15) ++ f {\TeX;}
let-inline ctx \KET =
let size = get-font-size ctx in
let f = read-inline ctx in
let fE = ctx |> set-manual-rising (0pt -' (size *' 0.15))
|> read-inline
in
f {K} ++ kern (size *' 0.125) ++ fE {E} ++ kern (size *' 0.1) ++ f {T}
let-inline ctx \KETpic =
read-inline ctx {\KET;pic}
let-inline ctx \LaTeXiT =
let size = get-font-size ctx in
let f = read-inline ctx in
let fi = ctx |> set-manual-rising (size *' 0.15)
|> read-inline
in
f {\LaTeX;} ++ kern (size *' 0.07) ++ fi {i} ++ kern (size *' 0.01667) ++ f{T}
let-inline ctx \LaTeXML =
let size = get-font-size ctx in
let f = read-inline ctx in
let fA = ctx |> set-font-size (size *' 0.85)
|> set-manual-rising (size *' 0.1)
|> read-inline
in
let fE = ctx |> set-manual-rising (0pt -' (size *' 0.15))
|> read-inline
in
let fXML = ctx |> set-font-size (size *' 0.8)
|> read-inline
in
f {L} ++ kern (size *' 0.3) ++ fA {A} ++ kern (size *' 0.15) ++ f {T} ++ kern (size *' 0.125) ++ fE {E} ++ fXML {XML}
let-inline ctx \pTeXsT =
let size = get-font-size ctx in
let f = read-inline ctx in
f {p} ++ kern (size *' 0.21) ++ f {\TeX;} ++ kern (size *' 0.1) ++ f {s} ++ kern (size *' 0.21) ++ f{T}
let-inline ctx \BaSiX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fAI = ctx |> set-manual-rising (0pt -' (size *' 0.225))
|> read-inline
in
f {B} ++ kern (size *' 0.18) ++ fAI {A} ++ kern (size *' 0.15) ++ f {S}
++ kern (size *' 0.1) ++ fAI {I} ++ kern (size *' 0.1) ++ f {X}
let-inline ctx \TeXonLaTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
let fon = ctx |> set-font-size (size *' 0.8)
|> read-inline
in
f {\TeX;} ++ inline-skip (size *' 0.2) ++ fon {ON} ++ inline-skip (size *' 0.2) ++ f {\LaTeX;}
let-inline ctx \ApTeX =
let size = get-font-size ctx in
let f = read-inline ctx in
f {A} ++ kern (size *' 0.08) ++ f {\pTeX;}
let-inline ctx \DVIPDFMx = read-inline ctx {DVIPDFM${x}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment