summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/horoscop
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-17 22:27:40 +0000
committerKarl Berry <karl@freefriends.org>2013-05-17 22:27:40 +0000
commit7b47572c533451aae0bd41e0480845a715bd3bce (patch)
tree18c86598d630a1aed49c150fdf584dff9aca521b /Master/texmf-dist/tex/latex/horoscop
parentd5dc9e49d4676082f90ee3e0d3170657f72a5b5f (diff)
horoscop (17may13)
git-svn-id: svn://tug.org/texlive/trunk@30530 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/horoscop')
-rw-r--r--Master/texmf-dist/tex/latex/horoscop/horoscop.sty1740
1 files changed, 1740 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/horoscop/horoscop.sty b/Master/texmf-dist/tex/latex/horoscop/horoscop.sty
new file mode 100644
index 00000000000..aafefbeca9b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/horoscop/horoscop.sty
@@ -0,0 +1,1740 @@
+%%
+%% 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}%
+ [2013/05/16 v0.92 Astrological chart macros by Matthew Skala]
+\newif\ifhoro@textsym\horo@textsymfalse
+\newif\ifhoro@wasysym\horo@wasysymfalse
+\newif\ifhoro@marvosym\horo@marvosymfalse
+\newif\ifhoro@starfont\horo@starfontfalse
+\DeclareOption{textsym}{\horo@textsymtrue}
+\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@wasysym\else
+ \ifhoro@marvosym\else
+ \horo@starfonttrue
+ \fi
+ \fi
+\fi
+\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@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'.