diff options
Diffstat (limited to '')
| -rw-r--r-- | milano/trams.tex | 1355 | 
1 files changed, 866 insertions, 489 deletions
diff --git a/milano/trams.tex b/milano/trams.tex index 641ea6e..3281fff 100644 --- a/milano/trams.tex +++ b/milano/trams.tex @@ -16,10 +16,12 @@  \cs_new_eq:NN \tlputleft \tl_put_left:Nn  \cs_new_eq:NN \tlputright \tl_put_right:Nn -\cs_new_eq:NN \seqsetsplit \seq_set_split:Nnn +\cs_new_eq:NN \seqsetsplit \seq_set_split:Nne  \cs_new_eq:NN \seqMapInline \seq_set_map:NNn  \cs_new_eq:NN \seqPopRight \seq_pop_right:NN  \cs_new_eq:NN \seqUse \seq_use:Nn +\cs_new_eq:NN \seqshow \seq_show:N +  % scratch space for multi-line labels later  \seq_new:N \nodeseq @@ -62,6 +64,21 @@  \contourlength{.2ex} + +\def\labelContour#1{% +    \seqsetsplit\nodeseq{ |}{#1}% +    \seqMapInline\temp\nodeseq{\contour{white}{##1}}% +    \seqUse\temp{\\} +} + +\def\mlabel(#1, #2, #3, #4, #5)#6{ +    \tlset\nodename{#6} +    \tlremove\nodename{|} +    \node[label, align=center, anchor=#2, rotate=#3] at ($(\nodename.#1) + (#4:#5)$) +     {\labelContour{#6}}; +} +\def\slabel(#1, #2)#3{\mlabel(#1, #2, 0, 0, 0){#3}} +  \begin{document}  \begin{tikzpicture}[ @@ -79,6 +96,7 @@        -{Latex[length=5mm]},      },      stop/.style = { +      black,        rounded corners=0.1cm,        line width=0.05cm,        fill=white, @@ -123,6 +141,7 @@        line width=0.05cm,      },      label/.style = { +      black,        font=\scriptsize,        align=center,      }, @@ -137,24 +156,24 @@    ]    % movable circle line -  \newcommand{\polar}[1]{($#1 + (-.2,.5)$)} -  \def\rad{5} +  \newcommand{\polar}[1]{($#1 + (0,.5)$)} +  \def\rad{6}    \def\centerarc(#1:#2:#3) -    { ($(-.2,.5) + ({#3*cos(#1)},{#3*sin(#1)})$) arc (#1:#2:#3) } +    { ($(0,.5) + ({#3*cos(#1)},{#3*sin(#1)})$) arc (#1:#2:#3) }    \begin{pgfonlayer}{stops}      \pgfmathsetmacro{\offset}{0.1*tan(45/2)} -      % core stations -    \node[stop4, rotate=45] (Lega Lombarda) at (-1.1,4.5) {}; +    \node[stop4, rotate=35] (Lega Lombarda) at (-.7,4.4) {}; +    \node[stop4, rotate=35] (Arena) at (-0.2,3.7) {};      \node[stop4] (Lanza) at (0,3) {};      \node[stop4] (Cusani) at (0,2) {};      \node[stop6, below=1 of Cusani.east, anchor=east] (Cordusio) {}; -    \node[stop2, below=1.5 of Cordusio.four eighth, anchor=one half] (DuomoN) {}; +    \node[stop2, below=1 of Cordusio.four eighth, anchor=one half] (DuomoN) {};      \node[stop4, below=.6 of DuomoN.one half, anchor=one half] (Duomo) {};      \draw[stop]        ($(DuomoN.two half)+(90:0.1)+(0:0.1)$) @@ -168,149 +187,171 @@      ;      % left side -    \node[stop2, rotate=90, left=1.5 of Cordusio.center, anchor=one half] (Ancona) {}; -    \node[stop2, rotate=-90, anchor=two half] (Cadorna) at ($(-2.7, 2) + (0,\offset)$) {}; +    \node[stop2, rotate=90, left=1.2 of Cordusio.center, anchor=one half] (Via Meravigli) {}; +    \node[stop2, rotate=90, left=2.4 of Cordusio.center, anchor=one half] (Largo d'Ancona) {}; +    \node[stop2, rotate=-90, anchor=two half] (Piazza Virgilio) at ($(-3.6, 1.6) + (0,\offset)$) {}; +    \node[stop2, rotate=-90, anchor=two half] (Via 20 Settembre) at ($(-4.7, 1.6) + (0,\offset)$) {}; -    \node[stop1] (Castello Cairoli) at (-1.1,2.5) {}; -    \node[stop1] (Ricasoli) at (-2.2,2.5) {}; +    \node[stop1] (Castello Cairoli) at (-1.2,2.8) {}; +    \node[stop1] (Ricasoli) at (-2.2,2.8) {}; -    \node[stop3, rotate=-45] (Via Torino Via S Maria Valle) at (-1,-2.5) {}; +    \node[stop3, rotate=-50] (Via Torino Via Palla) at (-.5,-1.4) {}; +    \node[stop3, rotate=-50] (Via Torino Via S Maria Valle) at ($(Via Torino Via Palla) + (40:-.7)$) {}; +    \node[stop3, rotate=-50] (Carrobbio) at ($(Via Torino Via S Maria Valle) + (40:-.7)$) {}; +    \node[stop2, rotate=-50, anchor=one half] (Corso Genova Via Sapeto) at ($(Carrobbio.one half) + (40:-1.3)$) {};      % ring -    \node[stop3, rotate=-30] (Centrale) at \polar{(65:8.2)} {}; -    \node[stop2, anchor=west, rotate=70] (Monte Santo) at \polar{(70:5.1)} {}; -    \node[stop3, anchor=center, rotate=57] (Repubblica) at \polar{(60:5)} {}; -    \node[stop3, anchor=center, rotate=45] (Vittorio Veneto) at \polar{(50:5)} {}; -    \node[stop1, anchor=center] (Porta Venezia) at \polar{(30:5)} {}; -    \node[stop2, anchor=one half, rotate=20] (Viale Piave) at \polar{(20:5)} {}; -    \node[stop3, anchor=center, rotate=90] (Piazza 5 Giornate) at \polar{(-3:5)} {}; -    \node[stop1, anchor=center] (Monte Nero Via Spartaco) at \polar{(-16:5)} {}; -    \node[stop1, anchor=center, rotate=-30] (Viale Monte Nero Via Bergamo) at \polar{(-30:5)} {}; -    \node[stop1, anchor=center, rotate=-45] (Porta Romana) at \polar{(-45:5)} {}; -    \node[stop1, anchor=center, rotate=-50] (Via Ripamonti Viale Sabotino) at \polar{(-50:5)} {}; -    \node[stop1, anchor=center, rotate=10] (Porta Lodovica) at \polar{(-81:5)} {}; -    \node[stop2, anchor=two half, rotate=90] (24 Maggio) at \polar{(-97:5)} {}; -    \node[stop2, anchor=two half, rotate=71] (Via Vigenavo) at \polar{(-108:5)} {}; -    \node[stop4, anchor=north center, rotate=-38] (Piazzale Cantore) at \polar{(-118:5)} {}; -    \node[stop2, rotate=-45, anchor=two half] (Porta Genoa) at ($(Piazzale Cantore.two half) + (-134:1)$) {}; -    \node[stop2, rotate=40, anchor=two half] (Piazzale Coni Zugna Via Solari) at \polar{(-140:5)} {}; - -    \node[stop1, anchor=center] (Piazzale Aquileia) at \polar{(-160:5)} {}; -    \node[stop1, anchor=center] (Piazzale Baracca) at \polar{(174:5)} {}; -    \node[stop2, anchor=center, rotate=71] (Quinto Alpini) at \polar{(161:5)} {}; -    \node[stop2, anchor=two half, rotate=-40] (Arco della Pace) at \polar{(145:4.6)} {}; -    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Procaccini) at \polar{(140:5.4)} {}; -    \node[stop2, anchor=center, rotate=25] (Via Bramante) at \polar{(120:5.4)} {}; -    \node[stop3, anchor=center, rotate=9] (Via Farini Via Ferrari) at \polar{(99:5.4)} {}; - - - - - - +    \node[stop3, rotate=-30] (Centrale) at \polar{(61:\rad+4.2)} {}; +    \node[stop2, anchor=west, rotate=65] (Monte Santo) at \polar{(62:\rad+.1)} {}; +    \node[stop3, anchor=center, rotate=57] (Repubblica) at \polar{(55:\rad)} {}; +    \node[stop3, anchor=center, rotate=45] (Vittorio Veneto) at \polar{(45:\rad)} {}; +    \node[stop1, anchor=center] (Porta Venezia) at \polar{(32:\rad)} {}; +    \node[stop2, anchor=one half, rotate=25] (Viale Piave) at \polar{(25:\rad)} {}; +    \node[stop2, anchor=one half, rotate=19] (Tricolore) at \polar{(19:\rad)} {}; +    \node[stop2, anchor=one half, rotate=13] (Viale Premuda) at \polar{(13:\rad)} {}; +    \node[stop3, anchor=center, rotate=90] (Piazza 5 Giornate) at \polar{(-3:\rad)} {}; +    \node[stop1, anchor=center] (Monte Nero Via Spartaco) at \polar{(-16:\rad)} {}; +    \node[stop1, anchor=center] (Viale Monte Nero Via Bergamo) at \polar{(-27.5:\rad)} {}; +    \node[stop1, anchor=center, rotate=-45] (Viale Monte Nero Via Pier Lombardo) at \polar{(-36:\rad)} {}; +    \node[stop1, anchor=center, rotate=-45] (Porta Romana) at \polar{(-44:\rad)} {}; +    \node[stop1, anchor=center, rotate=-45] (Viale Sabotino) at \polar{(-51:\rad)} {}; +    \node[stop1, anchor=center, rotate=-50] (Via Ripamonti Viale Sabotino) at \polar{(-58:\rad)} {}; +    \node[stop1, anchor=center] (Viale Bligny) at \polar{(-65:\rad)} {}; +    \node[stop1, anchor=center] (Via Bocconi) at \polar{(-74:\rad)} {}; +    \node[stop1, anchor=center, rotate=0] (Porta Lodovica) at \polar{(-85:\rad)} {}; +    \node[stop1, anchor=center] (Viale Col di Lana) at \polar{(-96:\rad)} {}; +    \node[stop2, anchor=two half, rotate=90] (24 Maggio) at \polar{(-106:\rad)} {}; +    \node[stop2, anchor=two half, rotate=60] (Via Vigenavo Viale Gorizia) at \polar{(-115:\rad)} {}; +    \node[stop4, anchor=north center, rotate=-45] (Piazzale Cantore) at \polar{(-130:\rad)} {}; +    \node[stop2, rotate=-47, anchor=two half] (Porta Genova) at ($(Piazzale Cantore.two half) + (-140:1)$) {}; +    \node[stop2, rotate=40, anchor=two half] (Piazzale Coni Zugna Via Solari) at \polar{(-140:\rad)} {}; + +    \node[stop1, anchor=center] (Viale Coni Zugna Via Foppa) at \polar{(-152:\rad)} {}; +    \node[stop1, anchor=center] (Piazzale Aquileia) at \polar{(-159:\rad)} {}; +    \node[stop1, anchor=center] (Viale San Michele del Carso Piazza De Meis) at \polar{(-165:\rad)} {}; +    \node[stop1, anchor=center] (Piazzale Baracca) at \polar{(184:\rad)} {}; +    \node[stop1, anchor=center] (Conciliazone) at \polar{(179:\rad)} {}; +    \node[stop1, anchor=center] (Via Arosto) at \polar{(174:\rad)} {}; +    \node[stop2, anchor=center, rotate=71] (Quinto Alpini) at \polar{(168:\rad)} {}; +    \node[stop2, anchor=two half, rotate=-50] (Corso Sempione Via Canova) at \polar{(145:\rad-.8)} {}; +    \node[stop2, anchor=center, rotate=-50] (Arco della Pace) at ($(Corso Sempione Via Canova) + (40:-.9)$) {}; +    \node[stop2, anchor=center, rotate=-50] (Via Pagano Via Canova) at ($(Corso Sempione Via Canova) + (40:-1.5)$) {}; + +    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Villasanta) at \polar{(140:\rad-.4)} {}; + +    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Procaccini) at \polar{(140:\rad+.4)} {}; + +    \node[stop1, anchor=center, rotate=35] (Piazza Gramsci) at \polar{(135:\rad+.4)} {}; +    \node[stop1, anchor=center, rotate=35] (Via Procaccini Via Lomazzo) at \polar{(130:\rad+.4)} {}; +    \node[stop1, anchor=center, rotate=35] (Via Procaccini Via Nono) at \polar{(124:\rad+.4)} {}; + +    \node[stop2, anchor=center, rotate=30] (Piazzale Cimitero Monumentale Via Bramante) at \polar{(118:\rad+.4)} {}; +    \node[stop1, anchor=center, rotate=35] (Monumentale) at \polar{(108:\rad+.4)} {}; +    \node[stop3, anchor=center, rotate=9] (Via Farini Via Ferrari) at \polar{(95:\rad+.4)} {}; + + +    \node[stop2, anchor=west, rotate=85] (Stazione Garibaldi) at \polar{(85:\rad+.1)} {}; +    \node[stop2, anchor=west, rotate=80] (Viale Monte Grappa Via Gioia) at \polar{(76:\rad+.1)} {}; +    \node[stop2, anchor=west, rotate=72] (Piazzale Principessa Clotilde Ospedale Fatebenefratelli) at \polar{(68:\rad+.1)} {}; + + +    \node[stop2, anchor=one half] at ($(Via Farini Via Ferrari.one half) - (0, .7)$) (Piazzale Baiamonti) {}; +    \node[stop2, anchor=one half] at ($(Piazzale Baiamonti.one half) - (0, .7)$) (Viale Montello) {}; +    % TODO: there is one missing here (Via Bramante Via Giannone)! +    \node[stop2, anchor=one half, rotate=50] at ($(Lega Lombarda.north one half) + (140:1)$) (Via Bramante Via Sarpi) {};      % west -    \node[stop1, left=2 of Piazzale Baracca] (De Angeli) {}; -    \node[stop1] (Segesta) at ($(De Angeli) + (-1.4,1)$) {}; -    \node[stop1, left=2 of Segesta] (San Siro Stadio) {}; +    \node[stop1] (San Siro Stadio) at ($(Piazzale Baracca) + (-8,0) + (140:.9*7)$) {}; -    \node[stop2, rotate=45, anchor=two half] (Domodossola) at ($(Corso Sempione Via Procaccini.one half) + (135:1.5)$) {}; -    \node[stop1, below left=1 of Domodossola.south one half, anchor=north] (Viale Boezio) {}; -    \node[stop1, below=0.4 of Viale Boezio] (6 Febbraio) {}; +    \node[stop2, rotate=45, anchor=two half] (Domodossola) at ($(Corso Sempione Via Procaccini.one half) + (140:2.8)$) {}; +    \node[stop1, anchor=north] at ($(Domodossola.south one half) + (45:-1.7) - (0,0.2)$) (Viale Boezio) {}; +    \node[stop1, below=.5 of Viale Boezio] (6 Febbraio) {};      % right side -    \node[stop3, rotate=90, anchor=east] (Missori) at ($(DuomoN) + (1.5,-0.1)$) {}; -    \node[stop3, rotate=90] (Augusto) at ($(Piazza 5 Giornate) - (1.2,0)$) {}; +    \node[stop3, rotate=90, anchor=east] (Missori) at ($(DuomoN) + (1.3,-0.1)$) {}; +    \node[stop3, rotate=90] (Corso Porta Vittoria Camera del Lavoro) at ($(Piazza 5 Giornate) - (0.9,0)$) {}; +    \node[stop3, rotate=90] (Palazzo di Guistizia) at ($(Piazza 5 Giornate) - (1.7,0)$) {}; +    \node[stop3, rotate=90] (Augusto) at ($(Piazza 5 Giornate) - (2.6,0)$) {};      \node[stop3, rotate=90, left=1 of Augusto.center, anchor=center] (Via Larga) {};      \node[stop2] (Piazza Fontana) at ($(Augusto) + (-0.5,1)$) {}; -    \node[stop2, rotate=45] (Crocetta) at ($(Missori) + (1,-1)$) {}; +    \node[stop2, rotate=35, anchor=two half] (Crocetta) at ($(Missori.south one half) + (-55:1.5)$) {}; +    \node[stop2, rotate=35, anchor=two half] (Corso Porta Romana Via S Sofia) at ($(Crocetta.two half) - (-55:.7)$) {};      % Città studi      \node[stop3, rotate=90, anchor=one half] (Adalaide di Savoia) at ($(Viale Piave.north two half) + (2.2,0)$) {}; -    \node[stop2, rotate=135, anchor=two half] (Valvassori Peroni) at ($(Adalaide di Savoia.one half) + (3,3)$) {}; -    \node[stop1, anchor=center] (Stazione Lambrate) at \polar{(32:11.9)} {}; -    \node[stop1, right=1 of Valvassori Peroni.south two half, anchor=center] (Rimembranze di Lambrate) {}; +    \node[stop2, rotate=130, anchor=two half] (Via Valvassori Peroni) at ($(Adalaide di Savoia.one half) + (40:8*.8 + 0.8)$) {}; +    \node[stop1, anchor=center] (Stazione Lambrate) at ($(Via Valvassori Peroni.south one half) + (0, 1.3) + (40:.3)$) {}; %\polar{(36:15.5)} {}; +    \node[stop1, anchor=center] (Rimembranze di Lambrate) at ($(Via Valvassori Peroni.south two half) + (1.3,0) + (40:.3)$) {}; -    \node[stop1, anchor=west] (Piazza Ferravilla) at ($(Adalaide di Savoia.south two half) + (1+\offset,-1)$) {}; -    \node[stop1, right=1.9 of Piazza Ferravilla] (Ortica) {}; +    \node[stop1, anchor=west] (Ortica) at ($(Adalaide di Savoia.south two half) + (6 + 1,-1)$) {};      % 33 & 5 -    \node[stop2, rotate=45, anchor=center] (Viale Tunisia) at \polar{(46:6.5)} {}; +    \node[stop2, rotate=45, anchor=center] (Viale Tunisia) at \polar{(42:\rad+1.5)} {}; +    \node[stop2, rotate=45, anchor=two half] (Porta Venezia Viale Tunisia) at ($(Viale Tunisia.two half) + (-45:1)$) {}; +    \node[stop2, rotate=45, anchor=two half] (Piazza 8 Novembre) at ($(Viale Tunisia.two half) + (-45:2)$) {};      % 5 -    \node[stop2, rotate=-45, anchor=two half] (Via Vitruvio) at \polar{(46:8-.2)} {}; +    \node[stop2, rotate=-45, anchor=two half] (Via Vitruvio) at \polar{(42.8:\rad+4-.2)} {}; +    \node[stop1] (Piazza Duca d'Aosta) at \polar{(50:\rad+4)} {}; +    \node[stop2, rotate=-45, anchor=two half] (Piazza Cincinnato) at ($(Via Vitruvio.two half) + (45:-1)$) {};      % 1 -    \node[stop1] (Greco Rovereto) at ($(Via Vitruvio.two half) + (2,2)$) {}; +    \node[stop1] (Greco Rovereto) at ($(Via Vitruvio.two half) + (45:7*.8)$) {};      % south -    \node[stop1, below=2 of Porta Lodovica] (Agrippa) {}; -    \node[stop2, below=3 of 24 Maggio] (Piazza Abbiategrasso) {}; -    \node[stop2, below=3 of Piazza Abbiategrasso] (Via dei Missaglie Via Baroni) {}; -    \node[stop1, below left=1 of Via dei Missaglie Via Baroni.two half] (Via Grandi Via Bouzzi Rozzano) {}; -    \node[stop1, left=3 of Via Grandi Via Bouzzi Rozzano] (Via G Rossa) {}; - -    \node[stop1] (Vigentino) at ($(Via Ripamonti Viale Sabotino) + (-50:5)$) {}; +    \node[stop2, below=7*.6+1.7 of 24 Maggio.one half, rotate=-55, anchor=one half] (Piazza Abbiategrasso) {}; -    % south west -    \node[stop1] (Via Valenza Alzaia Nav Grande) at ($(Porta Genoa.south one half) + (-.8,0)$) {}; -    \node[stop1] (Piazzale Negrelli) at ($(Via Valenza Alzaia Nav Grande.west) + (-140:4.5)$) {}; -    \node[stop1] (Lorenteggio) at ($(Piazzale Coni Zugna Via Solari.north one half) + (-143:5)$) {};      % south of Città studi -    \node[stop2, rotate=90, right=2 of Piazza 5 Giornate.two half, anchor=two half] (Piazza Emilia) {}; -    \node[stop1, anchor=west] (Via Arconati) at ($(Piazza Emilia.south one half) + (.5,-1.5)$) {}; -    \node[stop1, right=1 of Via Arconati] (Viale Molise) {}; -    \node[stop1, right=3.8 of Piazza Emilia.two half] (Repetti) {}; -    \node[stop1] (Viale Ungheria Via Mercante) at ($(Repetti.east) + (2,-3)$) {}; -    \node[stop1] (Viale Ungheria) at ($(Viale Ungheria Via Mercante) - (0,1)$) {}; +    \node[stop2, rotate=90, right=4 of Piazza 5 Giornate.two half, anchor=two half] (Piazza Emilia) {}; +    \node[stop1] (Viale Molise) at ($(Piazza Emilia) + (3,-1.8)$) {}; +    \node[stop1, right=.9*6 of Piazza Emilia.two half] (Repetti) {}; +    \node[stop1] (Viale Ungheria) at ($(Repetti.east) + (0.7,-8*.9)$) {}; -    \node[stop1] (Via Comelico) at ($(Viale Monte Nero Via Bergamo.center) + (-30:3)$) {}; -    \node[stop1] (Piazza Salgari) at ($(Via Comelico) + (-30:0.3) + (1,0)$) {}; -    \node[stop1] (Via Monte Velino) at ($(Piazza Salgari.east) + (.5,1)$) {};      % north west -    \node[stop2, rotate=90] (Cenisio) at ($(Via Bramante) + (-1,1)$) {}; -    \node[stop2, rotate=90, left=1 of Cenisio.center, anchor=center] (Piazza Diocleziano) {}; -    \node[stop2, rotate=90, anchor=two half] (Piazza Firenze) at ($(Piazza Diocleziano.two half) + (-2,0)$) {}; +    \node[stop2, rotate=50] (Cenisio) at ($(Piazzale Cimitero Monumentale Via Bramante) + (140:1.5)$) {}; +    \node[stop2, rotate=50, anchor=center] (Piazza Diocleziano) at ($(Cenisio.center) + (140:1.5)$) {}; +    \node[stop2, rotate=90, anchor=two half] (Piazza Firenze) at ($(Piazza Diocleziano.north two half) + (-4,0)$) {}; -    \node[stop2, rotate=90, anchor=one half] (Via Mac Mahon Via Artieri) at ($(Piazza Diocleziano.north one half) + (-3.5,1.5)$) {}; -    \node[stop2, rotate=90, anchor=one half] (Piazza Castelli) at ($(Via Mac Mahon Via Artieri.one half) + (-1,0)$) {}; +    \node[stop2, rotate=90, anchor=one half] (Via Mac Mahon Via Artieri) at ($(Piazza Firenze.east) + (-1,2.6)$) {}; +    \node[stop2, rotate=90, anchor=one half] (Piazza Castelli) at ($(Via Mac Mahon Via Artieri.one half) + (-2,0)$) {}; -    \node[stop2, rotate=90] (Piazzale Accursio) at ($(Piazza Firenze) + (-2,0)$) {}; -    \node[stop2] (Piazzale Santorre di Santarosa) at ($(Piazza Castelli.north one half) + (-1,1)$) {}; -    \node[stop2, rotate=70, anchor=south one half, above=1 of Piazzale Santorre di Santarosa] (Certosa) {}; -    \node[stop2, rotate=70] (Roserio) at ($(Certosa) - (-20:2)$) {}; +    \node[stop2, rotate=90] (Piazzale Accursio) at ($(Piazza Firenze) + (-4,0)$) {}; +    \node[stop2, rotate=90, anchor=one half] (Piazzale Santorre di Santarosa) at ($(Piazza Castelli.one half) + (-4.8,0)$) {}; +    \node[stop2, rotate=50, anchor=two half] (Viale Espinasse Via Palizzi) at ($(Piazzale Santorre di Santarosa.north two half) + (-.7,0) + (140:1)$) {}; +    \node[stop2, rotate=50] (Roserio) at ($(Viale Espinasse Via Palizzi) + (140:6*.8)$) {}; -    \node[stop1, left=3 of Piazzale Accursio.two half] (Piazzale Cimitero Maggiore) {}; +    \node[stop1, left=4 + 4.2 of Piazzale Accursio.two half] (Piazzale Cimitero Maggiore) {};      % north -    \node[stop2, above=1 of Via Farini Via Ferrari.one half, anchor=one half] (Via Farini Via Valtellina) {}; -    \node[stop2, above=1 of Via Farini Via Valtellina] (Via Farini Viale Stelvio) {}; +    \node[stop2, above=2 of Via Farini Via Ferrari.one half, anchor=one half] (Via Farini Via Valtellina) {}; +    \node[stop2, above=1.8 of Via Farini Via Valtellina] (Via Farini Viale Stelvio) {}; -    \node[stop1, above=4.2 of Via Farini Viale Stelvio.two half] (Ospedale Niguarda) {}; -    \node[stop1, above=2 of Ospedale Niguarda.one half] (Niguarda Parco Nord) {}; -    \node[stop1] (Bausan) at ($(Via Farini Viale Stelvio.north one half) + (-4,.5)$) {}; +    \node[stop1] at ($(Via Farini Viale Stelvio.two half) + (0,1.8) + (140:4)$) (Ospedale Niguarda) {}; +    \node[stop1] (Niguarda Parco Nord) at ($(Ospedale Niguarda) + 5*(90:.7)$) {}; +    \node[stop1] (Bausan) at ($(Via Farini Viale Stelvio.north one half) + (-1.8,.5) + (140:.8*4+.3)$) {}; -    \node[stop1] (Via Ugo Bassi) at ($(Via Farini Via Ferrari.two half) + (0,.7) + (.2,.2)$) {}; +    \node[stop1] (Via Ugo Bassi) at ($(Via Farini Via Ferrari.two half) + (0,2) + (.4,0)$) {};      \node[stop2, anchor=one half] (Piazzale Lagosta) at ($(Via Ugo Bassi) + (2,1.2)$) {}; -    \node[stop2, rotate=-30, anchor=one half] (Viale Lunigiana) at ($(Centrale.center) + (60:1)$) {}; +    \node[stop2, rotate=-30, anchor=one half] (Centrale Via Tonale) at ($(Centrale.center) + (60:0.8)$) {}; +    \node[stop2, rotate=-30, anchor=one half] (Viale Lunigiana) at ($(Centrale.center) + (60:1.7)$) {}; -    \node[stop2, above=2.1 of Piazzale Lagosta.center, anchor=center] (Marche) {}; -    \node[stop2, above=2 of Marche.center, anchor=center] (Ca Granda) {}; -    \node[stop2, above=1 of Ca Granda] (Viale Testi Via S Marcellina) {}; -    \node[stop2, above=1 of Viale Testi Via S Marcellina] (Bicocca) {}; -    \node[stop1] (Precotto Interno Deposito) at ($(Bicocca.north two half) + (3.5,.5)$) {}; +    \node[stop1] (Viale Lunigiana Via Gioia) at \polar{(65:\rad+6.1)} {}; +    \node[stop1] (Piazza Carbonari) at \polar{(72:\rad+6.1)} {}; + +    \node[stop2, above=2.5 of Piazzale Lagosta.center, anchor=center] (Marche) {}; +    \node[stop2, above=2.4 of Marche.center, anchor=center] (Ca Granda) {}; +    \node[stop2, above=1.5 of Ca Granda] (Viale Testi Via S Marcellina) {}; -    \node[stop1, above=3 of Bicocca.one half] (Primo Maggio) {};      \node (Milano Porta Vittoria) at (8,-.5) {}; @@ -320,198 +361,259 @@      \pgfmathsetmacro{\offset}{0.1*tan(45/2)}      \pgfmathsetmacro{\line}{0.2} -    %% \foreach\angle in {-170,-160,...,180} { -    %%   \draw[help line, color=gray!50] \polar{(0,0)} -- \polar{(\angle:8)}; -    %%   \node at \polar{(\angle:8)} { \angle }; -    %% }; - -    \draw[railway outwards] -    (Centrale.center) -    {[rounded corners=0.01cm] -    -- (Centrale.four eighth) -    } -    -- \polar{(61:12)} -    arc (90:20:4.4) -    -- \polar{(32:12.1)} -    arc(10:-12:30) -    {[rounded corners=2cm] -    -- \polar{(-40:10.5)} -    -- \polar{(-134:9.5)} -    } -    -- ++(-140:4.5) -    node[label, below, anchor=north west] {Mortara}; - -    \draw[railway line] -    (Porta Genoa.five eighth) -    {[rounded corners=1cm] -    -- \polar{(-134:7)} -    } -    -- \polar{(-134:9.5)} -    -- ++(-140:4); - -    \draw[railway line] -    \polar{(32:12.1)} -    arc(10:3:30) -    -- ($(Ortica) + (1,0.5)$) -    -- ++(0:2) -    ; - -    \draw[railway] ($(Certosa.four sixth) - (-20:1) + (-4,0)$) -    node[label, above, anchor=south west] {Torino} -    -- ($(Certosa.four sixth) - (-20:1)$) -    -- (Certosa.four sixth) -    -- ($(Via Farini Via Valtellina) + (-2,0)$) -    -- ($(Via Farini Via Valtellina) - (0,.5)$) -    arc (90:70:12) -    -- ($(Viale Tunisia.four sixth)$) -    -- ($(Adalaide di Savoia.north west) - (0,.2)$) -    -- ($(Piazza Emilia.north) + (-.1,1)$) -    -- ($(Milano Porta Vittoria) - (1.4,0)$) -    -- ($(Milano Porta Vittoria)$) -    -- ($(Milano Porta Vittoria) + (2,0)$) -    -- ($(Repetti) + (-.15,0)$) -    -- ($(Repetti) + (-.4,1)$) -    -- ($(Ortica) + (1,0.5)$) -    -- ++(0:3) -    node[label, below right, anchor=north] {Verona} -    ; -    \draw[railway outwards] -    ($(Via Farini Via Valtellina) - (0,.5)$) -    arc (90:85:12) -    -- \polar{(75:6)} -    {[rounded corners=2cm] -    -- ++(65:8) +    \def\makeStation(#1, #2, #3)(#4)#5{ +      node[stop1] (current) {} +      ($(current.#1) + (#4)$) node[label, anchor=#2, rotate=#3, align=center] {\labelContour{#5}} +      (current.center)      } -    -- ++(85:5) -    node[label, below left, anchor=north east] {Chiasso (CH)} -    ; - -    \draw[railway line] -    (Centrale.center) -    {[rounded corners=0.01cm] -    -- (Centrale.four eighth) +    \def\makeStations(#1)(#2, #3, #4)#5{ +      foreach[count=\count] \name in {#5} { +        -- ++(#1) node[stop1] (current) {} +        (current.#2) node[label, anchor=#3, rotate=#4, align=center] {\labelContour{\name}} +        (current.center) +      } +    } +    \def\makeShapes[#1][#2](#3)(#4, #5, #6)#7{ +      foreach[count=\count] \name in {#7} { +        -- ++(#3) node[#1, anchor=#2] (current) {} +        (current.#4) node[label, anchor=#5, rotate=#6, align=center] {\labelContour{\name}} +        (current.#2) +      } +    } +    \def\makeAlternatingStations(#1)(#2, #3, #4)#5{ +      foreach[count=\count] \one/\two in {#5} { +        -- ++(#1) node[stop1] (one) {} +        (one.#2) node[label, anchor=#3, rotate=#4, align=center] {\labelContour{\one}} +        (one.center) +        -- ++(#1) node[stop1] (two) {} +        (two.#3) node[label, anchor=#2, rotate=#4, align=center] {\labelContour{\two}} +        (two.center) +      }      } -    -- \polar{(61:12)} -    -- ($(75:6) + (65:8) + (-.2,.5)$) -    -- ++(85:5) -    ; - -    \draw[railway outwards] -    ($(Repetti) + (-.15,0)$) -    arc(-3:-12:30) -    -- ++(1,-2) -    -- ++(-30:2) -    node[label, above, anchor=south west] {Bologna} -    ; - -    \draw[railway outwards] -    ($(Repetti) + (-.15,0)$) -    arc(-3:-12:30) -    -- ++(1,-2) -    -- ++(-90:2) -    node[label, above, anchor=south west] {Genova} -    ; - -    \draw[railway line] -    (Certosa.four sixth) -    -- ($(Certosa.four sixth) + (-20:1)$) -    -- ++(1,1.4) -    arc (110:78:25) -    -- \polar{(61:12)} -    arc (90:20:4.4) -    -- \polar{(32:12.1)} -    ; - -    \draw[railway line] -    (Certosa.four sixth) -    -- ($(Certosa.four sixth) + (-20:1)$) -    -- ++(1,1.4) -    arc (110:78:25) -    -- \polar{(61:12)} -    -- (Centrale.four eighth) -    ; -    \draw[railway line] -    ($(Certosa.four sixth) + (-17:3)$) -    -- ($(Certosa.four sixth) + (-20:1) + (.5,0)$) -    -- ($(Certosa.four sixth) + (-20:1) + (1,1.4)$) -    arc (110:78:25) -    -- \polar{(61:12)} -    -- (Centrale.four eighth) -    ; +    %% \foreach\angle in {-170,-160,...,180} { +    %%   \draw[help line, color=gray!50] \polar{(0,0)} -- \polar{(\angle:8)}; +    %%   \node at \polar{(\angle:8)} { \angle }; +    %% }; -    \draw[railway outwards] -    (Cadorna.four sixth) -    {[rounded corners=.3cm] -    -- ++ (-0.2,0) -    } -    -- \polar{(135:5)} -    -- ($(Piazza Diocleziano) - (1,.3)$) -    arc (-135:-180:10) -    -- ++(0,2) -    node[label, below left, anchor=west] {Asso} -    ; +    %% \draw[railway outwards] +    %% (Centrale.center) +    %% {[rounded corners=0.01cm] +    %% -- (Centrale.four eighth) +    %% } +    %% -- \polar{(61:12)} +    %% arc (90:20:4.4) +    %% -- \polar{(32:12.1)} +    %% arc(10:-12:30) +    %% {[rounded corners=2cm] +    %% -- \polar{(-40:10.5)} +    %% -- \polar{(-134:9.5)} +    %% } +    %% -- ++(-140:4.5) +    %% node[label, below, anchor=north west] {Mortara}; -    \draw[railway outwards] -    (Cadorna.four sixth) -    {[rounded corners=.3cm] -    -- ++ (-0.2,0) -    } -    -- \polar{(135:5)} -    -- ($(Piazza Diocleziano) - (1,.3)$) -    arc (-135:-180:10) -    -- ++(135:2) -    node[label, below left, anchor=west] {Saronno} -    ; +    %% \draw[railway line] +    %% (Porta Genova.five eighth) +    %% {[rounded corners=1cm] +    %% -- \polar{(-134:7)} +    %% } +    %% -- \polar{(-134:9.5)} +    %% -- ++(-140:4); + +    %% \draw[railway line] +    %% \polar{(32:12.1)} +    %% arc(10:3:30) +    %% -- ($(Ortica) + (1,0.5)$) +    %% -- ++(0:2) +    %% ; + +    %% \draw[railway] ($(Certosa.four sixth) - (-20:1) + (-4,0)$) +    %% node[label, above, anchor=south west] {Torino} +    %% -- ($(Certosa.four sixth) - (-20:1)$) +    %% -- (Certosa.four sixth) +    %% -- ($(Via Farini Via Valtellina) + (-2,0)$) +    %% -- ($(Via Farini Via Valtellina) - (0,.5)$) +    %% arc (90:70:12) +    %% -- ($(Viale Tunisia.four sixth)$) +    %% -- ($(Adalaide di Savoia.north west) - (0,.2)$) +    %% -- ($(Piazza Emilia.north) + (-.1,1)$) +    %% -- ($(Milano Porta Vittoria) - (1.4,0)$) +    %% -- ($(Milano Porta Vittoria)$) +    %% -- ($(Milano Porta Vittoria) + (2,0)$) +    %% -- ($(Repetti) + (-.15,0)$) +    %% -- ($(Repetti) + (-.4,1)$) +    %% -- ($(Ortica) + (1,0.5)$) +    %% -- ++(0:3) +    %% node[label, below right, anchor=north] {Verona} +    %% ; + +    %% \draw[railway outwards] +    %% ($(Via Farini Via Valtellina) - (0,.5)$) +    %% arc (90:85:12) +    %% -- \polar{(75:6)} +    %% {[rounded corners=2cm] +    %% -- ++(65:8) +    %% } +    %% -- ++(85:5) +    %% node[label, below left, anchor=north east] {Chiasso (CH)} +    %% ; + +    %% \draw[railway line] +    %% (Centrale.center) +    %% {[rounded corners=0.01cm] +    %% -- (Centrale.four eighth) +    %% } +    %% -- \polar{(61:12)} +    %% -- ($(75:6) + (65:8) + (-.2,.5)$) +    %% -- ++(85:5) +    %% ; + +    %% \draw[railway outwards] +    %% ($(Repetti) + (-.15,0)$) +    %% arc(-3:-12:30) +    %% -- ++(1,-2) +    %% -- ++(-30:2) +    %% node[label, above, anchor=south west] {Bologna} +    %% ; + +    %% \draw[railway outwards] +    %% ($(Repetti) + (-.15,0)$) +    %% arc(-3:-12:30) +    %% -- ++(1,-2) +    %% -- ++(-90:2) +    %% node[label, above, anchor=south west] {Genova} +    %% ; + +    %% \draw[railway line] +    %% (Certosa.four sixth) +    %% -- ($(Certosa.four sixth) + (-20:1)$) +    %% -- ++(1,1.4) +    %% arc (110:78:25) +    %% -- \polar{(61:12)} +    %% arc (90:20:4.4) +    %% -- \polar{(32:12.1)} +    %% ; + +    %% \draw[railway line] +    %% (Certosa.four sixth) +    %% -- ($(Certosa.four sixth) + (-20:1)$) +    %% -- ++(1,1.4) +    %% arc (110:78:25) +    %% -- \polar{(61:12)} +    %% -- (Centrale.four eighth) +    %% ; + +    %% \draw[railway line] +    %% ($(Certosa.four sixth) + (-17:3)$) +    %% -- ($(Certosa.four sixth) + (-20:1) + (.5,0)$) +    %% -- ($(Certosa.four sixth) + (-20:1) + (1,1.4)$) +    %% arc (110:78:25) +    %% -- \polar{(61:12)} +    %% -- (Centrale.four eighth) +    %% ; + +    %% \draw[railway outwards] +    %% ($(Piazza Virgilio.one half) + (1,0)$) % TODO should be Cadorna +    %% {[rounded corners=.3cm] +    %% -- ++ (-0.7,.1) +    %% } +    %% -- \polar{(135:5)} +    %% -- ($(Piazza Diocleziano) - (1,.3)$) +    %% arc (-135:-180:10) +    %% -- ++(0,2) +    %% node[label, below left, anchor=west] {Asso} +    %% ; + +    %% \draw[railway outwards] +    %% ($(Piazza Virgilio.one half) + (1,0)$) % TODO should be Cadorna +    %% {[rounded corners=.3cm] +    %% -- ++ (-0.7,.1) +    %% } +    %% -- \polar{(135:5)} +    %% -- ($(Piazza Diocleziano) - (1,.3)$) +    %% arc (-135:-180:10) +    %% -- ++(135:2) +    %% node[label, below left, anchor=west] {Saronno} +    %% ;      \draw[line, one]      (Greco Rovereto) +    \makeStations(45:-.8)(east, west, 0){ +      Piazza Morbegno, +      Via Venini Via Sauli, +      Via Venini Via Battaglia, +      Viale Brianza, +      Caiazzo, +      Via Settembrini +    } +    ++(0,0)      -- (Via Vitruvio.two half) +    -- (Piazza Cincinnato.two half)      -- (Viale Tunisia.east)      -- (Viale Tunisia.west)      {[rounded corners=0.3cm]      -- ($(Vittorio Veneto.south one half) + \line*(.7,-.7)$)      }      -- (Vittorio Veneto.one half) -    -- \centerarc(53:60:4.8) +    -- \centerarc(46:58:5.8)      %% -- (Repubblica.one half)      %% -- (Repubblica.north one half) -    {[rounded corners=0.4cm] -    -- ++(-.6,0) -    -- ($(Cordusio.two half) + (1.3,0)$) +    {[rounded corners=0.5cm] +    -- ++(-1.2,.1) +    } +    \makeStations(0,-.8)(east, west, 0){Turati, Piazza |Cavour, Montenapoleone, Teatro |alla Scala} +    {[rounded corners = 0.7cm] +    -- ($(Cordusio.two half) + (1.6,0)$)      }      -- (Cordusio.two half)      -- (Cusani.two half)      -- ++(0,0.25)      -- ($(Cusani.one half) + (-.2,.25)$) -    -- (Cadorna.one half) +    -- ++(-.2,-.1) +    -- ++(-.3,0) \makeStation(north, south, 0)(0,-.1){Cairoli} +    -- ++(-.8,0) \makeStation(south, north, 0)(0,.1){Foro Buonaparte |Via Ricasoli} +    -- ++(-.8,0) \makeStation(north, south, 0)(0,-.1){Cadorna} +    -- (Piazza Virgilio.north one half) +    -- (Piazza Virgilio.one half)      -- (Quinto Alpini.two half)      -- ($(Quinto Alpini.north two half)$) -    -- ++($(.05,.15+.5*\offset)$) -    -- ($(Arco della Pace.south one half)$) +    -- ++($(.05,.2+.5*\offset)$) +    -- (Via Pagano Via Canova.one half)      -- (Arco della Pace.one half) -    -- (Arco della Pace.north one half) +    -- (Corso Sempione Via Canova.one half) +    -- (Corso Sempione Via Canova.north one half)      -- (Corso Sempione Via Procaccini.one half)      -- (Domodossola.two half)      -- ($(Piazza Firenze.south one half)$)      -- (Piazzale Accursio.one half)      -- (Piazzale Accursio.north one half) -    {[rounded corners=1.3cm] -    -- ($(Piazzale Santorre di Santarosa.south one half) - (0,1.2)$) +    -- ++(140:.2) +    \makeStations(140:1.1)(west, east, 0){ +      Viale Espinasse |Piazzale Accursio, +      Viale Espinasse |Via Casella, +      Viale Espinasse |Via Nuvolone      }      -- (Piazzale Santorre di Santarosa.south one half)      -- (Piazzale Santorre di Santarosa.north one half) -    -- (Certosa.south one half) -    -- (Certosa.one half) +    -- ++(-.7-\offset,0) +    -- (Viale Espinasse Via Palizzi.south one half) +    -- (Viale Espinasse Via Palizzi.one half)      -- (Roserio.one half)      ;      \draw[line, two] -    % TODO north      (Bausan) -    {[rounded corners=.5cm] +    \makeStations(140:-.8)(south west, east, 0){ +      Via Imbriani Via Scalvini, +      Piazzale Nigra, +      Lancetti, +      Via Berinina +    } +    -- ++(140:-.2) +    {[rounded corners=.3cm] +    -- ($(Via Farini Viale Stelvio.north one half) + (-1.5,.5)$)      -- ($(Via Farini Viale Stelvio.north one half) + (0,.5)$)      }      -- (Via Farini Viale Stelvio.north one half) @@ -520,39 +622,94 @@      -- (Via Farini Via Ferrari.one half)      -- ($(Lega Lombarda.north three quarter) + 2*\offset*(-.7,.7)$)      -- (Lega Lombarda.three quarter) +    -- (Arena.three quarter) +    -- (Arena.south three quarter)      -- ($(Lanza.north three quarter) + (0,2*\offset)$)      -- (Lanza.three quarter)      -- (Cusani.three quarter)      -- (Cordusio.three quarter)      -- (DuomoN.two half) -    -- ($(Duomo.south two quarter) - (0,2*\offset)$) +    {[rounded corners=.1cm] +    -- ($(Duomo.south two quarter) - tan(40/2)*(0,.2)$) +    } +    -- (Via Torino Via Palla.center)      -- (Via Torino Via S Maria Valle.center) +    -- (Carrobbio.center) +    -- (Corso Genova Via Sapeto.south two half)      -- (Piazzale Cantore.north three quarter)      -- (Piazzale Cantore.three quarter) -    -- (Porta Genoa.one half) -    -- (Porta Genoa.south one half) -    -- (Via Valenza Alzaia Nav Grande) -    -- (Via Valenza Alzaia Nav Grande.west) -    -- (Piazzale Negrelli) +    -- (Porta Genova.one half) +    -- (Porta Genova.south one half) +    -- ++(-1,0) +    -- ++(35:-.4) +    \makeStations(35:-1.2)(north east, north west, 0){ +      Via Valenza Alzaia |Naviglio Grande, +      Ripa di Porta Ticinese |Via Lombardini +    } +    -- ++(35:-.6) +    \makeStations(35:-.8)(south east, west, 0){ +      Ripa di Porta Ticinese Via D'Adda, +      Ponte Guido Crepax, +      Via Lodovico il Moro Via Pestalozzi, +      Via Lodovico il Moro 25, +      Via Lodovico il Moro Cavalcavia Don Milani, +      Via Lodovico il Moro Via Guintellino +    } +    (current.center) +    -- ++(35:-.8) node[stop1] (Piazzale Negrelli) {}      ;      \draw[line, three]      (Duomo.three quarter) -    -- ($(Duomo.south three quarter) - (0,4*\offset)$) +    {[rounded corners=.2cm] +    -- ($(Duomo.south three quarter) - tan(40/2)*(0,.4)$) +    } +    -- (Via Torino Via Palla.two half)      -- (Via Torino Via S Maria Valle.two half) +    -- (Carrobbio.two half) +    -- (Carrobbio.south two half) +    -- ++(50:-.1) +    \makeStations(0,-.7)(east, west, 0){Colonne di |San Lorenzo, Piazza |S Eustorgio}      -- (24 Maggio) +    -- ++(0,-1.5) +    \makeStation(west, east, 0)(.1,0){Corso Gottardo |Via Lagrange} +    \makeAlternatingStations(0,-.6)(east, west, 0){ +      Largo |Mahler/Viale Tibaldi |Via Meda, +      Via Meda |Via Spaventa/Via Montegani |Viale Da Cermenate, +      Via Montegani |Via Palmieri/Via Montegani |Via Neera +    }      -- (Piazza Abbiategrasso.one half) -    -- (Via dei Missaglie Via Baroni.one half) +    -- (Piazza Abbiategrasso.south one half) +    -- ++(35:-.7*8+.2)      ;      \draw[line, four]      (Niguarda Parco Nord) +    \makeStations(-90:.7)(west, east, 0){ +      Cascina California, +      Niguarda Nord, +      Niguarda Centro, +      Girola +    }      -- (Ospedale Niguarda.one half) +    {[rounded corners=0.3cm] +    -- ++(0,-.4) +    } +    \makeStations(140:-1)(west, east, 0){ +      Nizza, Valassina, Maciachini +    } +    {[rounded corners=0.3cm] +    -- ++(140:-1) +    -- ($(Via Farini Viale Stelvio.two half) + (0,.6)$) +    }      -- (Via Farini Viale Stelvio.two half)      -- (Via Farini Via Valtellina.two half) +    \makeShapes[stop2][two half](0,1)(west, east, 0){Via Farini |Via Alserio}      -- (Via Farini Via Ferrari.center)      -- ($(Lega Lombarda.north two half)$)      -- (Lega Lombarda.two half) +    -- (Arena.two half) +    -- (Arena.south two half)      -- ($(Lanza.north two half) + (0,3*\offset)$)      -- (Lanza.two half)      -- ++(0,-\line) @@ -563,22 +720,32 @@      \draw[line, five]      (Ortica) -    -- (Piazza Ferravilla) -    -- (Piazza Ferravilla.west) +    \makeAlternatingStations(-1,0)(north, south, 0){ +      Via Amadeo |Via S Benigno/Via Amadeo |Via Paladini, +      Via Beato Angelico |Via Aselli/Via Beato Angelico |Via Colombo, +      Piazza |Ferravilla/Piazza |Aspari +    } +    -- ++(-.2,0) +    {[rounded corners=.15cm] +    -- ++(-.2,0)      -- ($(Adalaide di Savoia.south two half) + (\offset, 0)$) +    }      -- (Adalaide di Savoia.two half)      -- (Adalaide di Savoia.north two half) +    -- (Piazza 8 Novembre.two half) +    -- (Porta Venezia Viale Tunisia.two half)      -- (Viale Tunisia.two half)      -- (Viale Tunisia.north two half) +    -- (Piazza Cincinnato.one half)      -- (Via Vitruvio.one half)      -- (Via Vitruvio.north one half) -    -- \centerarc(49:64:8) +    -- \centerarc(45:60:10)      %% -- ($(Centrale.south two half) + (0,2*\offset)$)      -- (Centrale.two half)      -- (Viale Lunigiana.south two half)      -- (Viale Lunigiana.two half)      -- (Viale Lunigiana.north two half) -    -- \centerarc(65:80:9.4) +    -- \centerarc(61:78:12.1)      %% {[rounded corners=0.2cm]      %%   -- ($(Marche.south one half) - (0,\line)$)      %% } @@ -586,19 +753,36 @@      -- (Marche.one half)      -- (Ca Granda.one half)      -- (Ca Granda.north one half) +    \makeAlternatingStations(-1.4,0)(north, south, 0){ +      Viale Ca Granda |Viale Suzzani/Viale Ca Granda |Via Val Furva +    } +    -- ++(-1.4,0) \makeStation(north, south, 0)(0,0){Viale Ca Granda |Via Cherasco}      -- (Ospedale Niguarda)      ;      \draw[line, seven]      (Piazzale Lagosta.two half) +    -- ++(0,1.3) \makeStation(east, west, 0)(0,0){Zara}      -- (Marche.two half) +    \makeShapes[stop2][two half](0,.63)(east, west, 0){ +      Viale Zara |Via Laurana, +      Istria, +      Viale Testi |Via Dolcebuono +    }      -- (Ca Granda.two half) -    -- (Bicocca.two half) -    -- (Bicocca.north two half) -    {[rounded corners=.6cm] -    -- ($(Bicocca.north two half) + (0,.5)$) +    -- ++(0,.8) \makeStation(east, west, 0)(0,0){Viale Testi |Via Pianelli} +    -- (Viale Testi Via S Marcellina.two half) +    {[rounded corners=.3cm] +    -- ++(0,1) +    } +    -- ++(.3,.3) \makeStation(north, south west, 0)(0:-.5){Via Pulci |Viale Serca} +    \makeAlternatingStations(0:1)(south, north, 0){ +      Università |Bicocca Scienza/Stazione |Greco Pirelli, +      Arcimboldi |Ateneo Nuovo/Largo Mattei, +      Precotto/Parmenide      } -    -- (Precotto Interno Deposito) +    -- ++(0:1) \makeStation(south, north, 0)(0,0){Anassagora} +    -- ++(0:1) node[stop1] (Precotto Interno Deposito) {}      ;      \draw[line, nine] @@ -608,7 +792,7 @@      %% -- (Monte Santo.east)      -- (Monte Santo.west)      %% -- (Repubblica.north center) -    -- \centerarc(68:-113:\rad) +    -- \centerarc(61:-123:\rad)      %% -- (Vittorio Veneto.center)      %% -- (Porta Venezia)      %% -- (Viale Piave.one half) @@ -622,20 +806,23 @@      %% -- (Via Vigenavo.two half)      -- (Piazzale Cantore.north two half)      -- (Piazzale Cantore.two half) -    -- (Porta Genoa.two half) +    -- (Porta Genova.two half)      ;      \draw[line, ten]      (24 Maggio.one half) -    -- \centerarc(-100:-108:5.2) -    -- (Via Vigenavo.one half) -    -- (Via Vigenavo.north one half) -    -- ($(Porta Genoa.east) + (.4,0)$) -    -- (Porta Genoa.east) -    -- ($(Porta Genoa.west) + .1*(-.7,.7)$) +    -- \centerarc(-109:-113:6.2) +    -- (Via Vigenavo Viale Gorizia.one half) +    -- (Via Vigenavo Viale Gorizia.north one half) +    {[rounded corners=0.2cm] +    -- ++(-.5,-.25) \makeStation(south, north, 0)(0,0.1){Via Vigenavo |Via Corsico} +    -- ($(Porta Genova.east) + (.4,-.1)$) +    } +    -- (Porta Genova.east) +    -- ($(Porta Genova.west) + .1*(-.7,.7)$)      -- (Piazzale Cantore.two quarter)      %% -- ($(Piazzale Cantore.north one half) - \offset*(1,1)$) -    -- \centerarc(-123:-195:\rad) +    -- \centerarc(-131:-190:\rad)      %% -- (Piazzale Cantore.north one half)      %% -- (Piazzale Cantore.one half)      %% -- (Piazzale Coni Zugna Via Solari.south two half) @@ -643,14 +830,15 @@      %% -- (Piazzale Aquileia)      %% -- (Piazzale Baracca)      -- (Quinto Alpini.center) -    -- (Quinto Alpini.east) +    -- ($(Quinto Alpini.east) + (0,2*\offset)$)      %% {[rounded corners=.5cm]      %% -- \polar{(152:4.8)}      %% } -    -- ($(Arco della Pace.two half) - (0,\offset)$) +    -- (Via Pagano Via Canova.two half)      -- (Arco della Pace.two half) +    -- (Corso Sempione Via Canova.two half)      {[rounded corners=0.3cm] -    -- ($(Arco della Pace.north two half) + \line*(.7,.7)$) +    -- ($(Corso Sempione Via Canova.north two half) + (45:\line)$)      }      -- (Corso Sempione Via Procaccini.two half)      %% {[rounded corners=0.3cm] @@ -663,28 +851,33 @@      %% }      %% -- (Via Farini Via Ferrari.west)      %% -- (Via Farini Via Ferrari.east) -    -- \centerarc(139:72:5.4) +    -- \centerarc(139:72:6.4)      -- (Monte Santo.two half)      -- ($(Monte Santo.south two half) + (0,2*\offset)$) +    -- ++(61:.2) +    \makeShapes[stop2, rotate=-30][two half](61:.8)(two half, west, 0){ +      Piazza |San Giachimo, Via Filzi |Via Pirelli, Via Filzi |Via Galvani +    }      -- ($(Centrale.south center) $)      -- (Centrale.center)      -- (Viale Lunigiana.one half)      ;      \draw[line, twelve] -    % TODO      (Viale Molise) -    -- (Via Arconati) -    {[rounded corners=0.3cm] -    -- ($(Via Arconati.west) - (.5,0)$) +    \makeStations(-1,0)(north, south, 0){ +      Piazzale |Martini,Via |Arconati +    } +    {[rounded corners=.3cm] +    -- ++(-.6,0) +    -- ($(Piazza Emilia.south one half) + (.1,0)$)      } -    -- (Piazza Emilia.south one half)      -- (Piazza Emilia.one half)      -- (Piazza 5 Giornate.center)      -- (Augusto.center)      -- (Via Larga.center) -    -- ++(-0.2,0) -    -- ($(Missori.two half) + (.2,0)$) +    -- ($(Via Larga.north center) - tan(30/2)*(.2,0)$) +    -- ($(Missori.south two half)$)      -- (Missori.two half)      -- ($(DuomoN.four sixth) - (0,.2)$)      -- (DuomoN.four sixth) @@ -692,167 +885,272 @@      -- (Cusani.one half)      -- (Lanza.one half)      -- ($(Lanza.north one half)$) +    -- (Arena.south one half) +    -- (Arena.one half)      -- (Lega Lombarda.one half)      -- (Lega Lombarda.north one half) -    -- ($(Via Bramante.south one half) - (0,\offset)$) -    -- (Via Bramante.one half) -    -- (Via Bramante.north one half) +    -- (Via Bramante Via Sarpi.one half) +    %% -- ($(Via Bramante.south one half) - (0,\offset)$) +    -- (Piazzale Cimitero Monumentale Via Bramante.one half) +    %% -- (Via Bramante.north one half)      -- (Cenisio.south one half)      -- (Cenisio.one half)      -- (Piazza Diocleziano.one half)      -- (Piazza Diocleziano.north one half) -    {[rounded corners=0.5cm] -    -- ($(Piazza Diocleziano.north one half) - (.5,0)$) -    -- ($(Via Mac Mahon Via Artieri.two half) + (2,0)$) +    -- ++(140:.8) +    \makeStations(140:1.3)(north east, west, 0){ +      Via Mac Mahon |Via Principe Eugenio, +      Via Mac Mahon |Via Caracciolo, +      Via Mac Mahon |Viale Monte Ceneri      }      -- (Via Mac Mahon Via Artieri.two half)      -- (Piazza Castelli.two half)      -- (Piazza Castelli.north two half) -    {[rounded corners=0.3cm] -- ++(-.3,0) -    -- (Piazzale Santorre di Santarosa.south two half) +    \makeAlternatingStations(180:1)(north, south, 0){ +      Via Console |Marcello |Via Grugnola/Via Console |Marcello |Villapizzone      } +    -- ++(180:1) \makeStation(north, south, 0)(0,0){Via Console |Marcello |Via Monte Altissimo}      -- (Piazzale Santorre di Santarosa.two half)      -- (Piazzale Santorre di Santarosa.north two half) -    {[rounded corners=0.2cm] -    -- ($(Certosa.south two half) + 4*\offset*(-20:1)$) +    -- ++(-0.7,0) +    -- (Viale Espinasse Via Palizzi.two half) +    \makeShapes[stop2, rotate=50][two half](140:.8)(east, west, 0){ +      Certosa, Via Palazzi Via Mambretti, Via Mambretti, Largo Boccioni, Via Grassi      } -    -- (Certosa.two half)      -- (Roserio.two half)      ;      \draw[line, fourteen]      % TODO      (Piazzale Cimitero Maggiore) +    \makeAlternatingStations(1,0)(south, north, 0){ +      Viale Certosa |Cimitero Maggiore/Viale Certosa |Via Cormons, +      Viale Certosa |Via Gradisca/Viale Certosa |Via Tibullo +    } +    \makeStations(1.2,0)(south, north, 0){ +      Viale Certosa |Via Giannini +    } +    \makeStations(1.7,0)(south, north, 0){ +      Viale Certosa |Via Casella +    }      -- (Piazzale Accursio.two half) +    \makeShapes[stop2, rotate=90][two half](1.3,0)(west, north, 0){ +      Viale Certosa |Via Grosotto +    } +    \makeShapes[stop2, rotate=90][two half](1,0)(east, south, 0){ +      Viale Certosa |Viale Serra +    }      -- (Piazza Firenze.two half) +    -- ++(2,0) \makeStation(south, north, 0)(0,0){Piazza Caneva}      -- (Piazza Diocleziano.north two half)      -- (Piazza Diocleziano.two half) +    \makeShapes[stop2, rotate=50][two half](140:-.7)(center, south west, 0){ +      Via Cenisio |Via Induno +    }      -- (Cenisio.two half) -    -- ($(Cenisio.south two half) + (2*\offset,0)$) -    -- ($(Via Bramante.north two half)$) -    -- (Via Bramante.two half) -    -- (Via Bramante.south two half) +    %% -- ($(Via Bramante.north two half)$) +    -- (Piazzale Cimitero Monumentale Via Bramante.two half) +    %% -- (Via Bramante.south two half) +    -- (Via Bramante Via Sarpi.two half)      -- (Lega Lombarda.north two quarter)      -- (Lega Lombarda.two quarter) +    -- (Arena.two quarter) +    -- (Arena.south two quarter)      -- ($(Lanza.north two quarter) + (0,\offset)$)      -- (Lanza.two quarter)      -- (Cusani.two quarter)      -- (Cordusio.four sixth)      -- (DuomoN.one half)      -- ($(Duomo.south one half)$) +    -- (Via Torino Via Palla.one half)      -- (Via Torino Via S Maria Valle.one half) +    -- (Carrobbio.one half) +    -- (Corso Genova Via Sapeto.one half)      -- ($(Piazzale Cantore.north two quarter) + \offset*(2,2)$)      -- (Piazzale Cantore.one half) -    -- \centerarc(-122:-135:5.2) +    -- \centerarc(-132:-140:6.2)      %% -- ($(Piazzale Cantore.south two quarter) + (0,-\offset)$)      %% -- ($(Piazzale Cantore.south one half) + (-\offset,-\offset)$)      -- (Piazzale Coni Zugna Via Solari.one half)      {[rounded corners=0.2cm]      -- ($(Piazzale Coni Zugna Via Solari.north one half) + (-.1,.1)$)      } -    -- (Lorenteggio) +    -- ++(30:-0.8) +    \makeStations(35:-.8)(north west, east, 0){ +      Via Montevideo, +      Piazza del Rosario, +      Via Solari Via Stendhal, +      Piazza Napoli, +      Via Giambellino Via Tolstoj, +      Via Giambellino Via Vignoli, +      Via Brunelleschi, +      Largo Gelsomini Largo Giambellino, +      Via Giambellino Via Odazio, +      San Cristoforo, +      Via Gonin Via Guirdani, +      Via Gonin Via M di Lorenteggio +    } +    -- ++(35:-0.8) node[stop1] (Lorenteggio) {}      ;      \draw[line, fifteen]      (Duomo.two half)      -- (Duomo.south two half) +    -- ++ (0,-.5) +    \makeStations(0,-0.9)(east, west, 0){Corso |Italia |Missori, Corso Italia |Via S Sofia, Corso Italia |Via Lusardi}      -- (Porta Lodovica) -    -- (Agrippa) -    -- (Agrippa.south) -    {[rounded corners=0.2cm] -      -- ($(Agrippa.south) - (0,.2)$) -      -- ($(Piazza Abbiategrasso.north two half) + (0,.2)$) +    -- ++(0,-.6) +    \makeStations(0,-.6)(east, west, 0){ +      Castelbarco, +      Giambologna, +      Tibaldi, +      Pezzotti, +      Giovanni |da Cermanate, +      Volvinio      } +    (current.south) +    -- ++(0,-.3) +    \makeStations(35:-.9)(east, west, 0){Agrippa, Medeghino}      -- (Piazza Abbiategrasso.north two half)      -- (Piazza Abbiategrasso.two half) -    -- (Via dei Missaglie Via Baroni.two half) +    \makeShapes[stop2, rotate=-55][two half](35:-.7)(east, west, 0){ +      Via dei Missaglie Via Boifava, +      Via dei Missaglie Via S Abbondio, +      Via dei Missaglie Isola Anita, +      Via dei Missaglie De Ruggiero, +      Via dei Missaglie Via Feraboli, +      Via dei Missaglie Via Saponaro, +      Via dei Missaglie Scuola Santarosa +    } +    -- ++(35:-.7) node[stop2, rotate=-55, anchor=two half] (Via dei Missaglie Via Baroni) {}      -- (Via dei Missaglie Via Baroni.south two half) -    {[rounded corners=0.5cm] -    -- ($(Via Grandi Via Bouzzi Rozzano) + (.5,0)$) -    -- (Via Grandi Via Bouzzi Rozzano) +    \makeAlternatingStations(-.8,0)(south, north, 0){ +      Via Curiel |Via Maggi/Via Curiel |Via Lambro, +      Via Curiel |Viale Isonzo/Via Grandi |Via Bouzzi, +      Viale |Romagna/Via |Cabrini, +      Viale |Don Lonni/Viale Liguria |Via delle Mimose      } -    -- (Via G Rossa) +    -- ++(-1,0) \makeStation(south, north, 0)(0,0){Viale Liguria |Via Guido Rossa} +    -- ++(-1,0) node[stop1] (Via Guido Rossa) {}      ;      \draw[line, sixteen]      (San Siro Stadio) -    -- (Segesta) -    -- (Segesta.east) -    {[rounded corners=0.3cm] -    -- ($(Segesta.east) + (.2,0)$) -    -- ($(De Angeli.west) - (.2,0)$) +    \makeStations(140:-.9)(west, east, 0){ +      Piazza Axum |Stadio Meazza,San Siro |Ippodromo, +      Piazza |Esquilino,Segesta, +      Piazza |Monte Falterona, +      Via Dolci |Via Ricciarelli +    } +    ++(0,0) +    {[rounded corners=.5cm] +    -- ++(140:-.9) +    } +    \makeAlternatingStations(1,0)(south, north, 0){ +      Piazzale Brescia |Ospedale San Luca/Via Faruffini |Via Corregio, +      De Angeli/Piazza |Piemonte, +      Corso Vercelli |Via Cherubini/Corso Vercelli |Largo Settimio Severo      } -    -- (De Angeli.west) -    -- (De Angeli)      -- (Piazzale Baracca) -    -- (Ancona.one half) +    -- ++(1.4,0) \makeStation(south, north, 0)(0,.1){S Maria delle Grazie |Cenacolo Vinciano} +    {[rounded corners=.2cm] +    -- ++(.5,0) +    -- ($(Largo d'Ancona.north one half) - (.1,0)$) +    } +    -- (Largo d'Ancona.north one half) +    -- (Via Meravigli.one half)      -- (Cordusio.one half)      -- (DuomoN.six tenth)      {[rounded corners=0.5cm]      -- ($(DuomoN.six tenth) - (0,0.6)$)      }      -- (Missori.one half) -    -- ++(0.2,0) +    -- ($(Missori.south one half) - tan(35/2)*(.1,0)$) +    -- (Corso Porta Romana Via S Sofia.north two half) +    -- (Corso Porta Romana Via S Sofia.south two half)      -- (Crocetta.two half)      -- (Crocetta.south two half) +    -- ++(-50:.3) +    -- ++(1,0) \makeStation(south, north, 0)(90:0.1){Via Lamarmora |Via Commenda} +    -- ++(.9,0) \makeStation(north, south, 0)(-90:.1){Via |Lamamora}      -- (Viale Monte Nero Via Bergamo.west)      -- (Viale Monte Nero Via Bergamo) -    {[rounded corners=0.2cm] -    -- ($(Viale Monte Nero Via Bergamo) + (.1,0)$) -    -- (Via Comelico) -    -- ($(Via Comelico) + (-30:0.3)$) +    -- ++(1.7,0) +    \makeStations(-50:.7)(east, west, 0){ +      Via Bergamo,Via Cadore |Via Bergamo, +      Via Comelico,Viale Umbria |Via Comelico      } -    -- (Piazza Salgari) -    -- (Piazza Salgari.east) -    {[rounded corners=0.3cm] -      -- ($(Piazza Salgari.east) + (.5,0)$) +    -- ++(-50:.8) +    -- ++(0.4,0) +    \makeAlternatingStations(0.8,0)(south, north, 0){ +      Via Tito |Livio/Piazza |Salgari, +      Piazzale |Cuoco/Via Del Turchino |Via Maspero      } -    -- (Via Monte Velino) +    -- ++(1,0) node[stop1] (Via Monte Velino) {}      ;      \draw[line, nineteen]      (Stazione Lambrate) -    arc (10:8.5:30) -    -- (Valvassori Peroni.south one half) -    -- (Valvassori Peroni.one half) +    %% arc (10:8.5:30) +    -- ($(Via Valvassori Peroni.south one half) + (40:.3)$) +    -- (Via Valvassori Peroni.one half)      {[rounded corners=0.2cm] -    -- ($(Adalaide di Savoia.south one half) + (2*\offset,0)$) +    -- ($(Adalaide di Savoia.south one half) + tan(40/2)*(.2,0)$)      }      -- (Adalaide di Savoia.one half) +    -- ++(-1.3,0) \makeStation(south, north, 0)(0,+.1){Via |Bixio}      -- (Viale Piave.north two half)      -- (Viale Piave.two half) -    -- \centerarc(19:0:5.2) +    -- \centerarc(19:0:6.2)      -- ($(Piazza 5 Giornate.one half) + (\line,0)$)      -- (Piazza 5 Giornate.one half)      -- (Augusto.one half)      -- (Via Larga.one half) -    -- ++(-0.1,0) -    -- ($(Missori.two quarter) + (.3,0)$) -    -- (Missori.two quarter) +    -- (Via Larga.north one half) +    -- ($(Missori.south center) + tan(30/2) *(.2,0)$) +    -- (Missori.center)      {[rounded corners=0.3cm]      -- ($(DuomoN.five eighth) - (0,0.4)$)      }      -- (DuomoN.five eighth)      -- (Cordusio.two quarter)      -- ($(Cordusio.north two quarter)$) -    -- (Ancona.two half) -    -- (Cadorna.two half) +    -- (Via Meravigli.two half) +    {[rounded corners=0.3cm] +    -- (Largo d'Ancona.north two half) +    -- ($(Piazza Virgilio.north two half) + (0.1,0)$) +    }      -- (Quinto Alpini.one half)      -- (Quinto Alpini.north one half) -    -- (6 Febbraio.south) +    \makeStations(143:1)(south, east, 0){Via Monti Via Savoia Cavalleria, Via Monti Via Comerio} +    {[rounded corners=.2cm] +    -- ($(6 Febbraio.south) - (0,.2)$)      -- (6 Febbraio)      -- (Viale Boezio) -    -- (Viale Boezio.north) +    -- ($(Viale Boezio) + (0,.2)$) +    }      -- (Domodossola.south one half)      -- (Domodossola.one half) +    \makeShapes[stop2, rotate=50][one half](139:.7)(west, east, 0){ +      Corso Sempione Via Arona,Corso Sempione Via E Filiberto +    }      -- (Piazza Firenze.west) -    -- (Piazza Firenze.east) -    {[rounded corners=0.3cm] -    -- ($(Piazza Firenze.east) + (-.1,\line)$) -    -- ($(Via Mac Mahon Via Artieri.south one half) + (\line,0)$) +    -- ($(Piazza Firenze.east)$) +    {[rounded corners=0.4cm] +    -- ++(-.5,0.2) +    } +    -- ++(90:.5) \makeStation(east, west, 0)(0,0){Via Bartolini |Viale Monte Ceneri} +    \makeStations(90:.7)(east, west, 0){ +      Via da Panicale, +      Piazza |Prealpi +    } +    {[rounded corners=0.4cm] +    -- ($(Via Mac Mahon Via Artieri.one half) + (.5,0)$)      } -    -- (Via Mac Mahon Via Artieri.south one half)      -- (Via Mac Mahon Via Artieri.one half) +    \makeShapes[stop2, rotate=90][one half](-.8,0)(west, north, 0){ +      Via Mac Mahon |Via Bramantino +    }      -- (Piazza Castelli.one half)      ; @@ -863,30 +1161,62 @@      }      -- ($(Via Larga.two half) + (.1,0)$)      -- (Via Larga.two half) -    -- ++(-0.3,0) -    -- ($(Missori.two half) + (0,.1)$) -    -- ($(Missori.one half) - (0,.1)$) +    -- ($(Via Larga.north two half) - tan(30/2)*(.4,0)$) +    -- ($(Missori.south two half) + (0,.2) - tan(30/2)*(.2,0)$) +    -- (Missori.east) +    -- ($(Missori.west)$) +    -- (Corso Porta Romana Via S Sofia.north one half) +    -- (Corso Porta Romana Via S Sofia.one half)      -- (Crocetta.one half)      -- (Crocetta.south one half) -    {[rounded corners=0.2cm] -      -- ($(Crocetta.south one half) + (-40:.2)$) -      -- ($(Via Ripamonti Viale Sabotino.west) - (-50:.2)$) +    {[rounded corners=0.3cm] +      -- ++(-50:.4)      } -    -- (Via Ripamonti Viale Sabotino.west) +    -- ++(-75:1) \makeStation(east, west, 0)(-.15,0){Corso Porta |Vigentina}      -- (Via Ripamonti Viale Sabotino) -    -- (Via Ripamonti Viale Sabotino.east) -    -- (Vigentino) +    -- ++(-70:.5) +    \makeStations(-70:0.6)(east, west, 0){ +      Via Ripamonti Via Bellezza, +      Viale Isonzo Via Ripamonti, +      Via Ripamonti Via Lorenzini, +      Via Ripamonti Via Rutilia, +      Via Ripamonti Via Quaranta, +      Via Ripamonti Via dell'Assunta, +      Via Ripamonti Via Noto, +      Via Ripamonti Via Val di Sole, +      Via Ripamonti Via Chopin +    } +    -- ++(-70:0.6) node[stop1] (Vigentino) {}      ;      \draw[line, twentyseven]      (Viale Ungheria) -    -- (Viale Ungheria Via Mercante) +    \makeStations(0,.9)(east, west, 0){ +      Viale Ungheria |Largo Guerrieri |Gonzaga, +      Viale Ungheria |Via Mecente, +      Via Mecenate |Via Quintiliano, +      Via Mecenate |Via Fantoli, +      Via Mecanate |Via Zante, +      Via Mecanate |Via Maderna, +      Piazza |Ovidio +    } +    ++(0,0)      {[rounded corners=.3cm] -    -- ($(Viale Ungheria Via Mercante) + (0,.5)$) -    -- ($(Repetti.east) + (0,-.5)$) +    -- ($(Repetti.east) + (.7,0)$)      }      -- (Repetti) +    \makeAlternatingStations(-.9,0)(south, north, 0){ +      Stazione |Forlanini/Viale Corsica |Via Negroli, +      Viale Corsica |Via Lomellina/Viale Campania |Viale Corsica +    } +    -- ++(-.8,0) \makeStation(south, north, 0)(0,0){Piazza |Grandi}      -- (Piazza Emilia.two half) +    \makeShapes[stop2, rotate=90][two half](-1.2,0)(west, north, 0){ +      Via Cadore |Corso 22 Marzo +    } +    \makeShapes[stop2, rotate=90][two half](-1.2,0)(east, south, 0){ +      Piazza Santa Maria |del Suffragio +    }      -- (Piazza 5 Giornate.two half)      -- (Augusto.two half)      -- ++(-.1,0) @@ -898,17 +1228,42 @@      \draw[line, thirtyone]      (Viale Testi Via S Marcellina.one half) -    -- (Bicocca.one half) -    -- (Primo Maggio) +    -- ++(0,1.3) \makeStation(west, east, 0)(0,0){Bicocca} +    \makeStations(90:0.8)(west, east, 0){ +      Viale Testi |Via La Farina, +      Viale Testi |Via S Glicerio +    } +    {[rounded corners=0.5cm] +    -- ++(0,1) +    } +    \makeAlternatingStations(0:-1)(south, north, 0){ +      Ponale/Bigami, +      Parco Nord |Torretta/Parco Nord |Clerici Sesto S G, +      Parco Nord |Instituto Tecnico/Parco Nord |Ospedale Bassini, +      Gorky |Monfalcone/Garmsci, +      Villa |Ghirlanda/Monte |Ortigara +    } +    -- ++(-1,0) node[stop1] (Primo Maggio) {}      ;      \draw[line, thirtythree]      (Rimembranze di Lambrate) -    -- (Valvassori Peroni.south two half) -    -- (Valvassori Peroni.two half) +    -- ($(Via Valvassori Peroni.south two half) + (40:.3)$) +    -- (Via Valvassori Peroni.two half) +    \makeShapes[stop2, rotate=-50][one half](40:-.8)(south east, west, 0){ +      Via Bassini Via Golgi, +      Via Bassini Via Ponzio, +      Piazza Leonardo da Vinci (Politecnico), +      Via Pascoli Piazza Leonardo da Vinci, +      Viale Romagna Via Pascoli, +      Piazza Carlo Erba, +      Piazza Ascoli +    }      -- (Adalaide di Savoia.south center)      -- (Adalaide di Savoia.center)      -- ($(Adalaide di Savoia.north center) + (-2*\offset,0)$) +    -- (Piazza 8 Novembre.one half) +    -- (Porta Venezia Viale Tunisia.one half)      -- (Viale Tunisia.one half)      -- (Viale Tunisia.north one half)      -- ($(Vittorio Veneto.south two half)$) @@ -916,12 +1271,16 @@      %% -- (Repubblica.two half)      %% -- (Monte Santo.south one half)      %% -- (Monte Santo.north one half) -    -- \centerarc(50:95:5.2) +    -- \centerarc(46:90:6.2)      -- (Via Farini Via Ferrari.south two half)      -- ++(0,.7) +    {[rounded corners=.3cm] +    -- ($(Via Ugo Bassi) + (-.3,0)$) +    }      -- (Via Ugo Bassi) +    -- ++(.7,0) \makeStation(south, north, 0)(0,0){Via Porro |Lambertenghi}      {[rounded corners=.3cm] -    -- ++(1.8,0) +    -- ++(.8,0)      }      -- ($(Piazzale Lagosta.south one half)$)      -- (Piazzale Lagosta.one half) @@ -930,42 +1289,42 @@    \begin{pgfonlayer}{labels} +      \foreach \stop/\stopanchor/\line/\anchor/\name in {        Greco Rovereto/center/one/south/1, -      Roserio/one half/one/east/1, -      Roserio-one-label/center/twelve/east/12, -      Bausan/center/two/north/2, -      Piazzale Negrelli/center/two/north east/2, +      Roserio/north two half/one/south/1, +      Roserio-one-label/center/twelve/west/12, +      Bausan/center/two/south/2, +      Piazzale Negrelli/south/two/north/2,        Duomo/two half/fifteen/north west/15,        Duomo-fifteen-label/center/three/north/3, -      Via dei Missaglie Via Baroni/two half/three/west/3, -      Niguarda Parco Nord/center/four/west/4, +      Via dei Missaglie Via Baroni/two half/three/south east/3, +      Niguarda Parco Nord/center/four/south/4,        Ricasoli/center/four/east/4, % TODO -      Ortica/center/five/south/5, +      Ortica/center/five/west/5,        Ospedale Niguarda/center/five/east/5,        Piazzale Lagosta/center/seven/east/7,        Piazzale Lagosta-seven-label/center/thirtythree/east/33, -      Precotto Interno Deposito/center/seven/west/7, -      Centrale/four eighth/nine/west/9, -      % TODO rest of centrale -      Porta Genoa/center/nine/north east/9, +      Precotto Interno Deposito/center/seven/north/7, +      Centrale/west/nine/east/9, +      Porta Genova/center/nine/north/9,        24 Maggio/center/ten/north east/10, -      Viale Lunigiana/center/ten/west/10, -      Viale Molise/center/twelve/north/12, -      Piazzale Cimitero Maggiore/center/fourteen/south/14, +      Viale Lunigiana/two half/ten/west/10, +      Viale Molise/center/twelve/west/12, +      Piazzale Cimitero Maggiore/center/fourteen/east/14,        Lorenteggio/center/fourteen/north east/14, -      Via G Rossa/center/fifteen/north/15, -      San Siro Stadio/center/sixteen/north/16, -      Via Monte Velino/center/sixteen/west/16, -      Stazione Lambrate/east/nineteen/west/19, -      Piazza Castelli/one half/nineteen/north east/19, +      Via Guido Rossa/center/fifteen/east/15, +      San Siro Stadio/center/sixteen/south/16, +      Via Monte Velino/east/sixteen/west/16, +      Stazione Lambrate/center/nineteen/south/19, +      Piazza Castelli/west/nineteen/north/19,        Piazza Fontana/one half/twentyfour/east/24, -      Vigentino/center/twentyfour/north east/24, +      Vigentino/center/twentyfour/east/24,        Piazza Fontana/two half/twentyseven/west/27, -      Viale Ungheria/center/twentyseven/west/27, -      Viale Testi Via S Marcellina/two half/thirtyone/west/31, -      Primo Maggio/center/thirtyone/east/31, -      Rimembranze di Lambrate/center/thirtythree/north/33 +      Viale Ungheria/center/twentyseven/north/27, +      Primo Maggio/north/thirtyone/south/31, +      Viale Testi Via S Marcellina/one half/thirtyone/east/31, +      Rimembranze di Lambrate/east/thirtythree/west/33      } {        \node[label, line name, fill=\line, anchor=\anchor] (\stop-\line-label)          at ($(\stop.\stopanchor)$) @@ -973,80 +1332,51 @@      };      \foreach\stop/\stopanchor/\direction/\distance/\anchor/\rotate in { -      Piazzale Cantore/west/190/0/north east/0, -      Via Vigenavo/east/50/.3/center/0, -      Cenisio/east/180/.3/south west/0, +      Cenisio/west/190/-.2/north east/0,        Quinto Alpini/west/30/-.1/east/0, -      Missori/south center/-45/.2/west/0, -      Monte Santo/north west/-45/.1/east/0, -      Cordusio/south two half/140/.2/north west/0 +      Missori/east/135/.2/south/0, +      Cordusio/north east/-90/.1/south west/0      } {        \node[label, rotate=\rotate, anchor=\anchor]        at ($(\stop.\stopanchor) + (\direction:\distance)$)             {\contour{white}{\stop}};      }; -    \node[label, anchor=west] at ($(DuomoN.east) + (0,.1)$) +    \node[label, anchor=east] at ($(DuomoN.west) + (-0.5,-.3)$)           {\contour{white} {Duomo}};      \foreach\stop/\stopanchor/\anchor/\rotate in { -      Via G Rossa/north/south/0,        Cusani/east/west/0,        Lanza/east/west/0, -      Via Larga/west/west/-45, -      Augusto/west/west/-45, -      Ancona/west/north/0, -      Cadorna/east/north east/0, -      Crocetta/east/south west/0, +      Crocetta/north east/west/0,        Ricasoli/north/south/0, -      Lega Lombarda/east/west/0, +      Arena/east/west/0,        Piazza Fontana/north/south/0, -      Piazza 5 Giornate/one half/north west/0, +      Via Torino Via Palla/west/south east/0, +      Via Torino Via S Maria Valle/west/south east/0, +      Carrobbio/west/south east/0, +      Tricolore/west/east/0,        % west -      San Siro Stadio/north/south/0, -      Segesta/north/south/0, -      De Angeli/south/north/0, +      San Siro Stadio/west/east/0,        6 Febbraio/west/east/0,        Viale Boezio/west/east/0,        Domodossola/west/east/0, -      Piazza Firenze/west/east/20, -      Piazzale Accursio/west/east/20,        % north -      Certosa/east/south/0, -      Bausan/north/south/0, +      Bausan/west/east/0,        Niguarda Parco Nord/west/east/0, -      Primo Maggio/east/west/0, -      Bicocca/west/east/0,        Ca Granda/east/west/0,        Marche/west/east/0, -      Via Ugo Bassi/north/south west/0,        Greco Rovereto/east/west/0,        Via Vitruvio/east/west/0,        Viale Tunisia/south east/west/0,        % east -      Piazza Ferravilla/south/north/0, -      Viale Piave/west/east/0, -      Porta Venezia/west/east/0, -      Stazione Lambrate/west/east/0, -      Valvassori Peroni/east/east/0, -      Piazza Emilia/east/south/0, -      Via Arconati/south/north/0, -      Viale Molise/north/south/0, +      Stazione Lambrate/east/west/0,        % south east -      Via Comelico/west/north east/0, -      Piazza Salgari/south/north/0, -      Via Monte Velino/west/east/0, -      Repetti/center/south west/0, -      Viale Ungheria/west/east/0, -      % south -      Agrippa/east/west/0, +      Repetti/north/south/0, +      Viale Ungheria/east/west/0,        % ring -      Via Bramante/north west/east/0, -      24 Maggio/one half/north west/0, -      Porta Lodovica/south east/north west/0,        Porta Romana/east/west/0,        Repubblica/two half/south west/0, -      Piazzale Baracca/south/north west/0,        Piazzale Aquileia/west/east/0      } {        \node[label, rotate=\rotate, anchor=\anchor] @@ -1055,61 +1385,108 @@      };      \foreach \stop/\suffix/\position/\anchor/\rotate in { -      Centrale/nine-label/.2/west/0,        Viale Lunigiana/ten-label/.2/west/0, -      Lorenteggio/fourteen-label/.2/west/0, -      Piazzale Negrelli/two-label/.2/west/0, -      Porta Genoa/nine-label/.2/west/0, -      Ospedale Niguarda/five-label/-.2/east/0, -      Ortica/five-label/-.2/east/0, -      Vigentino/twentyfour-label/.2/west/0 +      Ospedale Niguarda/five-label/-.2/east/0      } { -      \node[label, rotate=\rotate, anchor=\anchor] +      \node[label, rotate=\rotate, anchor=\anchor, align=center]        at ($(\stop-\suffix) + (\position,0)$)             {\contour{white}{\stop}};      }; -    \node[label, anchor=south east] at ($(Roserio-one-label) + (.35,.2)$) {\contour{white}{Roserio}}; - - -    \def\mlabel(#1, #2, #3, #4, #5)#6{ -      \tlset\nodename{#6} -      \tlremove\nodename{/} -      \node[label, align=center, anchor=#2, rotate=#3] at ($(\nodename.#1) + (#4:#5)$) {% -        \seqsetsplit\nodeseq{ /}{#6}% -        \seqMapInline\temp\nodeseq{\contour{white}{##1}}% -        \seqUse\temp{\\} -      }; -    } -    \def\slabel(#1, #2)#3{\mlabel(#1, #2, 0, 0, 0){#3}} - -    \mlabel(north west, south east, 0, 180, .1){Piazzale Coni Zugna /Via Solari} -    \slabel(north west, south east){Via Torino /Via S Maria Valle} -    \slabel(north west, east){Via Valenza Alzaia /Nav Grande} -    \slabel(west, east){Piazzale Santorre /di Santarosa} -    \mlabel(east, south, 0, 0, -.2){Via Mac Mahon /Via Artieri} -    \slabel(south, north){Piazzale /Cimitero Maggiore} -    \mlabel(east, west, 0, -40, .2){Corso Sempione /Via Procaccini} -    \slabel(west, east){Via Farini /Viale Stelvio} -    \slabel(west, east){Viale Testi /Via S Marcellina} -    \slabel(east, west){Piazzale /Lagosta} -    \slabel(east, south){Piazza /Diocleziano} -    \slabel(north west, east){Via Farini /Via Valtellina} -    \slabel(one half, south east){Via Farini /Via Ferrari} -    \slabel(east, west){Rimembranze /di Lambrate} -    \slabel(west, east){Viale Ungheria /Via Mercante} -    \slabel(east, west){Monte Nero /Via Spartaco} -    \slabel(north east, west){Viale Monte Nero /Via Bergamo} -    \mlabel(west, east, 0, 180, .2){Via Ripamonti /Viale Sabotino} -    \slabel(west, east){Piazza /Abbiategrasso} -    \slabel(west, east){Via dei Missaglie /Via Baroni} -    \slabel(south, north){Via Grandi /Via Bouzzi Rozzano} -    \mlabel(east, south, 0, 70, .2){Adalaide di /Savoia} -    \mlabel(east, west, 0, 0, .5){Precotto /Interno Deposito} -    \mlabel(west, north west, 0, 0, -.2){Piazza /Castelli} -    \mlabel(north, south, 0, -180, 0.1){Castello /Cairoli} -    \mlabel(south west, east, 0, -90, 0.1){Arco della /Pace} -    \mlabel(south west, north, 0, 0, 0){Vittorio /Veneto} +    \mlabel(north west, south east, 0, 180, .1){Piazzale Coni Zugna |Via Solari} +    \mlabel(east, south, 0, 0, -.3){Piazzale |Santorre |di Santarosa} +    \mlabel(east, south, 0, 0, 0){Via Mac Mahon |Via Artieri} +    \slabel(north, south){Piazzale |Cimitero Maggiore} +    \mlabel(west, north east, 0, 110, .5){Corso Sempione |Via Procaccini} +    \slabel(west, east){Via Farini |Viale Stelvio} +    \slabel(east, west){Viale Testi |Via S Marcellina} +    \slabel(east, west){Piazzale |Lagosta} +    \mlabel(west, north, 0, 0, -.4){Piazza |Diocleziano} +    \slabel(north west, east){Via Farini |Via Valtellina} +    \mlabel(one half, south east, 0, 45, 0){Via Farini |Via Ferrari} +    \slabel(north, south){Rimembranze |di Lambrate} +    \slabel(east, west){Monte Nero |Via Spartaco} +    \mlabel(north east, south west, 0, -45, .2){Viale Monte Nero |Via Bergamo} +    \mlabel(east, west, 0, -40, .2){Via Ripamonti |Viale Sabotino} +    \slabel(east, west){Piazza Abbiategrasso} +    \slabel(east, west){Via dei Missaglie Via Baroni} +    \mlabel(west, north, 0, 90, 0.05){Adalaide |di Savoia} +    \mlabel(north, south, 0, 0, 0){Precotto |Interno Deposito} +    \mlabel(north, south, 0, -180, 0){Castello |Cairoli} +    \mlabel(east, north, 0, 15, 0.3){Arco |della Pace} +    \mlabel(west, east, 0, -90, 0.15){Corso Sempione Via Canova} +    \mlabel(west, east, 0, 90, 0.05){Corso Sempione Via Villasanta} +    \mlabel(west, east, 0, -60, .4){Vittorio |Veneto} +    \slabel(west, north){Largo |d'Ancona} +    \mlabel(west, north, 0, 90, .05){Via |Meravigli} +    \mlabel(west, south east, 0, -45, .2){Corso Genova |Via Sapeto} +    \mlabel(east, west, 0, 0, 0){Corso Porta Romana |Via S Sofia} +    \mlabel(west, north, 0, 0, 0){Palazzo |di Guistizia} +    \mlabel(east, south, 0, 0, 0){Corso |Porta Vittoria |Camera |del Lavoro} +    \mlabel(west, north, 0, 0, .3){Via Larga} +    \mlabel(east, south, 0, 0, .3){Augusto} +    \mlabel(east, north, 0, 0, 0){Via 20 |Settembre} +    \mlabel(east, north, 0, 0, 0){Piazza |Virgilio} +    \mlabel(east, south west, 0, -70, .4){Lega |Lombarda} + +    \slabel(east, west){Piazzale |Baiamonti} +    \slabel(east, west){Viale |Montello} +    \mlabel(west, north east, 0, 45, .4){Via |Bramante |Via Sarpi} +    \mlabel(north west, east, 0, -45, .1){Porta |Venezia} +    \mlabel(south two half, south west, 0, -45, 0.2){Monte |Santo} +    \mlabel(south east, south, 0, 90, .2){Via Vigenavo |Viale Gorizia} +    \mlabel(south east, north east, 0, 0, -.3){Porta |Genova} +    \mlabel(one half, north west, 0, 0, 0){24 |Maggio} +    \mlabel(north, south, 0, 0, 0){Viale Col |di Lana} +    \mlabel(north, south, 0, 0, -.2){Via |Bocconi} +    \mlabel(south, north, 0, 0, 0.2){Viale |Bligny} +    \mlabel(south east, north west, 0, -45, -0.1){Porta |Lodovica} +    \mlabel(east, west, 0, 0, 0){Viale Monte Nero |Via Pier Lombardo} +    \mlabel(east, west, 0, 0, 0){Viale Sabotino} +    \mlabel(one half, north west, 0, 70, 0.2){Piazza |5 Giornate} +    \mlabel(west, east, 0, 0, 0){Viale Coni Zugna |Via Foppa} +    \mlabel(west, east, 0, 0, 0){Viale San Michele del Carso |Piazza De Meis} +    \mlabel(south west, north east, 0, 0, 0){Piazzale |Baracca} +    \slabel(east, west){Conciliazone} +    \slabel(west, east){Via Arosto} +    \mlabel(west, south east, 0, -90, 0.1){Via Pagano |Via Canova} +    \mlabel(west, south east, 0, 40, 0){Piazza |Gramsci} +    \mlabel(south, north west, 0, -25, -.5){Via |Procaccini |Via Lomazzo} +    \mlabel(north west, south east, 0, -25, 0.3){Via Procaccini |Via Nono} +    \mlabel(south, north, 0, -40, 0.2){Monumentale} +    \mlabel(north east, south, 0, 90, 0.3){Piazzale |Cimitero |Monumentale |Via Bramante} + +    \mlabel(east, south, 0, 0, 0){Stazione |Garibaldi} +    \mlabel(west, north, 0, 0, 0){Viale Monte |Grappa |Via Gioia} +    \mlabel(east, south, 0, 90, 0.2){Piazzale |Principessa |Clotilde |Ospedale |Fatebenefratelli} +    \mlabel(north, south, 0, 90, .1){Via |Guido Rossa} +    \slabel(east, west){Vigentino} +    \mlabel(west, north east, 0, -45, -.2){Piazzale |Cantore} +    \mlabel(north, south, 0, 90, .1){Viale |Molise} +    \slabel(east, south){Piazza |Emilia} +    \slabel(south, north){Via Monte |Velino} +    \slabel(east, west){Viale |Premuda} +    \slabel(south, north){Ortica} +    \mlabel(west, west, 0, 0, 0){Via Valvassori Peroni} +    \mlabel(east, west, 0, 0, 0){Porta Venezia |Viale Tunisia} +    \mlabel(west, east, 0, 0, 0){Piazza 8 |Novembre} +    \slabel(west, east){Viale |Piave} +    \slabel(east, west){Piazza Cincinnato} +    \mlabel(north, south, 0, 0, 0.3){Piazza Duca |d'Aosta} +    \mlabel(east, west, 0, 0, 0){Centrale |Via Tonale} +    \mlabel(north, south, 0, 0, 0){Via Ugo |Bassi} +    \mlabel(north, south, 0, 0, .1){Piazza |Carbonari} +    \mlabel(north, south, 0, 0, .2){Viale Lunigiana |Via Gioia} +    \slabel(south, north){Primo |Maggio} +    \slabel(east, south){Piazza |Castelli} +    \mlabel(west, north, 0, 0, -.4){Piazza |Firenze} +    \mlabel(east, south, 0, 0, 0){Piazzale |Accursio} +    \slabel(east, west){Roserio} +    \mlabel(west, east, 0, -90, .2){Viale Espinasse |Via Palizzi} +    \slabel(west, east){Lorenteggio} +    \slabel(south east, west){Piazzale Negrelli} +    \mlabel(north west, south, 0, -30, -.3){Centrale} +    \end{pgfonlayer}  \end{tikzpicture}  | 
