From 9dca888d7d3bd9d3c10cd7069535ae39be49a70b Mon Sep 17 00:00:00 2001 From: Annwan Date: Wed, 31 Jul 2024 11:28:24 +0200 Subject: [PATCH] init --- .gitignore | 4 ++ Makefile | 22 ++++++ main.tex | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 221 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 main.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d7ddcd --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +* +!*.tex +!.gitignore +!Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d38139f --- /dev/null +++ b/Makefile @@ -0,0 +1,22 @@ +.PHONY: clean all + +DPI?=300 + +all: main.png +clean: + rm -f main.pdf + rm -f main.svg + rm -f main-tmp.svg + rm -f main.png + +main.pdf: main.tex + latexmk -lualatex -interaction=nonstopmode main + +main.svg: main.pdf + inkscape -o main-tmp.svg main.pdf 2>/dev/null + sed "s#font-family:Andika#font-family:Andika;font-feature-settings: 'ss13' 1#" main-tmp.svg > main.svg + rm main-tmp.svg + +main.png: main.svg + inkscape -d $(DPI) -b white --export-png-color-mode=RGB_8 -o main.png main.svg 2>/dev/null + diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..834438e --- /dev/null +++ b/main.tex @@ -0,0 +1,195 @@ +\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}