%% %% This is file `horoscop.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% horoscop.dtx (with options: `horoscop.sty,package') %% This file is released to the public domain by its author, Matthew Skala. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{horoscop}% [2020/07/31 v1.01 Astrological chart macros by Matthew Skala] \newif\ifhoro@textsym\horo@textsymfalse \newif\ifhoro@unicode\horo@unicodefalse \newif\ifhoro@wasysym\horo@wasysymfalse \newif\ifhoro@marvosym\horo@marvosymfalse \newif\ifhoro@starfont\horo@starfontfalse \DeclareOption{textsym}{\horo@textsymtrue} \DeclareOption{unicode}{\horo@unicodetrue} \DeclareOption{wasysym}{\horo@wasysymtrue} \DeclareOption{marvosym}{\horo@marvosymtrue} \DeclareOption{starfont}{\horo@starfonttrue} \newif\ifhoro@strolog\horo@strologfalse \newif\ifhoro@swetest\horo@swetesttrue \DeclareOption{nocalc}{\horo@strologfalse\horo@swetestfalse} \DeclareOption{astrolog}{\horo@strologtrue\horo@swetestfalse} \DeclareOption{swetest}{\horo@strologfalse\horo@swetesttrue} \newif\ifhoro@egrep\horo@egrepfalse \DeclareOption{egrep}{\horo@egreptrue} \newif\ifhoro@wheels\horo@wheelstrue \newif\ifhoro@templates\horo@templatestrue \DeclareOption{nowheels}{\horo@wheelsfalse\horo@templatesfalse} \DeclareOption{notemplates}{\horo@templatesfalse} \ProcessOptions\relax \ifhoro@textsym\else \ifhoro@unicode\else \ifhoro@wasysym\else \ifhoro@marvosym\else \horo@starfonttrue \fi \fi \fi \fi \RequirePackage{iftex}% \ifhoro@wasysym \RequirePackage{wasysym}% \let\horow@sySquare\Square \fi \ifhoro@marvosym \RequirePackage{marvosym}% \let\horom@rvAries\Aries \let\horom@rvTaurus\Taurus \let\horom@rvGemini\Gemini \let\horom@rvCancer\Cancer \let\horom@rvLeo\Leo \let\horom@rvVirgo\Virgo \let\horom@rvLibra\Libra \let\horom@rvScorpio\Scorpio \let\horom@rvSagittarius\Sagittarius \let\horom@rvCapricorn\Capricorn \let\horom@rvAquarius\Aquarius \let\horom@rvPisces\Pisces \let\horom@rvSun\Sun \let\horom@rvMoon\Moon \let\horom@rvMercury\Mercury \let\horom@rvVenus\Venus \let\horom@rvMars\Mars \let\horom@rvJupiter\Jupiter \let\horom@rvSaturn\Saturn \let\horom@rvUranus\Uranus \let\horom@rvNeptune\Neptune \let\horom@rvPluto\Pluto \fi \ifhoro@starfont\RequirePackage{starfont}% \let\horost@rAries\Aries \let\horost@rTaurus\Taurus \let\horost@rGemini\Gemini \let\horost@rCancer\Cancer \let\horost@rLeo\Leo \let\horost@rVirgo\Virgo \let\horost@rLibra\Libra \let\horost@rScorpio\Scorpio \let\horost@rSagittarius\Sagittarius \let\horost@rCapricorn\Capricorn \let\horost@rAquarius\Aquarius \let\horost@rPisces\Pisces \let\horost@rSun\Sun \let\horost@rMoon\Moon \let\horost@rMercury\Mercury \let\horost@rVenus\Venus \let\horost@rMars\Mars \let\horost@rJupiter\Jupiter \let\horost@rSaturn\Saturn \let\horost@rUranus\Uranus \let\horost@rNeptune\Neptune \let\horost@rPluto\Pluto \let\horost@rSquare\Square \fi \ifhoro@wheels \RequirePackage{pict2e} \RequirePackage{trig} \fi \def\horodegrees{\ensuremath{^\circ}} \def\horominutes{\ensuremath{'}} \def\horoseconds{\ensuremath{''}} \def\Zodiac#1{\ifcase#1 \or\AriesSymbol\or\TaurusSymbol\or\GeminiSymbol \or\CancerSymbol\or\LeoSymbol\or\VirgoSymbol \or\LibraSymbol\or\ScorpioSymbol\or\SagittariusSymbol \or\CapricornSymbol\or\AquariusSymbol\or\PiscesSymbol\fi} \def\MeanNodeSymbol{\NorthNodeSymbol$_M$}% \def\TrueNodeSymbol{\NorthNodeSymbol$_T$}% \newcommand{\horotextsym}{% \gdef\AriesSymbol{Ar}% \gdef\TaurusSymbol{Ta}% \gdef\GeminiSymbol{Ge}% \gdef\CancerSymbol{Cn}% \gdef\LeoSymbol{Le}% \gdef\VirgoSymbol{Vi}% \gdef\LibraSymbol{Li}% \gdef\ScorpioSymbol{Sc}% \gdef\SagittariusSymbol{Sg}% \gdef\CapricornSymbol{Cp}% \gdef\AquariusSymbol{Aq}% \gdef\PiscesSymbol{Pi}% \gdef\SunSymbol{Su}% \gdef\MoonSymbol{Mo}% \gdef\MercurySymbol{Me}% \gdef\VenusSymbol{Ve}% \gdef\MarsSymbol{Ma}% \gdef\JupiterSymbol{Ju}% \gdef\SaturnSymbol{Sa}% \gdef\UranusSymbol{Ur}% \gdef\NeptuneSymbol{Ne}% \gdef\PlutoSymbol{Pl}% \gdef\ChironSymbol{Chi}% \gdef\CeresSymbol{Cer}% \gdef\PallasSymbol{Pal}% \gdef\JunoSymbol{Jun}% \gdef\VestaSymbol{Ves}% \gdef\NorthNodeSymbol{No}% \gdef\SouthNodeSymbol{SNo}% \gdef\LilithSymbol{Lil}% \gdef\CuspISymbol{ASC}% \gdef\CuspIISymbol{$2^{nd}$}% \gdef\CuspIIISymbol{$3^{rd}$}% \gdef\CuspIVSymbol{IC}% \gdef\CuspVSymbol{$5^{th}$}% \gdef\CuspVISymbol{$6^{th}$}% \gdef\CuspVIISymbol{DSC}% \gdef\CuspVIIISymbol{$8^{th}$}% \gdef\CuspIXSymbol{$9^{th}$}% \gdef\CuspXSymbol{MC}% \gdef\CuspXISymbol{$11^{th}$}% \gdef\CuspXIISymbol{$12^{th}$}% \gdef\AscendantSymbol{ASC}% \gdef\MCSymbol{MC}% \gdef\VertexSymbol{Vtx}% \gdef\horoRetrogradeSymbol{Rx}% \gdef\horoConjunctionSymbol{Con}% \gdef\horoOppositionSymbol{Opp}% \gdef\horoTrineSymbol{Tri}% \gdef\horoSquareSymbol{Sqr}% \gdef\horoQuintileSymbol{Qnt}% \gdef\horoBiquintileSymbol{Bqi}% \gdef\horoSextileSymbol{Sex}% \gdef\horoQuincunxSymbol{Qcx}% \gdef\horoSemisextileSymbol{Ssx}% \gdef\horoSemisquareSymbol{Ssq}% \gdef\horoSesquiquadrateSymbol{Sqq}% } \horotextsym \ifhoro@unicode\newcommand{\horounicode@}{% \gdef\AriesSymbol{^^^^2648}% \gdef\TaurusSymbol{^^^^2649}% \gdef\GeminiSymbol{^^^^264a}% \gdef\CancerSymbol{^^^^264b}% \gdef\LeoSymbol{^^^^264c}% \gdef\VirgoSymbol{^^^^264d}% \gdef\LibraSymbol{^^^^264e}% \gdef\ScorpioSymbol{^^^^264f}% \gdef\SagittariusSymbol{^^^^2650}% \gdef\CapricornSymbol{^^^^2651}% \gdef\AquariusSymbol{^^^^2652}% \gdef\PiscesSymbol{^^^^2653}% \gdef\SunSymbol{^^^^2609}% \gdef\MoonSymbol{^^^^263d}% \gdef\MercurySymbol{^^^^263f}% \gdef\VenusSymbol{^^^^2640}% \gdef\MarsSymbol{^^^^2642}% \gdef\JupiterSymbol{^^^^2643}% \gdef\SaturnSymbol{^^^^2644}% \gdef\UranusSymbol{^^^^2645}% \gdef\NeptuneSymbol{^^^^2646}% \gdef\PlutoSymbol{^^^^2647}% \gdef\ChironSymbol{^^^^26b7}% \gdef\CeresSymbol{^^^^26b3}% \gdef\PallasSymbol{^^^^26b4}% \gdef\JunoSymbol{^^^^26b5}% \gdef\VestaSymbol{^^^^26b6}% \gdef\NorthNodeSymbol{^^^^260a}% \gdef\SouthNodeSymbol{^^^^260b}% \gdef\LilithSymbol{^^^^26b8}% \gdef\horoRetrogradeSymbol{^^^^211e}% \gdef\horoConjunctionSymbol{^^^^260c}% \gdef\horoOppositionSymbol{^^^^260d}% \gdef\horoTrineSymbol{^^^^25b3}% \gdef\horoSquareSymbol{^^^^25a1}% \gdef\horoSextileSymbol{^^^^26b9}% \gdef\horoQuincunxSymbol{^^^^26bb}% \gdef\horoSemisextileSymbol{^^^^26ba}% \gdef\horoSemisquareSymbol{^^^^2220}% \gdef\horoSesquiquadrateSymbol{^^^^26bc}% } \newcommand{\horounicode@point}[1]{\ensuremath{\langle\mbox{U+#1}\rangle}} \newcommand{\horounicode}{% \ifxetex\horounicode@\else \ifluatex\horounicode@\else \gdef\AriesSymbol{\horounicode@point{2648}}% \gdef\TaurusSymbol{\horounicode@point{2649}}% \gdef\GeminiSymbol{\horounicode@point{264A}}% \gdef\CancerSymbol{\horounicode@point{264B}}% \gdef\LeoSymbol{\horounicode@point{264C}}% \gdef\VirgoSymbol{\horounicode@point{264D}}% \gdef\LibraSymbol{\horounicode@point{264E}}% \gdef\ScorpioSymbol{\horounicode@point{264F}}% \gdef\SagittariusSymbol{\horounicode@point{2650}}% \gdef\CapricornSymbol{\horounicode@point{2651}}% \gdef\AquariusSymbol{\horounicode@point{2652}}% \gdef\PiscesSymbol{\horounicode@point{2653}}% \gdef\SunSymbol{\horounicode@point{2609}}% \gdef\MoonSymbol{\horounicode@point{263D}}% \gdef\MercurySymbol{\horounicode@point{263F}}% \gdef\VenusSymbol{\horounicode@point{2640}}% \gdef\MarsSymbol{\horounicode@point{2642}}% \gdef\JupiterSymbol{\horounicode@point{2643}}% \gdef\SaturnSymbol{\horounicode@point{2644}}% \gdef\UranusSymbol{\horounicode@point{2645}}% \gdef\NeptuneSymbol{\horounicode@point{2646}}% \gdef\PlutoSymbol{\horounicode@point{2647}}% \gdef\ChironSymbol{\horounicode@point{26B7}}% \gdef\CeresSymbol{\horounicode@point{26B3}}% \gdef\PallasSymbol{\horounicode@point{26B4}}% \gdef\JunoSymbol{\horounicode@point{26B5}}% \gdef\VestaSymbol{\horounicode@point{26B6}}% \gdef\NorthNodeSymbol{\horounicode@point{260A}}% \gdef\SouthNodeSymbol{\horounicode@point{260B}}% \gdef\LilithSymbol{\horounicode@point{26B8}}% \gdef\horoRetrogradeSymbol{\horounicode@point{211E}}% \gdef\horoConjunctionSymbol{\horounicode@point{260C}}% \gdef\horoOppositionSymbol{\horounicode@point{260D}}% \gdef\horoTrineSymbol{\horounicode@point{25B3}}% \gdef\horoSquareSymbol{\horounicode@point{25A1}}% \gdef\horoSextileSymbol{\horounicode@point{26B9}}% \gdef\horoQuincunxSymbol{\horounicode@point{26BB}}% \gdef\horoSemisextileSymbol{\horounicode@point{26BA}}% \gdef\horoSemisquareSymbol{\horounicode@point{2220}}% \gdef\horoSesquiquadrateSymbol{\horounicode@point{26BC}}% \fi\fi } \horounicode \fi \ifhoro@wasysym\newcommand{\horowasysym}{% \gdef\AriesSymbol{\aries}% \gdef\TaurusSymbol{\taurus}% \gdef\GeminiSymbol{\gemini}% \gdef\CancerSymbol{\cancer}% \gdef\LeoSymbol{\leo}% \gdef\VirgoSymbol{\virgo}% \gdef\LibraSymbol{\libra}% \gdef\ScorpioSymbol{\scorpio}% \gdef\SagittariusSymbol{\sagittarius}% \gdef\CapricornSymbol{\capricornus}% \gdef\AquariusSymbol{\aquarius}% \gdef\PiscesSymbol{\pisces}% \gdef\SunSymbol{\astrosun}% \gdef\MoonSymbol{\rightmoon}% \gdef\MercurySymbol{\mercury}% \gdef\VenusSymbol{\venus}% \gdef\MarsSymbol{\mars}% \gdef\JupiterSymbol{\jupiter}% \gdef\SaturnSymbol{\saturn}% \gdef\UranusSymbol{\uranus}% \gdef\NeptuneSymbol{\neptune}% \gdef\PlutoSymbol{\pluto}% \gdef\horoConjunctionSymbol{\conjunction}% \gdef\horoOppositionSymbol{\opposition}% \gdef\horoTrineSymbol{\ensuremath{\bigtriangleup}}% \gdef\horoSquareSymbol{\horow@sySquare}% \gdef\horoSextileSymbol{\hexstar}% } \horowasysym \fi \ifhoro@marvosym\newcommand{\horomarvosym}{% \gdef\AriesSymbol{\horom@rvAries}% \gdef\TaurusSymbol{\horom@rvTaurus}% \gdef\GeminiSymbol{\horom@rvGemini}% \gdef\CancerSymbol{\horom@rvCancer}% \gdef\LeoSymbol{\horom@rvLeo}% \gdef\VirgoSymbol{\horom@rvVirgo}% \gdef\LibraSymbol{\horom@rvLibra}% \gdef\ScorpioSymbol{\horom@rvScorpio}% \gdef\SagittariusSymbol{\horom@rvSagittarius}% \gdef\CapricornSymbol{\horom@rvCapricorn}% \gdef\AquariusSymbol{\horom@rvAquarius}% \gdef\PiscesSymbol{\horom@rvPisces}% \gdef\SunSymbol{\horom@rvSun}% \gdef\MoonSymbol{\horom@rvMoon}% \gdef\MercurySymbol{\horom@rvMercury}% \gdef\VenusSymbol{\horom@rvVenus}% \gdef\MarsSymbol{\horom@rvMars}% \gdef\JupiterSymbol{\horom@rvJupiter}% \gdef\SaturnSymbol{\horom@rvSaturn}% \gdef\UranusSymbol{\horom@rvUranus}% \gdef\NeptuneSymbol{\horom@rvNeptune}% \gdef\PlutoSymbol{\horom@rvPluto}% } \horomarvosym \fi \ifhoro@starfont\newcommand{\horostarfont}{% \gdef\AriesSymbol{\horost@rAries}% \gdef\TaurusSymbol{\horost@rTaurus}% \gdef\GeminiSymbol{\horost@rGemini}% \gdef\CancerSymbol{\horost@rCancer}% \gdef\LeoSymbol{\horost@rLeo}% \gdef\VirgoSymbol{\horost@rVirgo}% \gdef\LibraSymbol{\horost@rLibra}% \gdef\ScorpioSymbol{\horost@rScorpio}% \gdef\SagittariusSymbol{\horost@rSagittarius}% \gdef\CapricornSymbol{\horost@rCapricorn}% \gdef\AquariusSymbol{\horost@rAquarius}% \gdef\PiscesSymbol{\horost@rPisces}% \gdef\SunSymbol{\horost@rSun}% \gdef\MoonSymbol{\horost@rMoon}% \gdef\MercurySymbol{\horost@rMercury}% \gdef\VenusSymbol{\horost@rVenus}% \gdef\MarsSymbol{\horost@rMars}% \gdef\JupiterSymbol{\horost@rJupiter}% \gdef\SaturnSymbol{\horost@rSaturn}% \gdef\UranusSymbol{\horost@rUranus}% \gdef\NeptuneSymbol{\horost@rNeptune}% \gdef\PlutoSymbol{\horost@rPluto}% \gdef\ChironSymbol{\Chiron}% \gdef\CeresSymbol{\Ceres}% \gdef\PallasSymbol{\Pallas}% \gdef\JunoSymbol{\Juno}% \gdef\VestaSymbol{\Vesta}% \gdef\NorthNodeSymbol{\NorthNode}% \gdef\SouthNodeSymbol{\SouthNode}% \gdef\MeanNodeSymbol{\NorthNode$_M$}% \gdef\TrueNodeSymbol{\NorthNode$_T$}% \gdef\LilithSymbol{\Lilith}% \gdef\CuspISymbol{\ASC}% \gdef\CuspIVSymbol{\IC}% \gdef\CuspVIISymbol{\DSC}% \gdef\CuspXSymbol{\MC}% \gdef\AscendantSymbol{\ASC}% \gdef\MCSymbol{\MC}% \gdef\VertexSymbol{\Vertex}% \gdef\horoRetrogradeSymbol{\Retrograde}% \gdef\horoConjunctionSymbol{\Conjunction}% \gdef\horoOppositionSymbol{\Opposition}% \gdef\horoTrineSymbol{\Trine}% \gdef\horoSquareSymbol{\horost@rSquare}% \gdef\horoQuintileSymbol{$\mathsf{Q}$}% \gdef\horoBiquintileSymbol{$\mathsf{Q}^2$}% \gdef\horoSextileSymbol{\Sextile}% \gdef\horoQuincunxSymbol{\Quincunx}% \gdef\horoSemisextileSymbol{\Semisextile}% \gdef\horoSemisquareSymbol{\Semisquare}% \gdef\horoSesquiquadrateSymbol{\Sesquiquadrate}% } \horostarfont \fi %% WATCH OUT! MAKING Q EXOTIC HERE! \catcode`\Q=3 \def\horo@cue{Q} \def\trimspaces#1{% \begingroup \aftergroup\toks\aftergroup0\aftergroup{% \expandafter\@trimb\expandafter\noexpand#1Q Q}% \edef#1{\the\toks0}% } \long\def\@trimb#1 Q{\@trimc#1Q} \long\def\@trimc#1Q#2{\afterassignment\endgroup \vfuzz\the\vfuzz#1} \def\horo@fterdef#1{% \aftergroup\horo@ft@a \aftergroup#1\expandafter\aftergroup\csname horo@@#1\endcsname } \def\horo@eathead#1#2#3#4#5#6#7{} \def\horo@ft@a#1#2{% \edef#1{\expandafter\horo@eathead\string#2}% } \def\horo@polarconvert#1#2#3#4{% \dimen@=\nin@ty\p@\advance\dimen@-#2\p@\TG@@sin #3=#1\dimen@ \dimen@=#2\p@\TG@@sin #4=#1\dimen@ } \def\horo@fe#1,{% \def\horo@fe@c{#1}% \ifx\horo@fe@c\horo@cue\relax \else \horo@fe@b{#1}% \expandafter\horo@fe \fi } \def\horoforeach#1#2{% \edef\horo@fe@a{#1}% \def\horo@fe@b{#2}% \expandafter\horo@fe\horo@fe@a,Q,% } \def\horo@dfe@b#1,{% \def\horo@dfe@y{#1}% \ifx\horo@dfe@y\horo@cue\relax \else \horo@dfe@ction{\horo@dfe@x}{\horo@dfe@y}% \expandafter\horo@dfe@b \fi } \def\horo@dfe@a#1,{% \def\horo@dfe@x{#1}% \ifx\horo@dfe@x\horo@cue\relax \else \expandafter\horo@dfe@b\horo@dfe@ylist,Q,\relax \expandafter\horo@dfe@a \fi } \def\horo@dblforeach#1#2#3{% \edef\horo@dfe@xlist{#1}\edef\horo@dfe@ylist{#2}\def\horo@dfe@ction{#3}% \expandafter\horo@dfe@a\horo@dfe@xlist,Q,\relax } \newif\ifhorocalculated\horocalculatedfalse \def\hororightcoord{\ifhorocalculated\horoCuspVIIPos\else180\fi}% \def\horocusps{CuspI,CuspII,CuspIII,CuspIV,CuspV,CuspVI,% CuspVII,CuspVIII,CuspIX,CuspX,CuspXI,CuspXII}% \def\horoangularcusps{CuspI,CuspIV,CuspVII,CuspX} \def\horocalcharmonic#1{% \horoforeach{\horoobjects}{\horo@calch{#1}}% } \def\horo@calch#1#2{% \dimen@=\csname horo#2Pos\endcsname\p@\relax \multiply\dimen@ by #1\relax \horo@fixdimen@ \expandafter\edef\csname horo#2Pos\endcsname{\TG@rem@pt\dimen@}% \expandafter\edef\csname horo#2DPos\endcsname{\TG@rem@pt\dimen@}% } \def\horoshiftobjects#1{% \horoforeach{\horoobjects}{\horo@shift{#1}}% } \def\horoshiftcusps#1{% \horoforeach{\horocusps}{\horo@shift{#1}}% } \def\horo@shift#1#2{% \dimen@=\csname horo#2Pos\endcsname\p@\relax \advance\dimen@ by #1\p@\relax \horo@fixdimen@ \expandafter\edef\csname horo#2Pos\endcsname{\TG@rem@pt\dimen@}% \expandafter\edef\csname horo#2DPos\endcsname{\TG@rem@pt\dimen@}% } \def\horomakeequalcusps#1{ \def\horoCuspIPos{0}% \def\horoCuspIIPos{30}% \def\horoCuspIIIPos{60}% \def\horoCuspIVPos{90}% \def\horoCuspVPos{120}% \def\horoCuspVIPos{150}% \def\horoCuspVIIPos{180}% \def\horoCuspVIIIPos{210}% \def\horoCuspIXPos{240}% \def\horoCuspXPos{270}% \def\horoCuspXIPos{300}% \def\horoCuspXIIPos{330}% \horoshiftcusps{#1}% } \def\horomakesigncusps#1{ \dimen@=#1\p@\relax \edef\horo@savecount@{\the\count0}% \count0=\dimen@\relax \divide\count0 by 1966080\relax \multiply\count0 by 30\relax \expandafter\horomakeequalcusps{\the\count0}% \count0=\horo@savecount@\relax } \def\horo@midpoint#1#2{% \dimen@#1\p@\relax \advance\dimen@ by-#2\p@\relax \horo@fixdimen@diff \divide\dimen@ by2\relax \advance\dimen@ by#2\p@\relax \horo@fixdimen@ } \def\horo@chartrotate{% \advance\dimen@-\hororightcoord\p@ \horo@fixdimen@ } \def\horo@fixdimen@{% \edef\horo@savecount@{\the\count0}% \count0=\dimen@\relax \ifnum\count0<0\relax \divide\count0 by 23592960\relax \advance\count0 by -1\relax \else \divide\count0 by 23592960\relax \fi \multiply\count0 by -360\relax \advance\dimen@ by\count0\p@\relax \count0=\horo@savecount@\relax } \def\horo@fixdimen@diff{% \horo@fixdimen@ \ifdim\dimen@>180\p@\advance\dimen@ by -360\p@\fi } \def\hororotatechart#1#2{% \begingroup \dimen@=#2\p@\relax \advance\dimen@ by-\csname horo#1DPos\endcsname\p@\relax \multiply\dimen@ by -1\relax \edef\hororightcoord{\TG@rem@pt\dimen@}% \horo@fterdef\hororightcoord \endgroup } \def\horocopyvar#1#2#3{% \horoforeach{#1}{\horo@cv@{#2}{#3}}% } \def\horo@cv@#1#2#3{% \expandafter\edef\csname horo#3#2\endcsname{\csname horo#3#1\endcsname}% } \def\horosaveobjects#1{% \begingroup \aftergroup\def\aftergroup#1\aftergroup{% \horo@fterdef\horoobjects \horoforeach{\horoobjects}{\horo@svo@a}% \aftergroup\horo@svo@b \aftergroup}% \endgroup } \def\horo@svo@a#1{% \expandafter\horo@fterdef\csname horo#1Pos\endcsname \expandafter\horo@fterdef\csname horo#1Vel\endcsname } \def\horo@svo@b{% \horocopyvar{\horoobjects}{Pos}{DPos}% } \def\horosavecusps#1{% \begingroup \aftergroup\def\aftergroup#1\aftergroup{% \edef\hororightcoord{\hororightcoord}% \horo@fterdef\horocusps\horo@fterdef\hororightcoord \horoforeach{\horocusps}{\horo@svc@a}% \aftergroup\horo@svc@b \aftergroup}% \endgroup } \def\horo@svc@a#1{% \expandafter\horo@fterdef\csname horo#1Pos\endcsname } \def\horo@svc@b{% \horocopyvar{\horocusps}{Pos}{DPos}% } \def\horo@twodig#1{\ifnum#1<10\relax\edef#1{0#1}\fi} \def\horo@ddms#1#2:#3:#4Q#5{% \def\horo@data{}% \uppercase{\if#1S\def\horo@data{-}\fi\if#1W\def\horo@data{-}\fi}% \dimen@=#4\p@ \divide\dimen@ by 60\relax \advance\dimen@ by #3\p@ \divide\dimen@ by 60\relax \advance\dimen@ by #2\p@ \edef#5{\horo@data\TG@rem@pt\dimen@}% \trimspaces{#5}% } \def\horo@r@offset{1sp}% \def\horo@r@offdig{Z}% \newif\ifhororoundclamp\hororoundclampfalse \def\hororoundstricttruncate{\def\horo@r@offdigit{X}} \def\hororoundtruncate{\def\horo@r@offset{1sp}\def\horo@r@offdigit{Z}} \def\hororoundtosec{\def\horo@r@offset{9sp}\def\horo@r@offdigit{Z}} \def\hororoundtomin{\def\horo@r@offset{546sp}\def\horo@r@offdigit{Z}} \def\hororoundtodeg{\def\horo@r@offset{0.5pt}\def\horo@r@offdigit{Z}} \def\hororoundtoseckeepsign{\def\horo@r@offset{9sp}\def\horo@r@offdigit{D}} \def\hororoundtoseckeepdeg{\def\horo@r@offset{546sp}\def\horo@r@offdigit{M}} \def\hororoundtoseckeepmin{\def\horo@r@offset{0.5pt}\def\horo@r@offdigit{S}} \def\hororoundtominkeepsign{\def\horo@r@offset{546sp}\def\horo@r@offdigit{D}} \def\hororoundtominkeepdeg{\def\horo@r@offset{0.5pt}\def\horo@r@offdigit{M}} \def\hororoundtodegkeepsign{\def\horo@r@offset{0.5pt}\def\horo@r@offdigit{D}} \newif\ifhororoundauto\hororoundautotrue \def\horo@d@dms@@#1#2{% \count0=\dimen@\relax \divide\count0by65536\relax \ifhororoundclamp\ifnum\count0>#2 \count0=#2\relax\fi\fi \edef#1{\the\count0}% \horo@fterdef#1% \advance\dimen@-\count0\p@ \multiply\dimen@ 60\relax } \def\horo@d@dms@{% \advance\dimen@1sp\relax \horo@d@dms@@\horo@d@deg{100000}% \horo@d@dms@@\horo@d@min{100000}% \horo@d@dms@@\horo@d@sec{100000}% } \def\horo@d@sdms{% \begingroup \def\horo@tmp{Z}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@\horo@r@offset\relax \fi \count0=\dimen@\relax \divide\count0by1966080\relax \count1=\count0\relax \advance\count1by1\relax \edef\horo@d@sign{\the\count1}% \horo@fterdef\horo@d@sign \multiply\count0by30\relax% \advance\dimen@-\count0\p@ \def\horo@tmp{D}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@\horo@r@offset\relax \fi \horo@d@dms@@\horo@d@deg{29}% \def\horo@tmp{M}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@\horo@r@offset\relax \fi \horo@d@dms@@\horo@d@min{59}% \def\horo@tmp{S}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@\horo@r@offset\relax \fi \horo@d@dms@@\horo@d@sec{59}% \endgroup } \def\horo@d@dms{% \begingroup \def\horo@tmp{Z}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@ \horo@r@offset\relax \fi \def\horo@tmp{D}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@ \horo@r@offset\relax \fi \horo@d@dms@@\horo@d@deg{100000}% \def\horo@tmp{M}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@ \horo@r@offset\relax \fi \horo@d@dms@@\horo@d@min{59}% \def\horo@tmp{S}\ifx\horo@r@offdigit\horo@tmp \advance\dimen@ \horo@r@offset\relax \fi \horo@d@dms@@\horo@d@sec{59}% \endgroup } \def\horodsmstext#1{% \begingroup \ifhororoundauto\hororoundtoseckeepmin\fi \dimen@=#1\p@ \horo@d@sdms \horo@d@deg\horodegrees\Zodiac{\horo@d@sign}% \horo@d@min\horominutes\horo@d@sec\horoseconds \endgroup } \def\horotimetext#1{% \begingroup \ifhororoundauto\hororoundtruncate\fi \dimen@=#1\p@ \horo@d@sdms \horo@twodig\horo@d@min\horo@twodig\horo@d@sec \horo@d@deg:\horo@d@min:\horo@d@sec \endgroup } \def\horo@nsew#1#2{% \ifdim\dimen@<\z@\relax \def\horo@calc@b{#2}\multiply\dimen@ by-1\relax \else \def\horo@calc@b{#1}% \fi } \def\horolatlontext#1#2#3{% \begingroup \ifhororoundauto\hororoundtruncate\fi \dimen@=#1\p@\horo@nsew{#2}{#3}% \horo@d@dms \horo@d@deg\horodegrees% \horo@d@min\horominutes\horo@d@sec\horoseconds~\horo@calc@b \endgroup } \def\hororxtext#1{% \begingroup \dimen@\csname horo#1Vel\endcsname\p@ \ifdim\dimen@<\z@\relax \horoRetrogradeSymbol \fi \endgroup } \def\horocalcparms#1#2#3#4#5#6{% \edef\horocalcyear{#1}\edef\horocalcmonth{#2}\edef\horocalcday{#3}% \horo@ddms N#4Q\horocalctime \horo@ddms#5Q\horocalclon \horo@ddms#6Q\horocalclat } \ifhoro@strolog \def\horoSun@strologname{Sun }\def\horo@stSunObj{Sun} \def\horoMoon@strologname{Moo }\def\horo@stMooObj{Moon} \def\horoMercury@strologname{Mer }\def\horo@stMerObj{Mercury} \def\horoVenus@strologname{Ven }\def\horo@stVenObj{Venus} \def\horoMars@strologname{Mar }\def\horo@stMarObj{Mars} \def\horoJupiter@strologname{Jup }\def\horo@stJupObj{Jupiter} \def\horoSaturn@strologname{Sat }\def\horo@stSatObj{Saturn} \def\horoUranus@strologname{Ura }\def\horo@stUraObj{Uranus} \def\horoNeptune@strologname{Nep }\def\horo@stNepObj{Neptune} \def\horoPluto@strologname{Plu }\def\horo@stPluObj{Pluto} \def\horoChiron@strologname{Chi }\def\horo@stChiObj{Chiron} \def\horoCeres@strologname{Cer }\def\horo@stCerObj{Ceres} \def\horoPallas@strologname{Pal }\def\horo@stPalObj{Pallas} \def\horoJuno@strologname{Jun }\def\horo@stJunObj{Juno} \def\horoVesta@strologname{Ves }\def\horo@stVesObj{Vesta} \def\horoNorthNode@strologname{Nod }\def\horo@stNodObj{NorthNode} \def\horoSouthNode@strologname{S.N } \expandafter\def\csname horo@stS.NObj\endcsname{SouthNode} \def\horoLilith@strologname{Lil }\def\horo@stLilObj{Lilith} \def\horo@stAscObj{CuspI} \expandafter\def\csname horo@st2ndObj\endcsname{CuspII} \expandafter\def\csname horo@st3rdObj\endcsname{CuspIII} \def\horo@stNadObj{CuspIV} \expandafter\def\csname horo@st5thObj\endcsname{CuspV} \expandafter\def\csname horo@st6thObj\endcsname{CuspVI} \def\horo@stDesObj{CuspVII} \expandafter\def\csname horo@st8thObj\endcsname{CuspVIII} \expandafter\def\csname horo@st9thObj\endcsname{CuspIX} \def\horo@stMidObj{CuspX} \expandafter\def\csname horo@st11tObj\endcsname{CuspXI} \expandafter\def\csname horo@st12tObj\endcsname{CuspXII} \def\horo@stAriSign{0} \def\horo@stTauSign{30} \def\horo@stGemSign{60} \def\horo@stCanSign{90} \def\horo@stLeoSign{120} \def\horo@stVirSign{150} \def\horo@stLibSign{180} \def\horo@stScoSign{210} \def\horo@stSagSign{240} \def\horo@stCapSign{270} \def\horo@stAquSign{300} \def\horo@stPisSign{330} \def\horoPlacidusHouses{\def\horo@housenumber{0}} \def\horoKochHouses{\def\horo@housenumber{1}} \def\horoEqualHouses{\def\horo@housenumber{2}} \def\horoCampanusHouses{\def\horo@housenumber{3}} \def\horoMeridianHouses{\def\horo@housenumber{4}} \def\horoRegiomontanusHouses{\def\horo@housenumber{5}} \def\horoPorphyryHouses{\def\horo@housenumber{6}} \def\horoMorinusHouses{\def\horo@housenumber{7}} \def\horoPolichPageHouses{\def\horo@housenumber{8}} \def\horoAlcabitusHouses{\def\horo@housenumber{9}} \def\horoEqualMCHouses{\def\horo@housenumber{10}} \def\horoNeoPorphyryHouses{\def\horo@housenumber{11}} \def\horoWholeHouses{\def\horo@housenumber{12}} \def\horoVedicHouses{\def\horo@housenumber{13}} \newread\horo@tmpfile \edef\horo@tmpfname{\jobname.hor}% \def\horoastrologopt{} \def\horoobjects{Sun,Moon,Mercury,Venus,Mars,Jupiter,Saturn,% Uranus,Neptune,Pluto,NorthNode,Lilith,% Chiron,Ceres,Pallas,Juno,Vesta} \horoPlacidusHouses \def\horocalculate{% \begingroup \begingroup \aftergroup\def\aftergroup\horo@calc@a\aftergroup{% \horoforeach{\horoobjects}{\horo@calc@c}% \aftergroup}% \endgroup \dimen@\horocalctime\p@\horo@d@dms@\horo@twodig\horo@d@min \edef\horo@calc@d{\horo@d@deg:\horo@d@min\space GMT\space}% \dimen@=\horocalclon\p@\horo@nsew EW% \horo@d@dms@ \horo@twodig\horo@d@min \edef\horo@calc@e{\horo@d@deg:\horo@d@min\horo@calc@b\space}% \dimen@=\horocalclat\p@\horo@nsew NS% \horo@d@dms@ \horo@twodig\horo@d@min \edef\horo@calc@f{\horo@d@deg:\horo@d@min\horo@calc@b\space}% \immediate\write18{% astrolog\space -o0 \horo@tmpfname\space -c \horo@housenumber\space -qa \horocalcmonth\space \horocalcday\space \horocalcyear\space \horo@calc@d\horo@calc@e\horo@calc@f -R0 \horo@calc@a \horoastrologopt }% \openin\horo@tmpfile=\horo@tmpfname\relax \aftergroup\horocalculatedfalse \horo@calc@parse \closein\horo@tmpfile \endgroup } \def\horo@calc@c#1{% \expandafter\aftergroup\csname horo#1@strologname\endcsname } \def\horo@calc@parse{% \read\horo@tmpfile to \horo@calc@parse@a \ifeof\horo@tmpfile\else \expandafter\horo@calc@parse@b\horo@calc@parse@a\space x\space Q% \horo@calc@parse \fi } \def\horo@YF{-YF} \def\horo@calc@parse@b#1 #2Q{% \def\horo@calc@parse@b@{#1}% \ifx\horo@calc@parse@b@\horo@YF\horo@calc@parse@c#2Q\fi } \def\horo@calc@parse@c#1: #2 #3 #4, #5 #6, #7 #8Q{% \dimen@=#4\p@ \divide\dimen@ by 60\relax \advance\dimen@ by #2\p@ \advance\dimen@ by \csname horo@st#3Sign\endcsname\p@ \expandafter\edef\csname horo\csname horo@st#1Obj\endcsname Pos\endcsname{% \TG@rem@pt\dimen@}% \expandafter\horo@fterdef\csname horo\csname horo@st#1Obj\endcsname Pos\endcsname \expandafter\edef\csname horo\csname horo@st#1Obj\endcsname DPos\endcsname{% \TG@rem@pt\dimen@}% \expandafter\horo@fterdef\csname horo\csname horo@st#1Obj\endcsname DPos\endcsname \expandafter\def\csname horo\csname horo@st#1Obj\endcsname Vel\endcsname{#7}% \expandafter\horo@fterdef\csname horo\csname horo@st#1Obj\endcsname Vel\endcsname \aftergroup\horocalculatedtrue } \fi \newif\ifhoro@ppendtmp\horo@ppendtmpfalse \ifhoro@swetest \def\horoSunSEOpt{-p0} \def\horoMoonSEOpt{-p1} \def\horoMercurySEOpt{-p2} \def\horoVenusSEOpt{-p3} \def\horoMarsSEOpt{-p4} \def\horoJupiterSEOpt{-p5} \def\horoSaturnSEOpt{-p6} \def\horoUranusSEOpt{-p7} \def\horoNeptuneSEOpt{-p8} \def\horoPlutoSEOpt{-p9} \def\horoChironSEOpt{-pD} \def\horoPholusSEOpt{-pE} \def\horoCeresSEOpt{-pF} \def\horoPallasSEOpt{-pG} \def\horoJunoSEOpt{-pH} \def\horoVestaSEOpt{-pI} \def\horoMeanNodeSEOpt{-pm} \def\horoTrueNodeSEOpt{-pt} \def\horoLilithSEOpt{-pA} \def\horoAscendantSEOpt{-p0} \def\horoMCSEOpt{-p0} \def\horoARMCSEOpt{-p0} \def\horoVertexSEOpt{-p0} \def\horosweopt{}% \def\horoAlcabitusHouses{\def\horo@houseletter{b}} \def\horoAxialHouses{\def\horo@houseletter{x}} \def\horoAzimuthalHouses{\def\horo@houseletter{h}} \def\horoCampanusHouses{\def\horo@houseletter{c}} \def\horoEqualHouses{\def\horo@houseletter{a}} \def\horoKochHouses{\def\horo@houseletter{k}} \def\horoKrusinskiHouses{\def\horo@houseletter{U}} \def\horoMorinusHouses{\def\horo@houseletter{m}} \def\horoPlacidusHouses{\def\horo@houseletter{p}} \def\horoPolichPageHouses{\def\horo@houseletter{t}} \def\horoPorphyryHouses{\def\horo@houseletter{o}} \def\horoRegiomontanusHouses{\def\horo@houseletter{r}} \def\horoVehlowHouses{\def\horo@houseletter{v}} \newread\horo@tmpfile \edef\horo@tmpfname{\jobname.hor} \def\horo@readdata{% \ifeof\horo@tmpfile \def\horo@data{0.0}% \horocalculatedfalse \else \begingroup \let\do\@makeother\dospecials \read\horo@tmpfile to \horo@data \trimspaces\horo@data \horo@fterdef\horo@data \endgroup \fi } \def\horo@readpos#1{% \horo@readdata \expandafter\let\csname horo#1Pos\endcsname\horo@data \expandafter\let\csname horo#1DPos\endcsname\horo@data } \def\horo@readposvel#1{% \horo@readpos{#1}% \horo@readdata \expandafter\let\csname horo#1Vel\endcsname\horo@data } \def\horoobjects{Sun,Moon,Mercury,Venus,Mars,Jupiter,Saturn,% Uranus,Neptune,Pluto,MeanNode,Lilith,% Chiron,Ceres,Pallas,Juno,Vesta} \horoPlacidusHouses \def\horo@calcobj@#1#2{% \begingroup \dimen@\horocalctime\p@\horo@d@dms@ \horo@twodig\horo@d@min\horo@twodig\horo@d@sec \immediate\write18{% swetest -f#2 -head\space -b\horocalcday.\horocalcmonth.\horocalcyear\space -ut\horo@d@deg:\horo@d@min:\horo@d@sec\space \csname horo#1SEOpt\endcsname\space \horosweopt\space \ifhoro@egrep| egrep '^[ 0-9.-]+'\space\fi >\ifhoro@ppendtmp >\fi\space \horo@tmpfname }% \endgroup \horo@ppendtmptrue } \def\horo@calcobj#1{% \horo@calcobj@{#1}{l}% \horo@calcobj@{#1}{s}% } \def\horocalculate{% \edef\horoCuspsSEOpt{-house\horocalclon,\horocalclat,% \horo@houseletter\space-p}% \horo@ppendtmpfalse \horocalculatedtrue \horoforeach{\horoobjects}{\horo@calcobj}% \horo@calcobj@{Cusps}{l}% \openin\horo@tmpfile=\horo@tmpfname\relax \horoforeach{\horoobjects}{\horo@readposvel}% \horoforeach{\horocusps,Ascendant,MC,ARMC,Vertex}{\horo@readpos}% \closein\horo@tmpfile\relax } \fi \newif\ifhorodrawcusps\horodrawcuspstrue \newif\ifhoroboldangles\horoboldanglestrue \newif\ifhoroanglearrows\horoanglearrowstrue \ifhoro@wheels \newlength{\horounitlength} \setlength{\horounitlength}{0.00952\textwidth} \newlength{\horoanglecuspwidth} \setlength{\horoanglecuspwidth}{1.44pt} \newenvironment{horoscope}{% \setlength{\unitlength}{\horounitlength}% \begin{picture}(100,100)(-50,-50)% }{% \end{picture}% } \newcommand{\horoCnote}[1]{% \put(0,0){\makebox(0,0){\parbox{75\unitlength}{\centering #1}}}% } \newcommand{\horoULnote}[1]{% \put(-50,50){\makebox(40,0)[t]{\parbox[t]{40\unitlength}{\raggedright #1}}}% } \newcommand{\horoURnote}[1]{% \put(10,50){\makebox(40,0)[t]{\parbox[t]{40\unitlength}{\raggedleft #1}}}% } \newcommand{\horoLLnote}[1]{% \put(-50,-50){\makebox(40,0)[b]{\parbox[t]{40\unitlength}{\raggedright #1}}}% } \newcommand{\horoLRnote}[1]{% \put(10,-50){\makebox(40,0)[b]{\parbox[t]{40\unitlength}{\raggedleft #1}}}% } \dimendef\horo@dim@x=1\relax \dimendef\horo@dim@y=2\relax \dimendef\horo@dim@xa=3\relax \dimendef\horo@dim@ya=4\relax \dimendef\horo@dim@xb=5\relax \dimendef\horo@dim@yb=6\relax \dimendef\horo@dim@xc=7\relax \dimendef\horo@dim@yc=8\relax \def\horo@putpolar#1#2#3{% \begingroup \edef\p@one{#1}\edef\p@two{#2}% \horo@polarconvert\p@one\p@two\horo@dim@x\horo@dim@y \put(\TG@rem@pt\horo@dim@x,\TG@rem@pt\horo@dim@y){\makebox(0,0){#3}}% \endgroup } \def\horoputradial#1#2#3{% \begingroup \edef\p@one{#1}\edef\p@two{#2}\edef\p@three{#3}% \horo@polarconvert\p@one\p@three\horo@dim@xa\horo@dim@ya \horo@polarconvert\p@two\p@three\horo@dim@xb\horo@dim@yb \advance\horo@dim@xb by\horo@dim@xa \advance\horo@dim@yb by\horo@dim@ya \Line(\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya)% (\TG@rem@pt\horo@dim@xb,\TG@rem@pt\horo@dim@yb)% \endgroup } \def\horoputline#1#2#3#4{% \begingroup \edef\p@one{#1}\edef\p@two{#2}\edef\p@three{#3}\edef\p@four{#4}% \horo@polarconvert\p@one\p@two\horo@dim@xa\horo@dim@ya \horo@polarconvert\p@three\p@four\horo@dim@xb\horo@dim@yb \Line(\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya)% (\TG@rem@pt\horo@dim@xb,\TG@rem@pt\horo@dim@yb)% \endgroup } \def\horoputarrowhead#1#2#3{% \begingroup \edef\horo@pa@r{#1}\edef\horo@pa@th{#2}% \edef\horo@pa@sc@le{#3}% \horo@polarconvert\horo@pa@r\horo@pa@th\horo@dim@x\horo@dim@y \horo@polarconvert\horo@pa@sc@le\horo@pa@th\horo@dim@xa\horo@dim@ya \horo@dim@xb=\horo@dim@x\relax\horo@dim@yb=\horo@dim@y\relax \advance\horo@dim@xb by-3\horo@dim@xa\relax \advance\horo@dim@yb by-3\horo@dim@ya\relax \advance\horo@dim@xb by-\horo@dim@ya\relax \advance\horo@dim@yb by\horo@dim@xa\relax \horo@dim@xc=\horo@dim@x\relax\horo@dim@yc=\horo@dim@y\relax \advance\horo@dim@xc by-3\horo@dim@xa\relax \advance\horo@dim@yc by-3\horo@dim@ya\relax \advance\horo@dim@xc by\horo@dim@ya\relax \advance\horo@dim@yc by-\horo@dim@xa\relax \multiply\horo@dim@xa by-2\relax\multiply\horo@dim@ya by-2\relax \advance\horo@dim@xa by\horo@dim@x\relax \advance\horo@dim@ya by\horo@dim@y\relax \polygon*% (\TG@rem@pt\horo@dim@x,\TG@rem@pt\horo@dim@y)% (\TG@rem@pt\horo@dim@xb,\TG@rem@pt\horo@dim@yb)% (\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya)% (\TG@rem@pt\horo@dim@xc,\TG@rem@pt\horo@dim@yc)% (\TG@rem@pt\horo@dim@x,\TG@rem@pt\horo@dim@y)% \endgroup } \def\horoputcurve#1#2#3#4{% \begingroup \edef\horo@pc@r@ne{#1}\edef\horo@pc@th@ne{#2}% \edef\horo@pc@rtw@{#3}\edef\horo@pc@thtw@{#4}% \dimen@=\horo@pc@th@ne\p@\relax\horo@chartrotate \edef\horo@pc@th@ne{\TG@rem@pt\dimen@}% \dimen@=\horo@pc@thtw@\p@\relax\horo@chartrotate \edef\horo@pc@thtw@{\TG@rem@pt\dimen@}% \horo@polarconvert\horo@pc@r@ne\horo@pc@th@ne\horo@dim@xa\horo@dim@ya \horo@polarconvert\horo@pc@rtw@\horo@pc@thtw@\horo@dim@xb\horo@dim@yb \dimen@=\horo@pc@r@ne\p@\relax \advance\dimen@ by\horo@pc@rtw@\p@\relax \divide\dimen@ by2\relax \edef\horo@pc@rmid{\TG@rem@pt\dimen@}% \horo@midpoint\horo@pc@th@ne\horo@pc@thtw@ \edef\horo@pc@thmid{\TG@rem@pt\dimen@}% \horo@polarconvert\horo@pc@rmid\horo@pc@thmid\horo@dim@x\horo@dim@y \multiply\horo@dim@x by -4\relax \advance\horo@dim@x by \horo@dim@xa\relax \advance\horo@dim@x by \horo@dim@xb\relax \divide\horo@dim@x by -2\relax \multiply\horo@dim@y by -4\relax \advance\horo@dim@y by \horo@dim@ya\relax \advance\horo@dim@y by \horo@dim@yb\relax \divide\horo@dim@y by -2\relax \cbezier(\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya)% (\TG@rem@pt\horo@dim@x,\TG@rem@pt\horo@dim@y)% (\TG@rem@pt\horo@dim@x,\TG@rem@pt\horo@dim@y)% (\TG@rem@pt\horo@dim@xb,\TG@rem@pt\horo@dim@yb)% \endgroup } \def\horoconncurve#1#2#3{% \horoputcurve{#1}{\csname horo#3Pos\endcsname}% {#2}{\csname horo#3DPos\endcsname}% } \def\horo@getobjdpos#1{% \dimen@\csname horo#1DPos\endcsname\p@ \horo@chartrotate } \def\horo@getobjsdms#1{% \expandafter\dimen@\csname horo#1Pos\endcsname\p@ \horo@d@sdms \horo@getobjdpos{#1}% } \def\horo@pr#1#2#3{% \horo@getobjdpos{#3}% \horoputradial{#1}{#2}{\TG@rem@pt\dimen@}% } \def\horoputradials#1#2#3{% \horoforeach{#1}{\horo@pr{#2}{#3}}% } \def\horo@pt{% \ifdim\dimen@<360\p@ {\horo@chartrotate \horoputradial{\horo@pta}{\horo@ptb}{\TG@rem@pt\dimen@}}% \advance\dimen@ by \horo@ptc\p@ \expandafter\horo@pt \fi } \def\horoputticks#1#2#3{% \begingroup \edef\horo@pta{#1}\edef\horo@ptb{#2}\edef\horo@ptc{#3}% \dimen@=\z@ \horo@pt \endgroup } \def\horo@pa#1#2#3{% \horo@getobjdpos{#3}% \horoputarrowhead{#1}{\TG@rem@pt\dimen@}{#2}% } \def\horoputarrows#1#2#3{% \horoforeach{#1}{\horo@pa{#2}{#3}}% } \def\horo@psk{ \ifnum\count0<12\relax \dimen@=30pt\relax \dimen@\count0\dimen@\relax \advance\dimen@ by 15pt\relax \horo@chartrotate \advance\count0 by 1% \horo@putpolar{\horo@radius}{\TG@rem@pt\dimen@}% {\Zodiac{\the\count0}}% \expandafter\horo@psk \fi } \def\horoputsignkey#1{% \begingroup \def\horo@radius{#1}% \count0=0\relax \horo@psk \endgroup } \def\horoputcusplabel#1#2#3{% \begingroup \horo@getobjsdms{#3}% \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\Zodiac{\horo@d@sign}}% \def\horo@pcl@s{W}% \ifdim\dimen@<135\p@\def\horo@pcl@s{T}\fi \ifdim\dimen@>315\p@\def\horo@pcl@s{T}\fi \begingroup \advance\dimen@ by -#2\p@\horo@fixdimen@ \horo@putpolar{#1}{\TG@rem@pt\dimen@}{% \expandafter\if\horo@pcl@s T% \horo@d@min\horominutes% \else \horo@d@deg\horodegrees% \fi }% \endgroup \advance\dimen@ by #2\p@\horo@fixdimen@ \horo@putpolar{#1}{\TG@rem@pt\dimen@}{% \expandafter\if\horo@pcl@s T% \horo@d@deg\horodegrees% \else \horo@d@min\horominutes% \fi }% \endgroup } \def\horoputobjsymbol#1#2{% \begingroup \horo@getobjdpos{#2}% \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\csname #2Symbol\endcsname}% \endgroup } \def\horo@pol@i#1#2#3{% \begingroup \dimen1=#1\p@\advance\dimen1by#2\p@ \horo@getobjsdms{#3}% \def\horo@pol@s{H}% \ifdim\dimen@<45\p@\def\horo@pol@s{R}\fi \ifdim\dimen@>225\p@\def\horo@pol@s{R}\fi } \def\horoputobjdeglabel#1#2#3{% \horo@pol@i{#1}{#2}{#3}% \expandafter\if\horo@pol@s H% \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\Zodiac{\horo@d@sign}}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@deg\horodegrees}% \else \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\horo@d@deg\horodegrees}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\Zodiac{\horo@d@sign}}% \fi \endgroup } \def\horoputobjminlabel#1#2#3{% \horo@pol@i{#1}{#2}{#3}% \expandafter\if\horo@pol@s H% \horo@putpolar{#1}{\TG@rem@pt\dimen@}% {\horo@d@min\horominutes}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\Zodiac{\horo@d@sign}}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@deg\horodegrees}% \else \horo@putpolar{#1}{\TG@rem@pt\dimen@}% {\horo@d@deg\horodegrees}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\Zodiac{\horo@d@sign}}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@min\horominutes}% \fi \endgroup } \def\horoputobjseclabel#1#2#3{% \horo@pol@i{#1}{#2}{#3}% \expandafter\if\horo@pol@s H% \horo@putpolar{#1}{\TG@rem@pt\dimen@}% {\horo@d@sec\horoseconds}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@min\horominutes}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\Zodiac{\horo@d@sign}}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@deg\horodegrees}% \else \horo@putpolar{#1}{\TG@rem@pt\dimen@}% {\horo@d@deg\horodegrees}% \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\Zodiac{\horo@d@sign}}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@min\horominutes}% \advance\dimen1by#2\p@ \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@d@sec\horoseconds}% \fi \endgroup } \def\horoputrxlabel#1#2{% \begingroup \dimen@\csname horo#2Vel\endcsname\p@ \ifdim\dimen@<\z@\relax \horo@getobjdpos{#2}% \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\horoRetrogradeSymbol}% \fi \endgroup } \def\horoputsmartlabel#1{% \begingroup \horo@getobjsdms{#1}% \def\horo@psl@o{#1}% \def\horo@pol@s{H}% \ifdim\dimen@<45\p@\def\horo@pol@s{R}\fi \ifdim\dimen@>225\p@\def\horo@pol@s{R}\fi \dimen1=\horo@outerrad\p@\relax \expandafter\if\horo@pol@s H% \expandafter\horo@psl\horo@lblone Q% \else \expandafter\horo@psl\horo@lbltwo Q% \fi \endgroup } \def\horo@psl#1{% \def\horo@psl@a{#1}% \ifx\horo@psl@a\horo@cue\relax \else \horo@putpolar{\TG@rem@pt\dimen1}{\TG@rem@pt\dimen@}% {\horo@psl@#1}% \advance\dimen1by-\horo@delta\p@\relax \expandafter\horo@psl \fi } \def\horo@psl@#1{% \if#1d\relax\horo@d@deg\horodegrees\fi \if#1m\relax\horo@d@min\horominutes\fi \if#1s\relax\horo@d@sec\horoseconds\fi \if#1z\relax\Zodiac{\horo@d@sign}\fi \if#1y\relax\csname \horo@psl@o Symbol\endcsname\fi \if#1r\relax \begingroup \dimen@\csname horo\horo@psl@o Vel\endcsname\p@ \ifdim\dimen@<\z@\relax\horoRetrogradeSymbol\fi \endgroup \fi } \def\horoscanlabels#1{% \horo@scanlabels@ #1/#1/xQ% } \def\horo@scanlabels@#1/#2/#3Q{% \def\horo@lblone{#1}% \def\horo@lbltwo{#2}% \begingroup \count0=0\relax \horo@scanlabels@@#1Q% \edef\horolbllen{\the\count0}% \horo@fterdef\horolbllen \endgroup } \def\horo@scanlabels@@#1{% \def\horo@sls@@a{#1}% \ifx\horo@sls@@a\horo@cue\relax \else \advance\count0by1\relax \expandafter\horo@scanlabels@@ \fi } \def\horosetsmartradii#1#2#3{ \def\horo@outerrad{#1}% \begingroup \dimen@=#3\p@\relax \multiply\dimen@ by -\horolbllen\relax \advance\dimen@ by #2\p@\relax \edef\horo@delta{\TG@rem@pt\dimen@}% \horo@fterdef\horo@delta \endgroup } \fi %% MAKING Q MUNDANE HERE! \catcode`\Q=11 \ifhoro@wheels \def\horoaspectobjectsa{\horoobjects} \def\horoaspectobjectsb{\horoobjects} \def\horoaspects{Opposition,Trine,Square,Sextile} \newif\ifhoroaspectweb\horoaspectwebtrue \def\horoConjunctionAngle{0} \def\horoOppositionAngle{180} \def\horoTrineAngle{120} \def\horoSquareAngle{90} \def\horoQuintileAngle{72} \def\horoBiquintileAngle{144} \def\horoSextileAngle{60} \def\horoQuincunxAngle{150} \def\horoSemisextileAngle{30} \def\horoSemisquareAngle{45} \def\horoSesquiquadrateAngle{135} \def\horoConjunctionOrb{6} \def\horoOppositionOrb{6} \def\horoTrineOrb{5} \def\horoSquareOrb{5} \def\horoQuintileOrb{2} \def\horoBiquintileOrb{2} \def\horoSextileOrb{4} \def\horoQuincunxOrb{3} \def\horoSemisextileOrb{3} \def\horoSemisquareOrb{2} \def\horoSesquiquadrateOrb{2} \def\horoputaspect#1#2#3#4{% \begingroup \edef\p@one{#1}\edef\p@two{#2}\edef\p@three{#3}% \dimen@=\p@two\p@\relax\horo@chartrotate\edef\p@two{\TG@rem@pt\dimen@}% \dimen@=\p@three\p@\relax\horo@chartrotate\edef\p@three{\TG@rem@pt\dimen@}% \horo@polarconvert\p@one\p@two\horo@dim@xa\horo@dim@ya \horo@polarconvert\p@one\p@three\horo@dim@xb\horo@dim@yb \Line(\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya)% (\TG@rem@pt\horo@dim@xb,\TG@rem@pt\horo@dim@yb)% \advance\horo@dim@xa by\horo@dim@xb \advance\horo@dim@ya by\horo@dim@yb \divide\horo@dim@xa by2\divide\horo@dim@ya by2% \put(\TG@rem@pt\horo@dim@xa,\TG@rem@pt\horo@dim@ya){\makebox(0,0){#4}}% \endgroup } \def\horo@aa#1#2#3#4#5#6{% \dimen@\csname horo#5Pos\endcsname\p@ \advance\dimen@ by -\csname horo#6Pos\endcsname\p@ \horo@fixdimen@diff \ifdim\dimen@<\z@\relax\multiply\dimen@ by -1\relax\fi \advance\dimen@ by -#1\p@ \horo@fixdimen@diff \ifdim\dimen@<\z@\relax\multiply\dimen@ by -1\relax\fi \ifdim\dimen@<#2\p@\relax \horoputaspect{#3}{\csname horo#5Pos\endcsname}% {\csname horo#6Pos\endcsname}{#4}% \fi } \def\horoautoaspect#1#2#3#4#5#6{% \begingroup \horo@dblforeach{#1}{#2}{\horo@aa{#3}{#4}{#5}{#6}}% \endgroup } \def\horo@aas#1#2{% \horoautoaspect{\horoaspectobjectsa}{\horoaspectobjectsb}% {\csname horo#2Angle\endcsname}{\csname horo#2Orb\endcsname}% {#1}{\csname horo#2Symbol\endcsname}% } \def\horoautoaspects#1{% \horoforeach{\horoaspects}{\horo@aas{#1}}% } \newif\ifhorointhouselabels\horointhouselabelsfalse \newcounter{horohouse} \newcommand{\horohouselabel}{% \Roman{horohouse}% } \def\horo@houses{CuspIM,CuspIIM,CuspIIIM,CuspIVM,CuspVM,CuspVIM,% CuspVIIM,CuspVIIIM,CuspIXM,CuspXM,CuspXIM,CuspXIIM} \def\horo@findcuspmid#1#2{% \horo@midpoint{\csname horoCusp#1DPos\endcsname}% {\csname horoCusp#2DPos\endcsname}% \expandafter\edef\csname horoCusp#1MPos\endcsname{\TG@rem@pt\dimen@}% } \def\horo@findcuspmids{% \horo@findcuspmid{I}{II}\horo@findcuspmid{II}{III}% \horo@findcuspmid{III}{IV}\horo@findcuspmid{IV}{V}% \horo@findcuspmid{V}{VI}\horo@findcuspmid{VI}{VII}% \horo@findcuspmid{VII}{VIII}\horo@findcuspmid{VIII}{IX}% \horo@findcuspmid{IX}{X}\horo@findcuspmid{X}{XI}% \horo@findcuspmid{XI}{XII}\horo@findcuspmid{XII}{I}% } \def\horo@pihl#1#2{% \begingroup \horo@getobjdpos{#2}% \horo@putpolar{#1}{\TG@rem@pt\dimen@}{\horohouselabel}% \stepcounter{horohouse}% \endgroup } \def\horoputinthouselabels#1{% \setcounter{horohouse}{1}% \horoforeach{\horo@houses}{\horo@pihl{#1}}% } \def\horosignificantadj{0.1} \def\horocuspadjusttrigger{65} \def\horoadjcycles{30} \def\horoposattobj{20} \def\horoposattcusp{7} \def\hororepulsion{3} \def\horomaxrepulsion{5.0} \def\horooomindist{6.0} \def\horoocmindist{4.0} \fi \newif\ifhoro@djusted\relax \newif\ifhoro@djustcusps\relax \ifhoro@wheels \countdef\horo@i=1\relax \def\horo@findpdiff#1#2{% \dimen@=\csname horo#1Pos\endcsname\p@ \multiply\dimen@ by -1\relax \advance\dimen@ by\csname horo#2Pos\endcsname\p@ \horo@fixdimen@diff } \def\horo@pplycorrection#1{% \advance\dimen@ by \csname horo#1DPos\endcsname\p@ \horo@fixdimen@ \expandafter\edef\csname horo#1DPos\endcsname{\TG@rem@pt\dimen@}% } \def\horo@djo@#1#2#3{% \horo@findpdiff{#3}{#2}% \horo@dim@x=\dimen@ \ifdim\horo@dim@x<45\p@\relax \ifdim\horo@dim@x>-45\p@\relax \horo@findpdiff{#3D}{#2D}% \ifdim\horo@dim@x<\z@\multiply\dimen@ by -1\relax\fi \advance\dimen@ by -#1\p@ \ifdim\dimen@>\z@ \dimen@=\z@ \else \ifdim\dimen@<-\horomaxrepulsion\p@\relax \dimen@=-\horomaxrepulsion\p@% \fi \divide\dimen@ by\hororepulsion\relax \fi \ifdim\horo@dim@x>\z@\multiply\dimen@ by -1\relax\fi \horo@pplycorrection{#2}% \fi \fi } \def\horo@djoo#1#2{% \edef\horo@tmpa{#1}\edef\horo@tmpb{#2}% \ifx\horo@tmpa\horo@tmpb\else \horo@djo@{\horooomindist}{#1}{#2}% \fi } \def\horo@djoo@same#1#2{% \horo@findpdiff{#2D}{#2}% \divide\dimen@ by#1\relax \horo@pplycorrection{#2}% } \def\horo@djcheckmovement#1{% \horo@findpdiff{#1D}{#1S}% \ifdim\dimen@<0\p@\relax\multiply\dimen@ by -1\relax\fi \ifdim\dimen@>\horosignificantadj\p@\relax\horo@djustedtrue\fi } \def\horo@djobjcycle{% \message{\the\horo@i}% \horo@djustedfalse \horocopyvar{\horoobjects}{DPos}{SPos}% \horo@dblforeach{\horoobjects}{\horoobjects}{\horo@djoo}% \horo@dblforeach{\horoobjects}{\horocusps}{\horo@djo@{\horoocmindist}}% \horoforeach{\horoobjects}{\horo@djoo@same{\horoposattobj}}% \horoforeach{\horoobjects}{\horo@djcheckmovement}% \ifhoro@djusted\else\horo@i=\horoadjcycles\relax\fi \ifnum\horoadjcycles>\horo@i\relax \advance\horo@i by1\relax \expandafter\horo@djobjcycle \fi } \def\horo@djcuspcycle{% \message{\the\horo@i}% \horo@djustedfalse \horocopyvar{\horoobjects,\horocusps}{DPos}{SPos}% \horo@dblforeach{\horocusps}{\horoobjects}{\horo@djo@{\horoocmindist}}% \horo@dblforeach{\horocusps}{\horocusps}{\horo@djoo}% \horo@dblforeach{\horoobjects}{\horoobjects}{\horo@djoo}% \horo@dblforeach{\horoobjects}{\horocusps}{\horo@djo@{\horoocmindist}}% \horoforeach{\horoobjects}{\horo@djoo@same{\horoposattobj}}% \horoforeach{\horocusps}{\horo@djoo@same{\horoposattcusp}}% \horoforeach{\horoobjects,\horocusps}{\horo@djcheckmovement}% \ifhoro@djusted\else\horo@i=\horoadjcycles\relax\fi \ifnum\horoadjcycles>\horo@i\relax \advance\horo@i by1\relax \expandafter\horo@djcuspcycle \fi } \def\horo@djsavedpos#1{% \expandafter\horo@fterdef\csname horo#1DPos\endcsname } \def\horo@djcheckcusps#1#2#3{% \edef\horo@tmpa{#2}\edef\horo@tmpb{#3}% \ifx\horo@tmpa\horo@tmpb \else \horo@findpdiff{#2D}{#3D}% \ifdim\dimen@<\z@\multiply\dimen@ by-1\relax\fi \ifdim\dimen@<45\p@\relax \multiply\dimen@ by 100\relax \divide\dimen@ by \horocuspadjusttrigger\relax \ifdim\dimen@<#1\p@\relax\horo@djustcuspstrue\fi \fi \fi } \def\horoadjust{% \ifhorocalculated \ifhorointhouselabels \horo@findcuspmids \horocopyvar{\horocusps}{MPos}{MDPos}% \let\horo@savedobjlist\horoobjects \edef\horoobjects{\horoobjects,\horo@houses}% \fi \begingroup \message{(}% \horo@i=1\relax \horo@djobjcycle \horo@djustcuspsfalse \horo@dblforeach{\horoobjects}{\horoobjects}% {\horo@djcheckcusps{\horooomindist}}% \horo@dblforeach{\horoobjects}{\horocusps}% {\horo@djcheckcusps{\horoocmindist}}% \ifhoro@djustcusps \message{C}% \horo@i=1\relax \horo@djcuspcycle \fi \message{)}% \horoforeach{\horocusps,\horoobjects}{\horo@djsavedpos}% \endgroup \ifhorointhouselabels\let\horoobjects\horo@savedobjlist\fi \fi } \fi \ifhoro@templates \def\horo@isclockwise#1#2{% TT\fi \begingroup \horo@findpdiff{#1}{#2}% \edef\horo@data{\the\dimen@}% \horo@fterdef\horo@data \endgroup \ifdim\horo@data>\z@\relax } \def\horo@anghouse#1{% TT\fi \begingroup \def\horo@angh@{F}% \if\horo@isclockwise{CuspI}{#1}\if\horo@isclockwise{#1}{CuspII}% \def\horo@angh@{T}% \fi\fi \if\horo@isclockwise{CuspIV}{#1}\if\horo@isclockwise{#1}{CuspV}% \def\horo@angh@{T}% \fi\fi \if\horo@isclockwise{CuspVII}{#1}\if\horo@isclockwise{#1}{CuspVIII}% \def\horo@angh@{T}% \fi\fi \if\horo@isclockwise{CuspX}{#1}\if\horo@isclockwise{#1}{CuspXI}% \def\horo@angh@{T}% \fi\fi \horo@fterdef\horo@angh@ \endgroup \if\horo@angh@ T\relax } \def\horo@succhouse#1{% TT\fi \begingroup \def\horo@succh@{F}% \if\horo@isclockwise{CuspII}{#1}\if\horo@isclockwise{#1}{CuspIII}% \def\horo@succh@{T}% \fi\fi \if\horo@isclockwise{CuspV}{#1}\if\horo@isclockwise{#1}{CuspVI}% \def\horo@succh@{T}% \fi\fi \if\horo@isclockwise{CuspVIII}{#1}\if\horo@isclockwise{#1}{CuspIX}% \def\horo@succh@{T}% \fi\fi \if\horo@isclockwise{CuspXI}{#1}\if\horo@isclockwise{#1}{CuspXII}% \def\horo@succh@{T}% \fi\fi \horo@fterdef\horo@succh@ \endgroup \if\horo@succh@ T\relax } \def\horo@montrealcurve#1#2#3{% \horo@midpoint{\csname horoCusp#2DPos\endcsname}% {\csname horoCusp#3DPos\endcsname}% \horoputcurve{45}{\csname horoCusp#1Pos\endcsname}{15}{\TG@rem@pt\dimen@}% } \def\horo@putmontrealobj#1{% \if\horo@succhouse{#1}% \horoputobjsymbol{42}{#1}% \horoputobjdeglabel{34}{4}{#1}% \horoputrxlabel{30}{#1}% \else \horoputobjsymbol{29}{#1}% \horoputobjdeglabel{21}{4}{#1}% \horoputrxlabel{17}{#1}% \fi } \def\horo@putqcobj#1{% \if\horo@anghouse{#1}% \horoputobjsymbol{28}{#1}% \horoputobjdeglabel{20}{4}{#1}% \horoputrxlabel{16}{#1}% \else \horoputobjsymbol{42}{#1}% \horoputobjdeglabel{34}{4}{#1}% \horoputrxlabel{30}{#1}% \fi } \def\horo@qcline#1#2#3#4{% \begingroup \dimen@=\csname horoCusp#2\endcsname\p@\horo@chartrotate \dimen1=\dimen@\relax \dimen@=\csname horoCusp#4\endcsname\p@\horo@chartrotate \horoputline{#1}{\TG@rem@pt\dimen1}% {#3}{\TG@rem@pt\dimen@}% \endgroup } \def\horo@dialstart#1#2{% \horocalcharmonic{#2} \begingroup \count0=#2\relax \edef\horo@dtone{\the\count0}% \multiply\count0 by 5\relax \edef\horo@dtfive{\the\count0}% \multiply\count0 by 2\relax \edef\horo@dtten{\the\count0}% \horo@fterdef\horo@dtone \horo@fterdef\horo@dtfive \horo@fterdef\horo@dtten \endgroup \def\hororightcoord{270}% \ifhoroaspectweb \horoautoaspects{#1}% \else \Line(-1,0)(1,0)% \Line(0,-1)(0,1)% \fi } \def\horo@dialwheel#1#2#3#4#5#6#7{% \def\horooomindist{#1}\def\horoocmindist{-90.0}% \put(0,0){\circle{#2}}% \def\hororightcoord{270}% \ifhorocalculated \horoputradials{\horoobjects}{#3}{#7}% \horoadjust \horoforeach{\horoobjects}{\horoconncurve{#4}{#5}}% \horoforeach{\horoobjects}{\horoputobjsymbol{#6}}% \fi } \def\horotextsize{0} \def\horochoosetextsize{% \count@=\horotextsize\relax \multiply\count@ by-1\relax \advance\count@ by\horolbllen\relax \ifcase\the\count@\or\Large\or\large\or\normalsize\or\small\or \scriptsize\or\scriptsize\or\tiny\fi } \newcommand{\horowheelVancouver}[1][ydzmr/ymzdr]{% \horoscanlabels{#1}% \horosetsmartradii{38}{4.666}{0.333}% \ifhororoundauto\hororoundtominkeepdeg\fi \put(0,0){\circle{100}}% \put(0,0){\circle{90}}% \put(0,0){\circle{86}}% \put(0,0){\circle{42}}% \horoputticks{45}{5}{30}% \horoputticks{43}{1}{1}% \horoputticks{43}{2}{5}% \horoputsignkey{47.5}% \ifhorocalculated \horoputradials{\horoobjects}{41}{2}% \horoputradials{\horoobjects}{21}{2}% \ifhorodrawcusps \horoputradials{\horocusps}{21}{1}% \horoputradials{\horocusps}{42}{1}% \fi \ifhoroboldangles \begingroup \thicklines\linethickness{\horoanglecuspwidth}% \horoputradials{\horoangularcusps}{21}{1}% \ifhoroanglearrows \horoputradials{\horoangularcusps}{42}{0.5}% \else \horoputradials{\horoangularcusps}{42}{1}% \fi \endgroup \fi \ifhoroanglearrows \horoputarrows{\horoangularcusps}{43}{0.7}% \fi \fi \horoadjust \ifhorocalculated \horoforeach{\horoobjects}{\horoconncurve{41}{40}}% \horoforeach{\horoobjects}{\horoconncurve{23}{24}}% \ifhorodrawcusps \horoforeach{\horocusps}{\horoconncurve{42}{42}}% \horoforeach{\horocusps}{\horoconncurve{22}{22}}% \horoputradials{\horocusps}{22}{20}% \fi \ifhoroboldangles \thicklines\linethickness{\horoanglecuspwidth}% \horoforeach{\horoangularcusps}{\horoconncurve{42}{42}}% \horoforeach{\horoangularcusps}{\horoconncurve{22}{22}}% \horoputradials{\horoangularcusps}{22}{20}% \thinlines \fi {\horochoosetextsize \horoforeach{\horoobjects}{\horoputsmartlabel}}% \ifhoroaspectweb\horoautoaspects{21}\fi \ifhorointhouselabels\horoputinthouselabels{32}\fi \fi } \newcommand{\horowheelIqaluit}[1][1]{{% \horo@dialstart{42}{#1}% \horoputticks{42}{1}{\horo@dtone}% \horoputticks{42}{2}{\horo@dtfive}% \horoputticks{42}{3}{\horo@dtten}% \horo@dialwheel{5.0}{84}{42}{45}{46}{47.5}{3}% }} \newcommand{\horowheelIgloolik}[3][1]{{% \horo@dialstart{34}{#1}% #3\horocalcharmonic{#1}% \horoputticks{42}{1}{\horo@dtone}% \horoputticks{42}{2}{\horo@dtfive}% \horoputticks{42}{3}{\horo@dtten}% \horo@dialwheel{5.0}{84}{42}{45}{46}{47.5}{3}% #2\horocalcharmonic{#1}% \horoputticks{34}{1}{\horo@dtone}% \horoputticks{34}{2}{\horo@dtfive}% \horoputticks{34}{3}{\horo@dtten}% \horo@dialwheel{6.0}{68}{34}{37}{38}{39.5}{3}% }} \newcommand{\horowheelResolute}[4][1]{{% \horo@dialstart{29}{#1}% #4\horocalcharmonic{#1}% \horoputticks{43}{1}{\horo@dtone}% \horoputticks{43}{2}{\horo@dtfive}% \horo@dialwheel{5.0}{86}{43}{45}{46}{47.5}{2}% #3\horocalcharmonic{#1}% \horoputticks{36}{1}{\horo@dtone}% \horoputticks{36}{2}{\horo@dtfive}% \horo@dialwheel{6.0}{72}{36}{38}{39}{40.5}{2}% #2\horocalcharmonic{#1}% \horoputticks{29}{1}{\horo@dtone}% \horoputticks{29}{2}{\horo@dtfive}% \horo@dialwheel{7.0}{58}{29}{31}{32}{33.5}{2}% }} \newcommand{\horowheelRankin}[5][1]{{% \horo@dialstart{22}{#1}% #5\horocalcharmonic{#1}% \horoputticks{43}{1}{\horo@dtone}% \horoputticks{43}{2}{\horo@dtfive}% \horo@dialwheel{5.0}{86}{43}{45}{46}{47.5}{2}% #4\horocalcharmonic{#1}% \horoputticks{36}{1}{\horo@dtone}% \horoputticks{36}{2}{\horo@dtfive}% \horo@dialwheel{6.0}{72}{36}{38}{39}{40.5}{2}% #3\horocalcharmonic{#1}% \horoputticks{29}{1}{\horo@dtone}% \horoputticks{29}{2}{\horo@dtfive}% \horo@dialwheel{7.0}{58}{29}{31}{32}{33.5}{2}% #2\horocalcharmonic{#1}% \horoputticks{22}{1}{\horo@dtone}% \horoputticks{22}{2}{\horo@dtfive}% \horo@dialwheel{10.0}{44}{22}{24}{25}{26.5}{2}% }} \newcommand{\horowheelMontreal}{{% \def\horooomindist{10.0}\def\horoocmindist{6.0}% \ifhororoundauto\hororoundtodegkeepsign\fi \put(0,0){\circle{90}}% \put(0,0){\circle{30}}% \ifhorocalculated \ifhorodrawcusps \horoforeach{\horoangularcusps}{\horoputcusplabel{47.5}{5}}% \fi \fi \horoadjust \ifhorocalculated \ifhorodrawcusps \horo@montrealcurve{I}{II}{III}% \horo@montrealcurve{IV}{II}{III}% \horo@montrealcurve{IV}{V}{VI}% \horo@montrealcurve{VII}{V}{VI}% \horo@montrealcurve{VII}{VIII}{IX}% \horo@montrealcurve{X}{VIII}{IX}% \horo@montrealcurve{X}{XI}{XII}% \horo@montrealcurve{I}{XI}{XII}% \horoforeach{\horoangularcusps}{\horoconncurve{45}{15}}% \fi \horoforeach{\horoobjects}{\horo@putmontrealobj}% \fi }} \newcommand{\horowheelQuebecCity}{{% \def\horooomindist{10.0}\def\horoocmindist{6.0}% \ifhororoundauto\hororoundtodegkeepsign\fi \put(0,0){\circle{100}}% \put(0,0){\circle{90}}% \horoadjust \ifhorocalculated \horo@findcuspmids \let\hororightcoord=\horoCuspVIIMPos \ifhorodrawcusps \horoputradials{CuspIII,CuspVI,CuspIX,CuspXII}{20}{25}% \horo@qcline{45}{IMPos}{20}{IIIDPos}% \horo@qcline{45}{IVMPos}{20}{IIIDPos}% \horo@qcline{45}{IVMPos}{20}{VIDPos}% \horo@qcline{45}{VIIMPos}{20}{VIDPos}% \horo@qcline{45}{VIIMPos}{20}{IXDPos}% \horo@qcline{45}{XMPos}{20}{IXDPos}% \horo@qcline{45}{XMPos}{20}{XIIDPos}% \horo@qcline{45}{IMPos}{20}{XIIDPos}% \horo@qcline{20}{IIIDPos}{20}{VIDPos}% \horo@qcline{20}{VIDPos}{20}{IXDPos}% \horo@qcline{20}{IXDPos}{20}{XIIDPos}% \horo@qcline{20}{XIIDPos}{20}{IIIDPos}% \fi \horocopyvar{\horocusps}{MPos}{DPos}% \ifhorodrawcusps \horoforeach{\horocusps}{\horoputcusplabel{47.5}{5}}% \fi \horoforeach{\horoobjects}{\horo@putqcobj}% \fi }} \fi \horocalcparms{1976}{8}{1}{17:22:19}{W123:20:38}{N48:25:53} \endinput %% %% End of file `horoscop.sty'.