Annwan
3 months ago
4 changed files with 360 additions and 199 deletions
-
2.gitignore
-
6Makefile
-
195main.tex
-
356main.typ
@ -1,4 +1,4 @@ |
|||
* |
|||
!*.tex |
|||
!*.typ |
|||
!.gitignore |
|||
!Makefile |
@ -1,195 +0,0 @@ |
|||
\documentclass{standalone} |
|||
\usepackage{fontspec} |
|||
\setmainfont{Andika}[ |
|||
StylisticSet=13 |
|||
] |
|||
\usepackage{tikz} |
|||
\usetikzlibrary{positioning, calc} |
|||
\newcommand\full{2} |
|||
\newcommand\half{0.5*\full} |
|||
\newcommand\station[4]{ |
|||
\directlua{ |
|||
tex.sprint("\\node[#4] (#1) {};") |
|||
tex.sprint("\\fill[black] (#1) circle (.2);") |
|||
tex.sprint("\\fill[white] (#1) circle (.1);") |
|||
local x, y, dir = 0, 0, "" |
|||
if "#3" == "above" then y = 0.5 |
|||
elseif "#3" == "below" then y = -0.5 |
|||
elseif "#3" == "left" then x, dir = -0.1, "left" |
|||
elseif "#3" == "right" then x, dir = 0.2, "right" |
|||
elseif "#3" == "above left" then x, y, dir = -0.2, 0.5, "left" |
|||
elseif "#3" == "above right" then x, y, dir = 0.2, 0.5, "right" |
|||
elseif "#3" == "below right" then x, y, dir = 0.2, -0.5, "right" |
|||
elseif "#3" == "below left" then x, y, dir = -0.2, -0.5, "left" |
|||
end |
|||
\usepackage[margin=5mm]{geometry} |
|||
local tag = "" |
|||
if "#2" ~= "" and string.sub("#1", 1, 1) ~= "l" then |
|||
tag = " {\\footnotesize\\bf #1}" |
|||
end |
|||
tex.sprint("\\node["..dir.."] (#1-lbl) at ($ (#1) + ("..x..","..y..") $) {{\\it #2}" .. tag .. "};") |
|||
} |
|||
} |
|||
\begin{document} |
|||
\begin{tikzpicture}[ |
|||
on grid, |
|||
every path/.style={rounded corners = 5, line width=4}, |
|||
singletracked/.style={line width=2,dotted} |
|||
] |
|||
\node (Origin) at (0, 0) {}; |
|||
%%% Stations |
|||
\station{MZS}{Spawn}{below}{left=0 of Origin} |
|||
\station{MZL}{Liztarp}{above}{left=\full of MZS} |
|||
\station{KCM2}{}{}{left=\full of MZL} |
|||
\station{KCM}{Port Marcy}{below left}{below=.3 of KCM2} |
|||
\station{KCC}{Parkow}{below right}{above left=\full and \full of KCM2} |
|||
\station{KCC2}{}{}{right=.3 of KCC} |
|||
\station{KCY}{Yija}{left}{above=3*\full of KCC} |
|||
\station{KCY2}{}{}{right=.3 of KCY} |
|||
\station{KCY3}{}{}{right=.3 of KCY2} |
|||
\station{TTS}{Tantsang}{below left}{above left=\full and \full of KCY} |
|||
\station{TTS2}{}{}{below=.3 of TTS} |
|||
\station{HEQ}{Qòhééhinyèè}{above}{above left = 2*\full and \full of TTS} |
|||
\station{MZT}{Tisheongja}{above}{right=\full of MZS} |
|||
\station{MZC}{New Citadel}{below}{right=\full of MZT} |
|||
\station{XXH}{The Hole}{above}{right=\full of MZC} |
|||
\station{KZK}{Kozdenen}{below left}{above right=\full and \full of XXH} |
|||
\station{KZK2}{}{}{left=.3 of KZK} |
|||
\station{RER}{Ŗijeləm}{left}{above=\full of KZK} |
|||
\station{EPI}{i Êpcêm}{left}{above=\full of RER} |
|||
\station{HLG}{Glitter Island}{left}{below=\full of TTS} |
|||
\station{HLF}{Fliegenpilz}{left}{below=\full of HLG} |
|||
\station{HLH}{Hummland Hbf.}{below left}{below=\full of HLF} |
|||
\station{HLH2}{}{}{left=.3 of HLH} |
|||
\station{HLA}{Auŕol Uraxe}{above}{left=1.5*\full of HLH} |
|||
\station{IMP}{Imerśal Pfr.}{below}{right=5*\half of KCC} |
|||
\node[above=.3 of IMP] (IMP2) {}; |
|||
\station{VAN}{Vansterél}{left}{right=2.5*\full of IMP2} |
|||
\station{EKH}{Alnangaemak Harbor}{below left}{right=3*\full of KZK} |
|||
\station{EKH2}{}{}{left=.3 of EKH} |
|||
\station{XIO}{Iopvixen's}{below}{right=\full of EKH} |
|||
\station{TTM}{Moshas}{right}{below right=\full and \full of KCM2} |
|||
\station{TQT}{Þunan Ŋáce}{right}{below=\full of TTM} |
|||
\station{TQT2}{}{}{left=.3 of TQT} |
|||
\station{TQS}{Saxland}{right}{below right=3*\half and \full of TQT} |
|||
\station{NAN}{Nārospiňt}{right}{below=\full of TQS} |
|||
\station{ARY}{Yuɱa}{right}{color=red, below=\full of NAN} |
|||
\station{AMA}{Amuj}{below}{below left=\full and \full of ARY} |
|||
\station{AMA2}{}{}{above=.3 of AMA} |
|||
\station{KZG}{Guardian Farm}{above}{left=1.5*\full of AMA} |
|||
\station{AMM}{Mäġ}{below}{left=\full of KZG} |
|||
\station{AYK}{Khaath Tran}{above}{right=2*\full of AMA} |
|||
\station{AYR}{Ruôy Rûdak}{below}{right=\full of AYK} |
|||
\station{FSL}{Fishland}{above}{right=\full of AYR} |
|||
\station{SXG}{Slab Exchange}{below}{right=2*\full of KCY} |
|||
\station{EDE}{Ettêre Ðiffyt}{above}{right=3*\full of SXG} |
|||
\station{KCI}{Iron Farm}{right}{above=\full of KCY2} |
|||
\station{UNG}{United Ŋations HQ}{above}{above right=\full and \full of KCI} |
|||
\station{KCE}{Esane}{below}{right=\full of UNG} |
|||
\station{KCS}{Šingtin Xeh}{below}{below right=\full and \full of KCY} |
|||
\station{KCP}{Pereganesia}{above}{right=2*\full of KCS} |
|||
\station{VAF}{Cyerin Forest}{left}{below right=\full and 2*\full of KCP} |
|||
\station{EKG}{Enkavak Govt.}{below right}{above=\full of EKH} |
|||
\station{EKE}{Ekativak}{right}{below=\full of EKH} |
|||
\station{HEN}{Nóreesá}{below}{left= \full of HEQ} |
|||
\station{DOR}{Rintìh}{right}{below left=\full and \full of HEN} |
|||
\station{ZTZ}{Zotazil}{right}{below =\half of DOR} |
|||
\station{ZTB}{Balijom}{right}{below =\half of ZTZ} |
|||
\station{XXP}{Phoeŋix}{right}{below=\half of ZTB} |
|||
\station{MRY}{Maryland}{right}{below left=\full and 1.5*\full of HLA} |
|||
\station{TQN}{Ŋájaþáw}{above}{left=\full of TQT} |
|||
\station{MBA}{Aberville B. L.}{below}{left=\full of TQN} |
|||
\station{ZGW}{Ʒimh Gwynh}{above}{left=\full of MBA} |
|||
\station{HEP}{Pámù}{right}{above=\full of TTS} |
|||
\station{UOS}{Suboršnava}{left}{below=\full of AYK} |
|||
\station{KTC}{Czägrÿxyx}{below}{right=\full of FSL} |
|||
\station{FEC}{Cesarea}{above}{right=\full and\full of XIO} |
|||
\station{FES}{Sidón y Biblos}{left}{above right=\full and \full of FEC} |
|||
\station{XXM}{Mesa Temple}{left}{above=\half of FES} |
|||
\station{XMB}{Marti's Base}{left}{above=\half of XXM} |
|||
\station{XMV}{Marti's Village}{left}{above=\half of XMB} |
|||
\station{EKA}{Gashanggak}{below}{above left=\full and \full of EKH} |
|||
\station{EKN}{Ngishmgak}{right}{above left=\full and \full of EKA} |
|||
\station{EKT}{Thurishgak}{right}{above=\half of EKN} |
|||
\station{LRI}{Idanopolis}{left}{below left=\full and \full of AMA} |
|||
\station{NBT}{Ŋibraltar}{left}{left=2*\full of KCM} |
|||
|
|||
%%% Lines |
|||
% Northern |
|||
\draw[red!50!black] (TTS) -- ++(\half, 0) -- ++(\half, -\half) -- (KCY) -- |
|||
(KCC) -- ++(0, -\half) -- ++(\half, -\half) -- (KCM2) -- (MZL) -- (MZS); |
|||
\draw[red!50!black, singletracked] (MZS) -- (MZT) -- (MZC) -- (XXH); |
|||
\draw[red!50!black] (XXH) -- ++(\half, 0) -- ++(\half, \half) -- (KZK) -- |
|||
(RER) -- (EPI); |
|||
% Transversal |
|||
\draw[green!50!black] (TTS) -- (HEP) -- ++(0,\half) -- ++(-\half, \half) -- |
|||
(HEQ) -- (HEN) -- ++(-\half, 0) -- ++(-\half, -\half) -- (DOR) -- (ZTZ) -- |
|||
(ZTB) -- (XXP); |
|||
\draw[green!50!black] (TTS2) -- (HLG) -- (HLF) -- (HLH) -- ++(0, -\half) -- |
|||
++(\half, -\half) -- (KCC); |
|||
\draw[green!50!black] (KCC2) -- (IMP) -- (KZK2); |
|||
\draw[green!50!black] (KZK) -- (EKH2); |
|||
\draw[green!50!black] (EKH) -- (XIO) -- (FEC) -- ++(\half, 0) -- ++(\half, |
|||
\half) -- (FES) -- (XXM) -- (XMB) -- (XMV); |
|||
% Southern |
|||
\draw[blue!75!black] (NBT) -- (KCM) -- ++(\half, 0) -- ++(\half,-\half) -- (TTM) -- (TQT) -- ++(0, -0.5*\half) -- |
|||
++(\full, -\full) -- (TQS) -- (NAN) -- (ARY) -- ++(0, .3-\half) -- ++(-\half, |
|||
-\half) -- (AMA2) -- ++(-\half,0) -- ++(-\half,-\half) -- (LRI); |
|||
% Aquatic |
|||
\draw[orange!50!red] (AMM) -- (KZG) -- (AMA) -- (AYK) -- (AYR) -- (FSL) -- |
|||
(KTC); |
|||
% Slab |
|||
\draw[black!50!white] (KCY3) -- (SXG) -- (EDE); |
|||
% Šingcun |
|||
\draw[green!50!blue] (KCE) -- (UNG) -- ++(-\half, 0) -- ++(-\half, -\half) |
|||
-- (KCI) -- (KCY2) -- ++(0, -\half) -- ++(\half, -\half) -- (KCS) -- (KCP) -- |
|||
++(3*\half, 0) -- ++(\half, -\half) -- (VAF) -- (VAN); |
|||
% Enkavak Rail |
|||
\draw[violet] (EKG) -- (EKH) -- (EKE); |
|||
\draw[violet] (EKH) -- ++(0,\half) -- ++(-\half,\half) -- (EKA) -- ++(-\half,0) -- ++(-\half,\half) -- (EKN) -- (EKT); |
|||
% Phoeŋix |
|||
% North-Western |
|||
\draw[pink!75!red] (HLH2) -- (HLA) -- ++(-\full, 0) -- ++(-\half, -\half) -- |
|||
(MRY); |
|||
% Western |
|||
\draw[brown!75!black] (TQT2) -- (TQN) -- (MBA) -- (ZGW); |
|||
% Magenta Line |
|||
\draw[magenta] (AYK) -- (UOS); |
|||
|
|||
%%% Key |
|||
|
|||
% Frame |
|||
\fill[gray!33!white] (2*\full, -\full) rectangle (7.5*\full, -5.5*\full); |
|||
% Title |
|||
\node (Key-Title) at (9*\half, -3*\half) {\LARGE LINES}; |
|||
% Left |
|||
\station{l-Cent}{Central}{left}{below left = \half and 2*\half of |
|||
Key-Title} |
|||
\draw[red!50!black] (l-Cent) -- ++(\half, 0); |
|||
\station{l-Tran}{Transversal}{left}{below=.75*\half of l-Cent} |
|||
\draw[green!50!black] (l-Tran) -- ++(\half, 0); |
|||
\station{l-Sout}{Southern}{left}{below=.75*\half of l-Tran} |
|||
\draw[blue!75!black] (l-Sout) -- ++(\half, 0); |
|||
\station{l-Colo}{Colonial}{left}{below=.75*\half of l-Sout} |
|||
\draw[brown!75!black] (l-Colo) -- ++(\half, 0); |
|||
\station{l-West}{Western}{left}{below=.75*\half of l-Colo} |
|||
\draw[pink!75!red] (l-West) -- ++(\half, 0); |
|||
% Right |
|||
\station{l-Shin}{Šingcun}{right}{below right =\half and 2*\half of Key-Title} |
|||
\draw[green!50!blue] (l-Shin) -- ++(-\half, 0); |
|||
\station{l-Slab}{Slab}{right}{below=.75*\half of l-Shin} |
|||
\draw[black!50!white] (l-Slab) -- ++(-\half, 0); |
|||
\station{l-Aqua}{Aquatic}{right}{below=.75*\half of l-Slab} |
|||
\draw[orange!50!red] (l-Aqua) -- ++(-\half, 0); |
|||
\station{l-Enka}{Enkavak Rail}{right}{below=.75*\half of l-Aqua} |
|||
\draw[violet] (l-Enka) -- ++(-\half, 0); |
|||
\station{l-Mage}{Transfortunate}{right}{below=.75*\half of l-Enka} |
|||
\draw[magenta] (l-Mage) -- ++(-\half, 0); |
|||
|
|||
% Single tracked warning |
|||
\station{l-Single}{Single tracked segment}{right}{below=3.5*\full of Key-Title} |
|||
\draw[singletracked] (l-Single) -- ++(-\full, 0); |
|||
% Map Title |
|||
\node at (5*\full, 5*\full) {\bf\Huge Ŋəcraft Railways}; |
|||
\end{tikzpicture} |
|||
\end{document} |
@ -0,0 +1,356 @@ |
|||
#import "@preview/cetz:0.2.2" |
|||
#import "@preview/fontawesome:0.4.0": * |
|||
|
|||
#set page( |
|||
width: 120cm, |
|||
height: 120cm, |
|||
margin: 0cm, |
|||
) |
|||
#set text( |
|||
font: "Andika", |
|||
stylistic-set: 13, |
|||
size: 1cm |
|||
) |
|||
|
|||
#let thick = 0.5cm |
|||
#let transit = fa-icon("bus") |
|||
#let c = ( |
|||
black: color.luma(0%), |
|||
white: color.luma(100%), |
|||
central: color.rgb(50%, 0%, 0%), |
|||
transversal: color.rgb(0%, 50%, 0%), |
|||
southern: color.rgb(0%, 0%, 50%), |
|||
slab: color.luma(50%), |
|||
western: color.rgb("#8f6030"), |
|||
aquatic: color.rgb("#ff4000"), |
|||
ngafrican: color.rgb("#ff8f8f"), |
|||
transfortunate: color.rgb(100%, 0%, 100%), |
|||
cuba: color.rgb("#b3b3ff"), |
|||
archipelago: color.rgb("#fcba03"), |
|||
transamujan: color.rgb("#924e7d"), |
|||
forest: color.rgb("#4d8787"), |
|||
corner: color.rgb("#be93e3"), |
|||
local: color.luma(0%), |
|||
) |
|||
#let pos = ( |
|||
above : (x: 0, y: 2.5, anchor: "south"), |
|||
below : (x: 0, y: -2, anchor: "north"), |
|||
left : (x: -2, y: 0, anchor: "east"), |
|||
right : (x: 2, y: 0, anchor: "west"), |
|||
above-left : (x: -2, y: 2.5, anchor: "south-east"), |
|||
above-right: (x: 2, y: 2.5, anchor: "south-west"), |
|||
below-left : (x: -2, y: -2, anchor: "north-east"), |
|||
below-right: (x: 2, y: -2, anchor: "north-west") |
|||
|
|||
) |
|||
|
|||
#let mks(x, y, n, po) = (x: x, y: y, name: n, pos: po, phantom: none) |
|||
#let mkp(x, y) = (x: x, y:y, phantom: true) |
|||
|
|||
|
|||
#let stations = ( |
|||
// Central line 0 |
|||
tts1: mks( -47.7, 50, [Tantsang], none), |
|||
_005: mkp( -35, 50), |
|||
_000: mkp( -30, 45), |
|||
kcy1: mks( -30, 30, [Yija], none), |
|||
kcc1: mks( -30, 10, [Parkow], "below-right"), |
|||
_001: mkp( -30, 5), |
|||
_002: mkp( -25, 0), |
|||
kcm1: mks( -20, 0, [Port Marcy], none), |
|||
mzl1: mks( -10, 0, [Liztarp], "above"), |
|||
mzs1: mks( 0, 0, [Spawn], "below"), |
|||
mzt1: mks( 10, 0, [Tisheongja], "above"), |
|||
mzc1: mks( 20, 0, [New Citadel], "below"), |
|||
xvh1: mks( 30, 0, [Vee’s Hole], "below-right"), |
|||
_003: mkp( 35, 0), |
|||
_004: mkp( 40, 5), |
|||
kzk1: mks( 40, 10, [Kozdenen #transit], "above-right"), |
|||
rer1: mks( 40, 20, [R̦ijeləm], "right"), |
|||
epi1: mks( 40, 30, [i Êpcêm], "right"), |
|||
// Transversal 1 |
|||
ort1: mks( -90, 35, [Todoian], "right"), |
|||
xg21: mks( -90, 40, [Guam 2], "right"), |
|||
xph1: mks( -90, 45, [Phoeŋix], "right"), |
|||
ztb1: mks( -90, 50, [Balijom], "right"), |
|||
ztz1: mks( -90, 55, [Zotazil], "right"), |
|||
dof1: mks( -90, 60, [Froglight Junction #transit], "right"), |
|||
_010: mkp( -90, 65), |
|||
_011: mkp( -85, 70), |
|||
dor1: mks( -80, 70, [Rintìh], "above"), |
|||
hen1: mks( -70, 70, [Nóreesá], "below"), |
|||
heq1: mks( -60, 70, [Qòhééhinyèè], "above"), |
|||
_014: mkp( -55, 70), |
|||
_015: mkp( -50, 65), |
|||
hep1: mks( -50, 60, [Pámù], "left"), |
|||
tts2: mks( -50, 50, [Tantsang], "left"), |
|||
hlg1: mks( -50, 40, [Glitter Island], "left"), |
|||
hlf1: mks( -50, 30, [Fliegenpilz], "left"), |
|||
hlh1: mks( -50, 20, [Mitthumm City], "above-left"), |
|||
_012: mkp( -50, 15), |
|||
_013: mkp( -45, 10), |
|||
kcc2: mks( -27.7, 10, [Parkow], none), |
|||
imp1: mks( 0, 10, [Imerchal Pfr.], "below"), |
|||
kzk2: mks( 42.3, 10, [], none), |
|||
ekh1: mks( 70, 10, [Enkavak Harbour], "below-right"), |
|||
xio1: mks( 90, 10, [Iopvixen’s Fort], "above"), |
|||
xce1: mks( 100, 10, [Cesarea], "below"), |
|||
_016: mkp( 105, 10), |
|||
_017: mkp( 110, 15), |
|||
xsb1: mks( 110, 20, [Sidón y Biblos], "right"), |
|||
xmt1: mks( 110, 25, [Mesa Temple], "right"), |
|||
xmb1: mks( 110, 30, [Marti’s base], "right"), |
|||
xmv1: mks( 110, 35, [Marti’s village], "right"), |
|||
// Southern 2 |
|||
kcm2: mks( -20, -2.3, [Port Marcy], "below"), |
|||
_020: mkp( -12.3, -2.3), |
|||
_021: mkp( -10, -5), |
|||
ttm1: mks( -10, -10, [Moshas], "right"), |
|||
tqt1: mks( -10, -20, [Þunan Ŋáce], "right"), |
|||
tqs1: mks( -10, -30, [Saxland], "right"), |
|||
nan1: mks( -10, -40, [Nārospiňt], "right"), |
|||
ary1: mks( -10, -50, [Yuɱa #transit], "right"), |
|||
rpk1: mks( -10, -60, [Kanga], "right"), |
|||
_022: mkp( -10, -65), |
|||
_023: mkp( -15, -70), |
|||
ama1: mks( -20, -70, [Drebzha], none), |
|||
_024: mkp( -25, -70), |
|||
_025: mkp( -30, -65), |
|||
xsh1: mks( -30, -60, [Scarecrow Hbr.\ #transit], "right"), |
|||
fpa1: mks( -30, -50, [Allium], "left"), |
|||
arf1: mks( -30, -40, [Flagstaff], "left"), |
|||
nbt1: mks( -30, -30, [Ŋibraltar], "left"), |
|||
_026: mkp( -30, -5), |
|||
_027: mkp( -27.7, -2.3), |
|||
// Slab 3 |
|||
kcy2: mks(-25.4, 30, [Yija], none), |
|||
sxg1: mks( 0, 30, [Slab Exchange], "above"), |
|||
edt1: mks( 20, 30, [Tordanniòge], "above"), |
|||
// Western 4 |
|||
vaz1: mks( -80, 10, [The Vazr], "right"), |
|||
pet1: mks( -80, 0, [TTPD Era #transit], "right"), |
|||
pe11: mks( -80, -10, [1989 Era #transit], "right"), |
|||
_040: mkp( -80, -15), |
|||
_041: mkp( -75, -20), |
|||
zgw1: mks( -70, -20, [Ʒimh Gwynh], "below-left"), |
|||
cba1: mks( -60, -20, [Anweigh], "below-right"), |
|||
tqn1: mks( -40, -20, [Ŋájaþáw], "above"), |
|||
tqt2: mks( -12.3, -20, [Þunan Ŋáce], none), |
|||
// Aquatic 5 |
|||
amm1: mks( -40, -100, [Mawg], "left"), |
|||
kzg1: mks( -40, -90, [Blighted Shrine], "left"), |
|||
_050: mkp( -40, -79.6), |
|||
_051: mkp( -35, -74.6), |
|||
ama2: mks( -20, -74.6, [Drebzha], none), |
|||
ayk1: mks( 10, -74.6, [Kaath Tran], "below-left"), |
|||
ayr1: mks( 20, -74.6, [Ruôy Rûdak], "below"), |
|||
fst1: mks( 30, -74.6, [Tarpoenstad], none), |
|||
trc1: mks( 40, -74.6, [Czägrÿxyx], "below"), |
|||
xcc1: mks( 50, -74.6, [Capitol], "above"), |
|||
xci1: mks( 60, -74.6, [Citadel Island], none), |
|||
// Ŋafrican 6 |
|||
mry1: mks( -80, 20, [Maryland], "above"), |
|||
hla1: mks( -70, 20, [Auŕol Uraxe], "below"), |
|||
hlh2: mks( -54.6, 20, [Mitthumm City], none), |
|||
// Transfortunate 7 |
|||
ayk2: mks( 10, -76.9, [Kaath Tran], none), |
|||
rmj1: mks( 10, -90, [Madness Junction], "right"), |
|||
awv1: mks( 10, -100, [V́aisi], none), |
|||
_070: mkp( 10, -105), |
|||
_071: mkp( 15, -110), |
|||
han1: mks( 20, -110, [Hanebrug], "below"), |
|||
// Cuba line 8 |
|||
hlh3: mks( -52.3, 20, [Mitthum City], none), |
|||
obr1: mks( -52.3, 0, [Oberia], "above-left"), |
|||
_080: mkp( -52.3, -12.3), |
|||
_081: mkp( -57.7, -17.7), |
|||
cba2: mks( -60, -17.7, [Anweigh], none), |
|||
_082: mkp( -62.3, -17.7), |
|||
_083: mkp( -70, -27.7), |
|||
cbv1: mks( -70, -30, [Chillvana], "left"), |
|||
cbc1: mks( -70, -40, [Old Cuba], "left"), |
|||
cbf1: mks( -70, -50, [Frostanamo Bay], none), |
|||
_084: mkp( -70, -55), |
|||
_085: mkp( -65, -60), |
|||
cbm1: mks( -60, -60, [Faeran], "below-right"), |
|||
cbn1: mks( -40, -60, [Mt. Navia], "above"), |
|||
xsh2: mks( -32.3, -60, [Scarecrow Harbour], none), |
|||
// Archipelago 9 |
|||
cbm2: mks( -60, -62.3, [Faeran], none), |
|||
svs1: mks(-60, -70, [Sta Wejs], "below"), |
|||
// Transamujan 10 |
|||
ama3: mks( -20, -76.9, [Drebzha], "below"), |
|||
_100: mkp( -25, -76.9), |
|||
_101: mkp( -30, -81.9), |
|||
lri1: mks( -30, -90, [Idanopolis], "right"), |
|||
// Local -- Enkavak a |
|||
eke1: mks( 70, 0, [Ekativak], "right"), |
|||
ekh2: mks( 70, 7.3, [Enkavak Harbour], none), |
|||
ekn1: mks( 70, 20, [Ngishmgak], "left"), |
|||
ekt1: mks( 70, 30, [Thurishgak], "left"), |
|||
_a00: mkp( 70, 12), |
|||
_a01: mkp( 80, 17), |
|||
ekg1: mks( 80, 20, [Enkavak Govt.], "above"), |
|||
// Local -- Shingtsun b |
|||
kce1: mks( -27.7, 60, [Esane], "right"), |
|||
ung1: mks( -27.7, 50, [United Ŋations HQ], "right"), |
|||
kci1: mks( -27.7, 40, [North Yija], "right"), |
|||
kcy3: mks( -27.7, 30, [Yija], "above-right"), |
|||
_b00: mkp( -27.7, 25), |
|||
_b01: mkp( -25, 22.3), |
|||
kcs1: mks( -20, 22.3, [Shingtin Xeh], "above-right"), |
|||
kcp1: mks( 0, 22.3, [Peregansia], "below"), |
|||
vaf1: mks( 20, 22.3, [Cyerin Forest], "above"), |
|||
van1: mks( 30, 22.3, [Vanstérelle], "below"), |
|||
// Local -- Fishland c |
|||
fst2: mks( 30, -72.3, [Tarpoenstad], "above-left"), |
|||
fsn1: mks( 30, -60, [Northern Plains], "left"), |
|||
// Local -- Kyaw Cen Sheep d |
|||
kcc3: mks( -32.3, 10, [Parkow], none), |
|||
kch1: mks( -32.3, 0, [Sheep Isl.], "left"), |
|||
// Local -- Imerchal e |
|||
imc1: mks( -10, 12.3, [West Chalmosique], "above"), |
|||
imp2: mks( 0, 12.3, [], none), |
|||
imq1: mks( 10, 12.3, [Quépichal], "right"), |
|||
_e00: mkp( 17.7, 20), |
|||
vaf2: mks( 20, 20, [Cyerin Forest], none), |
|||
// Forest 11 |
|||
ams1: mks( -30, -72.3, [Shangu], "above-left"), |
|||
ama4: mks( -20, -72.3, [Drebzha], none), |
|||
sak1: mks( -10, -72.3, [Kuzhgub Peninsula], "right"), |
|||
// Local -- Aistóv́y f |
|||
awr1: mks( 0, -102.3, [Rikížmüs], "below"), |
|||
awv2: mks( 10, -102.3, [V́aisi], "above-left"), |
|||
awm1: mks( 20, -102.3, [Meǯjaiti], "below"), |
|||
awk1: mks( 30, -102.3, [Kentóv́us], "above"), |
|||
// Local -- Everglacier g |
|||
cbf2: mks(-72.3, -50, [Frostanamo Bay], "left"), |
|||
cbe1: mks(-72.3, -60, [Everglacier Nat’l Park], "left"), |
|||
// Corner 12 |
|||
dcj1: mks(62.3, -60, [Dchâjâ Mountain], "right"), |
|||
xci2: mks(62.3, -74.6, [Citadel Island], "right"), |
|||
crv1: mks(62.3, -90, [Vizdanja], "right"), |
|||
// Key |
|||
_00a: mks(110, -20, [Central], "right"), |
|||
_00b: mkp(100, -20), |
|||
_01a: mks(110, -25, [Transversal], "right"), |
|||
_01b: mkp(100, -25), |
|||
_02a: mks(110, -30, [Southern], "right"), |
|||
_02b: mkp(100, -30), |
|||
_03a: mks(110, -35, [Slab], "right"), |
|||
_03b: mkp(100, -35), |
|||
_04a: mks(110, -40, [Western], "right"), |
|||
_04b: mkp(100, -40), |
|||
_05a: mks(110, -45, [Aquatic], "right"), |
|||
_05b: mkp(100, -45), |
|||
_06a: mks(110, -50, [Ŋafrican], "right"), |
|||
_06b: mkp(100, -50), |
|||
_07a: mks(110, -55, [Transfortunate], "right"), |
|||
_07b: mkp(100, -55), |
|||
_08a: mks(110, -60, [Cuba], "right"), |
|||
_08b: mkp(100, -60), |
|||
_09a: mks(110, -65, [Archipelago], "right"), |
|||
_09b: mkp(100, -65), |
|||
_10a: mks(110, -70, [Transamujan], "right"), |
|||
_10b: mkp(100, -70), |
|||
_11a: mks(110, -75, [Forest], "right"), |
|||
_11b: mkp(100, -75), |
|||
_12a: mks(110, -80, [Corner], "right"), |
|||
_12b: mkp(100, -80), |
|||
_x0a: mks(110, -85, [Local], "right"), |
|||
_x0b: mkp(100, -85), |
|||
_x1a: mks(110, -90, [In Construction], "right"), |
|||
_x1b: mkp(100, -90), |
|||
) |
|||
|
|||
========================== |
|||
|
|||
#let lines = ( |
|||
("central", "tts1", "_005", "_000", "kcy1", "kcc1", "_001", "_002", "kcm1", "mzl1", "mzs1", "mzt1", "mzc1", "xvh1", "_003", "_004", "kzk1", "rer1", "epi1"), |
|||
("transversal", "ort1", "xg21", "xph1", "ztb1", "ztz1", "dof1", "_010", "_011", "dor1", "hen1", "heq1", "_014", "_015", "hep1", "tts2", "hlg1", "hlf1", "hlh1", "_012", "_013", "kcc1", "imp1", "kzk2", "ekh1", "xio1", "xce1", "_016", "_017", "xsb1", "xmt1", "xmt1", "xmb1", "xmv1"), |
|||
("southern", "kcm2", "_020", "_021", "ttm1", "tqt1", "tqs1", "nan1", "ary1", "rpk1", "_022", "_023", "ama1", "_024", "_025", "xsh1", "fpa1", "arf1", "nbt1", "_026", "_027", "kcm2"), |
|||
("slab", "kcy2", "sxg1", "edt1"), |
|||
("western", "pet1", "pe11", "_040", "_041", "zgw1", "cba1", "tqn1", "tqt2"), |
|||
("aquatic", "amm1", "kzg1", "_050", "_051", "ama2", "ayk1", "ayr1", "fst1", "trc1", "xcc1", "xci1"), |
|||
("ngafrican", "mry1", "hla1", "hlh2"), |
|||
("transfortunate", "ayk2", "rmj1", "awv1"), |
|||
("cuba", "hlh3", "obr1", "_080", "_081", "cba2", "_082", "_083", "cbv1", "cbc1", "cbf1"), ("cuba", "cbm1", "cbn1", "xsh2"), |
|||
("archipelago", "cbm2", "svs1"), |
|||
("transamujan", "ama3", "_100", "_101", "lri1"), |
|||
("local", "eke1", "ekh2", "ekn1", "ekt1"), ("local", "ekh2", "_a00", "_a01", "ekg1"), |
|||
("local", "kce1", "ung1", "kci1", "kcy3", "_b00", "_b01", "kcs1", "kcp1", "vaf1", "van1"), |
|||
("local", "fst2", "fsn1"), |
|||
("local", "kcc3", "kch1"), |
|||
("local", "imp2", "imq1", "_e00", "vaf2"), |
|||
("forest", "ams1", "ama4", "sak1"), |
|||
("local", "awr1", "awv2", "awm1", "awk1"), |
|||
("local", "cbf2", "cbe1"), |
|||
("corner", "crv1", "xci2", "dcj1"), |
|||
|
|||
// Key |
|||
("central", "_00a", "_00b"), |
|||
("transversal", "_01a", "_01b"), |
|||
("southern", "_02a", "_02b"), |
|||
("slab", "_03a", "_03b"), |
|||
("western", "_04a", "_04b"), |
|||
("aquatic", "_05a", "_05b"), |
|||
("ngafrican", "_06a", "_06b"), |
|||
("transfortunate", "_07a", "_07b"), |
|||
("cuba", "_08a", "_08b"), |
|||
("archipelago", "_09a", "_09b"), |
|||
("transamujan", "_10a", "_10b"), |
|||
("forest", "_11a", "_11b"), |
|||
("corner", "_12a", "_12b"), |
|||
("local", "_x0a", "_x0b"), |
|||
) |
|||
#let clines = ( |
|||
("western", "vaz1", "pet1"), |
|||
("cuba", "cbf1", "_084", "_085", "cbm1"), |
|||
("transfortunate", "awv1", "_070", "_071", "han1"), |
|||
("local", "imc1", "imp2"), |
|||
|
|||
// Key |
|||
("local", "_x1a", "_x1b") |
|||
) |
|||
|
|||
#align(center + horizon, cetz.canvas( |
|||
length: 0.5cm, |
|||
{ |
|||
import cetz.draw: * |
|||
for (n, ..l) in lines { |
|||
let coords = l.map(it => (stations.at(it).x, stations.at(it).y)) |
|||
line(..coords, stroke: thick + c.at(n),) |
|||
} |
|||
for (n, ..l) in clines { |
|||
let coords = l.map(it => (stations.at(it).x, stations.at(it).y)) |
|||
line(..coords, stroke: (paint: c.at(n), dash: "loosely-dotted", thickness: thick/2)) |
|||
} |
|||
for (code, s) in stations { |
|||
if s.phantom != none {continue} |
|||
circle((s.x, s.y), s: none, fill: c.black, radius: 1.5, name: code) |
|||
circle((s.x, s.y), s: none, fill: c.white, radius: 0.75) |
|||
if s.pos != none { |
|||
if code.starts-with("_") { |
|||
let label = [#s.name] |
|||
content( |
|||
(s.x + pos.at(s.pos).x, s.y + pos.at(s.pos).y), |
|||
anchor: pos.at(s.pos).anchor, |
|||
label |
|||
) |
|||
} else { |
|||
let label = [#s.name *#upper(code.slice(0, 3))*] |
|||
content( |
|||
(s.x + pos.at(s.pos).x, s.y + pos.at(s.pos).y), |
|||
anchor: pos.at(s.pos).anchor, |
|||
label |
|||
) |
|||
} |
|||
|
|||
} |
|||
} |
|||
content((60, 60), text(size: 5cm,)[*Ŋəcraft Railways*]) |
|||
content((105, -10), text(size: 2cm)[*Key*]) |
|||
} |
|||
|
|||
)) |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue