summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-07-21 21:40:00 +0000
committerKarl Berry <karl@freefriends.org>2020-07-21 21:40:00 +0000
commitdd993b599198c6a3e865306688c6d103f41546b6 (patch)
tree5c561df88235528ba5ce77c8933d701df5329865 /Master/texmf-dist/source/latex
parentc2672b946257e59e864cb7029db18d05630b7bc2 (diff)
horoscop (21jul20)
git-svn-id: svn://tug.org/texlive/trunk@55901 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/horoscop/horoscop.dtx510
1 files changed, 415 insertions, 95 deletions
diff --git a/Master/texmf-dist/source/latex/horoscop/horoscop.dtx b/Master/texmf-dist/source/latex/horoscop/horoscop.dtx
index 12ea6a98fe5..dfcf84b7afd 100644
--- a/Master/texmf-dist/source/latex/horoscop/horoscop.dtx
+++ b/Master/texmf-dist/source/latex/horoscop/horoscop.dtx
@@ -2,13 +2,13 @@
%
% This work is hereby released into the Public Domain. To view a
% copy of the public domain dedication, visit
-% http://creativecommons.org/licenses/publicdomain/
+% https://creativecommons.org/licenses/publicdomain/
% or send a letter to Creative Commons, 171 Second Street, Suite 300,
% San Francisco, California, 94105, USA.
%
% Matthew Skala
% mskala@ansuz.sooke.bc.ca
-% http://ansuz.sooke.bc.ca/
+% https://ansuz.sooke.bc.ca/
% August 30, 2008
%
% \fi
@@ -22,8 +22,9 @@
\usepackage{fmtcount}
\usepackage{graphicx}
\usepackage[scaled=0.9]{helvet}
-\usepackage[textsym,wasysym,marvosym,starfont]{horoscop}[2013/05/16]
+\usepackage[textsym,unicode,wasysym,marvosym,starfont]{horoscop}[2020/07/21]
\usepackage{mathpazo}
+\usepackage{metalogo}
\usepackage{titlesec}
\usepackage[letterpaper,breaklinks,bookmarks,plainpages=false,
colorlinks,pagebackref,citecolor=darkgreen,linkcolor=purplish]{hyperref}
@@ -81,7 +82,7 @@
%</driver>
% \fi
%
-% \CheckSum{4087}
+% \CheckSum{4317}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -113,38 +114,40 @@
%
% \title{Typesetting astrology with \textsf{horoscop}}
% \author{Matthew Skala}
-% \date{May 16, 2013}
+% \date{July 21, 2020}
%
-% \begin{titlepage}
-% \phantomsection
-% \mybookmark{section}{Title Page}
-% \centering
-% \vspace{0.75in}
-% {\Huge\scshape Typesetting}
+% \thispagestyle{empty}
+% \phantomsection
+% \mybookmark{section}{Title Page}
+% {\centering
+% \vspace{0.75in}
+% {\Huge\scshape Typesetting}
%
-% \vspace{2pc}
-% {\Huge\scshape Astrology}
+% \vspace{2pc}
+% {\Huge\scshape Astrology}
%
-% \vspace{2pc}
-% {\LARGE\itshape with}
+% \vspace{2pc}
+% {\LARGE\itshape with}
%
-% \vspace{2pc}
-% {\Huge\sffamily horoscop}
+% \vspace{2pc}
+% {\Huge\sffamily horoscop}
%
-% \vspace{3pc}
-% {\Huge\docornament}
+% \vspace{3pc}
+% {\Huge\docornament}
%
-% \vspace{\fill}
-% {\Large{\scshape Matthew Skala}\\
-% \href{mailto:mskala@ansuz.sooke.bc.ca}%
-% {\nolinkurl{mskala@ansuz.sooke.bc.ca}}}
+% \vspace{\fill}
+% {\Large{\scshape Matthew Skala}\\
+% \href{mailto:mskala@ansuz.sooke.bc.ca}%
+% {\nolinkurl{mskala@ansuz.sooke.bc.ca}}}
%
-% \vspace{0.5in}
-% {\Large\itshape Version 0.92, May 16, 2013}
-% \vspace{2.5pc}
-% \end{titlepage}
+% \vspace{0.5in}
+% {\Large\itshape Version 1.0, July 21, 2020}
+% \vspace{2.5pc}
+% \par}
%
% \clearpage
+% \changes{v1.0}{2020/07/20}{Make page after title page page 2 for clearer
+% numbering in PDF}
% \phantomsection
% \mybookmark{section}{Contents}
% \tableofcontents
@@ -153,13 +156,15 @@
%
% \section{Introduction}
%
+% \changes{v1.0}{2020/07/20}{General updates to intro after seven years}
% This document describes the design and use of a \LaTeX\ package named
% \textsf{horoscop}, which supports typesetting of astrological charts.
% Features include:
%
% \begin{itemize}
% \item A unified interface for astrological symbols/glyphs, supporting three
-% different astrological fonts as well as text abbreviations.
+% different astrological fonts as well as text abbreviations and Unicode
+% astrological symbol code points.
% \item Support for invoking Astrolog or Swiss Ephemeris to calculate
% charts. Positions can also be specified manually.
% \item Loading and saving object and cusp positions into \TeX\ macros.
@@ -216,21 +221,59 @@
% whatever comes out of the calculation software but it will be your own
% fault if that is nonsense.
%
-% This 0.92 release is the first one to be submitted to CTAN. I still feel
-% like \textsf{horoscop} is beta software, but it has existed since 2004, it
-% has not changed much in years, the recent switch to \textsf{pict2e} makes
-% it a lot more useful with modern \TeX\ installations, and I think the time
-% has come to share it more widely. Next version will probably be 1.0.
-%
-% This package has a GitHub repository at
-% \url{http://github.com/mskala/horoscop}. Bug reports should be filed
-% there using GitHub's issue tracking system.
-%
+% I presented this package at TUG~2016, with a one-page summary in the
+% conference proceedings: Skala, M. 2016. Astrological
+% charts with \textsf{horoscop} and \textsf{starfont}.
+% \emph{TUGboat,} 37(2):p.\ 182. Proceedings of the 37th Annual Meeting of
+% the TeX Users Group (TUG 2016), Toronto, Ontario, July 25-27, 2016. A PDF
+% of the summary is at \url{https://tug.org/TUGboat/tb37-2/tb116skala.pdf};
+% a PDF of the slides from my talk is at
+% \url{https://tug.org/tug2016/slides/skala.pdf}; and there is video of most
+% of the presentation at
+% \url{http://zeeba.tv/astrological-charts-with-horoscop-and-starfont/}.
+%
+% This release, version 1.0, represents a mature version of the package.
+% The last release, version 0.92, was called a beta test, but it has
+% been in use seven years now without needing any significant bug fixing or
+% updates. The most serious issue in 0.92 was in the documentation of
+% how to enter manually-calculated object positions; the underlying macros
+% for it worked well.
+%
+% So this 1.0 release is primarily an update to the documentation to fix
+% that issue, as well as to bump the version number and recognize the fact
+% that the package is mature and fully usable. I have also taken the
+% opportunity to add the Unicode-symbols feature, to reduce
+% \textsf{horoscop}'s ties to classical \TeX\ and its font systems as users
+% increasingly move toward Unicode engines and Unicode-based font selection;
+% and I have updated such things as Web links and development contacts to
+% reflect the inevitable changes in human institutitons over the years.
+%
+% \changes{v1.0}{2020/07/20}{In memoriam Axel}
+% I encourage readers to think of Axel Harvey, a close friend of mine and
+% a professional astrologer who contributed greatly to the testing of this
+% software and its associated Web service. He died in 2016, and is missed.
+%
+% \changes{v1.0}{2020/07/20}{New links for my own Web sites}
% There is an online chart service demonstrating \textsf{horoscop} at
-% \url{http://ansuz.sooke.bc.ca/astrology/makechart.php}. I also maintain a
-% page pointing to recent versions of this, my \textsf{starfont} package,
-% and any other \LaTeX\ astrology resources I can find, at
-% \url{http://ansuz.sooke.bc.ca/entry/107}.
+% \href{https://edifyingfellowship.org/astro/}{\nolinkurl https://edifying}
+% \href{https://edifyingfellowship.org/astro/}{\nolinkurl fellowship.org/astro/}.
+% I also maintain a page pointing to \LaTeX\ astrology resources, at
+% \url{https://ansuz.sooke.bc.ca/entry/107}.
+%
+% I no longer encourage the use of GitHub and it is unlikely that the
+% existing GitHub repository for \textsf{horoscop} will be updated further.
+% Bug reports and other correspondence related to \textsf{horoscop} should
+% be directed to \href{mailto:mskala@ansuz.sooke.bc.ca}%
+% {\nolinkurl{mskala@ansuz.sooke.bc.ca}}.
+%
+% As of 2016, I am no longer pursuing a career in academic computer science.
+% I have started a business selling modules of my own design for
+% Eurorack modular synthesizers, and kits for building them, through a Web
+% storefront at \url{https://northcoastsynthesis.com/}. If you are
+% interested in electronic music, please consider buying my products; if
+% not, please pass on the link to others. My ability to spend time
+% making free resources to share, such as the \textsf{horoscop} package,
+% depends on the success of my business.
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -249,14 +292,20 @@
% missing or unsuitable.
% Instead of using an astrological font
% at all, the |textsym| option may be used to substitute abbreviations
-% written in \LaTeX's ordinary text font.
+% written in \LaTeX's ordinary text font, which should work in any
+% \LaTeX\ environment; or the |unicode| option may
+% \changes{v1.0}{2020/07/20}{\texttt{unicode} option}
+% be used with \XeLaTeX\ or \LuaLaTeX\@. With |unicode|, \textsf{horoscop}
+% will use Unicode code points for the astrological symbols and leave it up to
+% the Unicode-supporting \TeX\ engine to typeset them in an appropriate font.
%
% Sources for astrological font packages:
% \changes{v0.92}{2013/05/16}{Update links for font packages}
+% \changes{v1.0}{2020/07/20}{Upgrade links to HTTPS}
% \begin{itemize}
-% \item \textsf{marvosym}: \url{http://www.ctan.org/pkg/marvosym}
-% \item \textsf{starfont}: \url{http://www.ctan.org/pkg/starfont}
-% \item \textsf{wasysym}: \url{http://www.ctan.org/pkg/wasysym}
+% \item \textsf{marvosym}: \url{https://ctan.org/pkg/marvosym}
+% \item \textsf{starfont}: \url{https://ctan.org/pkg/starfont}
+% \item \textsf{wasysym}: \url{https://ctan.org/pkg/wasysym}
% \end{itemize}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -285,12 +334,13 @@
% using this feature, by coding all the object locations into the \LaTeX\
% source file instead of having them calculated on the fly.
%
+% \changes{v1.0}{2020/07/20}{Upgrade links to HTTPS}
% Sources for external calculation programs:
% \begin{itemize}
% \item Astrolog:
-% \url{http://www.astrolog.org/astrolog.htm}
+% \url{https://www.astrolog.org/astrolog.htm}
% \item Swiss Ephemeris:
-% \url{http://www.astro.com/swisseph/}
+% \url{https://www.astro.com/swisseph/}
% \end{itemize}
%
% {\em External calculation programs require |\write18| support in \TeX.}
@@ -356,7 +406,8 @@
%
% \subsection{Astrological Symbol Options}
%
-% The options |textsym|, |wasysym|, |marvosym|, and |starfont| control the
+% The options |textsym|, |unicode|, |wasysym|, |marvosym|, and
+% |starfont| control the
% font used for astrological symbols. You may choose more than one of these
% options, in which case more than one set will be available in your
% document. The set in force at the start of the document will be the last
@@ -374,16 +425,28 @@
% The abbreviations are also used to replace missing symbols in the other
% sets.
%
+% \changes{v1.0}{2020/07/20}{\texttt{unicode} option}
+% The |unicode| option is normally only useful in \XeLaTeX\ and \LuaLaTeX;
+% it causes \textsf{horoscop} to use non-ASCII Unicode characters for
+% astrological symbols. It is up to the \TeX\ engine, or the user, to
+% select a font or combination of fonts in which these characters can be
+% typeset. Both \XeLaTeX\ and \LuaLaTeX\ offer relevant font-selection
+% features, and if \textsf{horoscop} detects (using the \textsf{iftex}
+% package) some other engine, it will fall back to a text indication of
+% the desired code points, which looks like $\langle$U+263D$\rangle$.
+%
% \DescribeMacro{\horotextsym}
+% \DescribeMacro{\horounicode}
% \DescribeMacro{\horowasysym}
% \DescribeMacro{\horomarvosym}
% \DescribeMacro{\horostarfont}
-% The macros |\horotextsym|, |\horowasysym|, |\horomarvosym|, and
-% |\horostar|-|font| switch to the corresponding set of astrological symbols,
+% The macros |\horotextsym|, |\horounicode|, |\horowasysym|,
+% |\horomarvosym|, and |\horostarfont| switch to the corresponding set
+% of astrological symbols,
% so that documents can mix the different sets. Any symbols not defined by
% the new set remain in the state left by the old set. To use these macros
% the corresponding symbol sets must have been loaded with the appropriate
-% package options, except |\horotextsym| which is always available.
+% package options, except that |\horotextsym| is always available.
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -583,154 +646,188 @@
% the entire zodiac by redefining |\Zodiac| instead of redefining individual
% symbols.
%
-% \begin{tabular}{lcccc}
-% macro & |textsym| & |wasysym| & |marvosym| & |starfont| \\
+% {\setlength{\tabcolsep}{0.2em}
+% \begin{tabular}{lccccc}
+% macro & |textsym| & |unicode| & |wasysym| & |marvosym| & |starfont| \\
% |\AriesSymbol| & \horotextsym\AriesSymbol
+% & \horounicode\AriesSymbol
% & \horowasysym\AriesSymbol
% & \horomarvosym\AriesSymbol
% & \horostarfont\AriesSymbol \\
% |\TaurusSymbol| & \horotextsym\TaurusSymbol
+% & \horounicode\TaurusSymbol
% & \horowasysym\TaurusSymbol
% & \horomarvosym\TaurusSymbol
% & \horostarfont\TaurusSymbol \\
% |\GeminiSymbol| & \horotextsym\GeminiSymbol
+% & \horounicode\GeminiSymbol
% & \horowasysym\GeminiSymbol
% & \horomarvosym\GeminiSymbol
% & \horostarfont\GeminiSymbol \\
% |\CancerSymbol| & \horotextsym\CancerSymbol
+% & \horounicode\CancerSymbol
% & \horowasysym\CancerSymbol
% & \horomarvosym\CancerSymbol
% & \horostarfont\CancerSymbol \\
% |\LeoSymbol| & \horotextsym\LeoSymbol
+% & \horounicode\LeoSymbol
% & \horowasysym\LeoSymbol
% & \horomarvosym\LeoSymbol
% & \horostarfont\LeoSymbol \\
% |\VirgoSymbol| & \horotextsym\VirgoSymbol
+% & \horounicode\VirgoSymbol
% & \horowasysym\VirgoSymbol
% & \horomarvosym\VirgoSymbol
% & \horostarfont\VirgoSymbol \\
% |\LibraSymbol| & \horotextsym\LibraSymbol
+% & \horounicode\LibraSymbol
% & \horowasysym\LibraSymbol
% & \horomarvosym\LibraSymbol
% & \horostarfont\LibraSymbol \\
% |\ScorpioSymbol| & \horotextsym\ScorpioSymbol
+% & \horounicode\ScorpioSymbol
% & \horowasysym\ScorpioSymbol
% & \horomarvosym\ScorpioSymbol
% & \horostarfont\ScorpioSymbol \\
% |\SagittariusSymbol| & \horotextsym\SagittariusSymbol
+% & \horounicode\SagittariusSymbol
% & \horowasysym\SagittariusSymbol
% & \horomarvosym\SagittariusSymbol
% & \horostarfont\SagittariusSymbol \\
% |\CapricornSymbol| & \horotextsym\CapricornSymbol
+% & \horounicode\CapricornSymbol
% & \horowasysym\CapricornSymbol
% & \horomarvosym\CapricornSymbol
% & \horostarfont\CapricornSymbol \\
% |\AquariusSymbol| & \horotextsym\AquariusSymbol
+% & \horounicode\AquariusSymbol
% & \horowasysym\AquariusSymbol
% & \horomarvosym\AquariusSymbol
% & \horostarfont\AquariusSymbol \\
% |\PiscesSymbol| & \horotextsym\PiscesSymbol
+% & \horounicode\PiscesSymbol
% & \horowasysym\PiscesSymbol
% & \horomarvosym\PiscesSymbol
% & \horostarfont\PiscesSymbol
-% \end{tabular}
+% \end{tabular}}
%
% \subsubsection{Luminaries and traditional planets}
%
% These are well-supported by the various fonts.
%
-% \begin{tabular}{lcccc}
-% macro & |textsym| & |wasysym| & |marvosym| & |starfont| \\
+% {\setlength{\tabcolsep}{0.2em}
+% \begin{tabular}{lccccc}
+% macro & |textsym| & |unicode| & |wasysym| & |marvosym| & |starfont| \\
% |\SunSymbol| & \horotextsym\SunSymbol
+% & \horounicode\SunSymbol
% & \horowasysym\SunSymbol
% & \horomarvosym\SunSymbol
% & \horostarfont\SunSymbol \\
% |\MoonSymbol| & \horotextsym\MoonSymbol
+% & \horounicode\MoonSymbol
% & \horowasysym\MoonSymbol
% & \horomarvosym\MoonSymbol
% & \horostarfont\MoonSymbol \\
% |\MercurySymbol| & \horotextsym\MercurySymbol
+% & \horounicode\MercurySymbol
% & \horowasysym\MercurySymbol
% & \horomarvosym\MercurySymbol
% & \horostarfont\MercurySymbol \\
% |\VenusSymbol| & \horotextsym\VenusSymbol
+% & \horounicode\VenusSymbol
% & \horowasysym\VenusSymbol
% & \horomarvosym\VenusSymbol
% & \horostarfont\VenusSymbol \\
% |\MarsSymbol| & \horotextsym\MarsSymbol
+% & \horounicode\MarsSymbol
% & \horowasysym\MarsSymbol
% & \horomarvosym\MarsSymbol
% & \horostarfont\MarsSymbol \\
% |\JupiterSymbol| & \horotextsym\JupiterSymbol
+% & \horounicode\JupiterSymbol
% & \horowasysym\JupiterSymbol
% & \horomarvosym\JupiterSymbol
% & \horostarfont\JupiterSymbol \\
% |\SaturnSymbol| & \horotextsym\SaturnSymbol
+% & \horounicode\SaturnSymbol
% & \horowasysym\SaturnSymbol
% & \horomarvosym\SaturnSymbol
% & \horostarfont\SaturnSymbol \\
% |\UranusSymbol| & \horotextsym\UranusSymbol
+% & \horounicode\UranusSymbol
% & \horowasysym\UranusSymbol
% & \horomarvosym\UranusSymbol
% & \horostarfont\UranusSymbol \\
% |\NeptuneSymbol| & \horotextsym\NeptuneSymbol
+% & \horounicode\NeptuneSymbol
% & \horowasysym\NeptuneSymbol
% & \horomarvosym\NeptuneSymbol
% & \horostarfont\NeptuneSymbol \\
% |\PlutoSymbol| & \horotextsym\PlutoSymbol
+% & \horounicode\PlutoSymbol
% & \horowasysym\PlutoSymbol
% & \horomarvosym\PlutoSymbol
% & \horostarfont\PlutoSymbol
-% \end{tabular}
+% \end{tabular}}
%
% \subsubsection{Other objects, cusps, and angles}
% The \textsf{starfont} package provides symbols for asteroids, derived
% points, angles, and so on. Without it, these things default to the
-% |textsym| abbreviations. Cusp symbols are listed here too, although they
+% |textsym| abbreviations. The |unicode| option also has code points for
+% these. Cusp symbols are listed in this table, but they
% generally do not appear in the default templates and will seldom be used
% in actual practice.
%
-% \begin{tabular}{lcc}
-% macro & |textsym| & |starfont| \\
+% {\setlength{\tabcolsep}{0.2em}
+% \begin{tabular}{lccc}
+% macro & |textsym| & |unicode| &|starfont| \\
% |\ChironSymbol| & \horotextsym\ChironSymbol
+% & \horounicode\ChironSymbol
% & \horostarfont\ChironSymbol \\
% |\CeresSymbol| & \horotextsym\CeresSymbol
+% & \horounicode\CeresSymbol
% & \horostarfont\CeresSymbol \\
% |\PallasSymbol| & \horotextsym\PallasSymbol
+% & \horounicode\PallasSymbol
% & \horostarfont\PallasSymbol \\
% |\JunoSymbol| & \horotextsym\JunoSymbol
+% & \horounicode\JunoSymbol
% & \horostarfont\JunoSymbol \\
% |\VestaSymbol| & \horotextsym\VestaSymbol
+% & \horounicode\VestaSymbol
% & \horostarfont\VestaSymbol \\
% |\NorthNodeSymbol| & \horotextsym\NorthNodeSymbol
+% & \horounicode\NorthNodeSymbol
% & \horostarfont\NorthNodeSymbol \\
% |\SouthNodeSymbol| & \horotextsym\SouthNodeSymbol
+% & \horounicode\SouthNodeSymbol
% & \horostarfont\SouthNodeSymbol \\
% |\LilithSymbol| & \horotextsym\LilithSymbol
+% & \horounicode\LilithSymbol
% & \horostarfont\LilithSymbol \\
% |\CuspISymbol| & \horotextsym\CuspISymbol
-% & \horostarfont\CuspISymbol \\
+% & & \horostarfont\CuspISymbol \\
% |\CuspIISymbol| & \horotextsym\CuspIISymbol & \\
% |\CuspIIISymbol| & \horotextsym\CuspIIISymbol & \\
% |\CuspIVSymbol| & \horotextsym\CuspIVSymbol
-% & \horostarfont\CuspIVSymbol \\
+% & & \horostarfont\CuspIVSymbol \\
% |\CuspVSymbol| & \horotextsym\CuspVSymbol & \\
% |\CuspVISymbol| & \horotextsym\CuspVISymbol & \\
% |\CuspVIISymbol| & \horotextsym\CuspVIISymbol
-% & \horostarfont\CuspVIISymbol \\
+% & & \horostarfont\CuspVIISymbol \\
% |\CuspVIIISymbol| & \horotextsym\CuspVIIISymbol & \\
% |\CuspIXSymbol| & \horotextsym\CuspIXSymbol & \\
% |\CuspXSymbol| & \horotextsym\CuspXSymbol
-% & \horostarfont\CuspXSymbol \\
+% & & \horostarfont\CuspXSymbol \\
% |\CuspXISymbol| & \horotextsym\CuspXISymbol & \\
% |\CuspXIISymbol| & \horotextsym\CuspXIISymbol & \\
% |\AscendantSymbol| & \horotextsym\AscendantSymbol
-% & \horostarfont\AscendantSymbol \\
+% & & \horostarfont\AscendantSymbol \\
% |\MCSymbol| & \horotextsym\MCSymbol
-% & \horostarfont\MCSymbol \\
+% & & \horostarfont\MCSymbol \\
% |\VertexSymbol| & \horotextsym\VertexSymbol
-% & \horostarfont\VertexSymbol \\
-% \end{tabular}
+% & & \horostarfont\VertexSymbol \\
+% \end{tabular}}
%
% Note that \textsf{wasysym} provides a symbol it calls |\ascnode|, but it's
% actually identical to the symbol it calls |\leo|, and the symbol (\leo)
@@ -770,35 +867,44 @@
% below also shows the default angles and orbs for the aspects; see
% Subsection~\ref{sub:aspect-web}.
%
-% {\renewcommand{\tabcolsep}{0.2em}
-% \begin{tabular}{lcccc}
-% macro & |textsym| & |wasysym| & |starfont| & angle\\
+% \noindent{\setlength{\tabcolsep}{0.1em}
+% \begin{tabular}{lccccc}
+% macro & |textsym| & |unicode| & |wasysym| & |starfont| & angle\\
% |\horoConjunctionSymbol| & \horotextsym\horoConjunctionSymbol
+% & \horounicode\horoConjunctionSymbol
% & \horowasysym\horoConjunctionSymbol
% & \horostarfont\horoConjunctionSymbol & $0\horodegrees\pm6\horodegrees$ \\
% |\horoOppositionSymbol| & \horotextsym\horoOppositionSymbol
+% & \horounicode\horoOppositionSymbol
% & \horowasysym\horoOppositionSymbol
% & \horostarfont\horoOppositionSymbol & $180\horodegrees\pm6\horodegrees$ \\
% |\horoTrineSymbol| & \horotextsym\horoTrineSymbol
+% & \horounicode\horoTrineSymbol
% & \horowasysym\horoTrineSymbol
% & \horostarfont\horoTrineSymbol & $120\horodegrees\pm5\horodegrees$ \\
% |\horoSquareSymbol| & \horotextsym\horoSquareSymbol
+% & \horounicode\horoSquareSymbol
% & \horowasysym\horoSquareSymbol
% & \horostarfont\horoSquareSymbol & $90\horodegrees\pm5\horodegrees$ \\
% |\horoQuintileSymbol| & \horotextsym\horoQuintileSymbol
-% & & \horostarfont\horoQuintileSymbol & $72\horodegrees\pm2\horodegrees$ \\
+% & & & \horostarfont\horoQuintileSymbol & $72\horodegrees\pm2\horodegrees$ \\
% |\horoBiquintileSymbol| & \horotextsym\horoBiquintileSymbol
-% & & \horostarfont\horoBiquintileSymbol & $144\horodegrees\pm2\horodegrees$ \\
+% & & & \horostarfont\horoBiquintileSymbol & $144\horodegrees\pm2\horodegrees$ \\
% |\horoSextileSymbol| & \horotextsym\horoSextileSymbol
+% & \horounicode\horoSextileSymbol
% & \horowasysym\horoSextileSymbol
% & \horostarfont\horoSextileSymbol & $60\horodegrees\pm4\horodegrees$ \\
% |\horoQuincunxSymbol| & \horotextsym\horoQuincunxSymbol
+% & \horounicode\horoQuincunxSymbol
% & & \horostarfont\horoQuincunxSymbol & $150\horodegrees\pm3\horodegrees$ \\
% |\horoSemisextileSymbol| & \horotextsym\horoSemisextileSymbol
+% & \horounicode\horoSemisextileSymbol
% & & \horostarfont\horoSemisextileSymbol & $30\horodegrees\pm3\horodegrees$ \\
% |\horoSemisquareSymbol| & \horotextsym\horoSemisquareSymbol
+% & \horounicode\horoSemisquareSymbol
% & & \horostarfont\horoSemisquareSymbol & $45\horodegrees\pm2\horodegrees$ \\
% |\horoSesquiquadrateSymbol| & \horotextsym\horoSesquiquadrateSymbol
+% & \horounicode\horoSesquiquadrateSymbol
% & & \horostarfont\horoSesquiquadrateSymbol & $135\horodegrees\pm2\horodegrees$
% \end{tabular}}
%
@@ -967,7 +1073,8 @@
% would be better to assign house positions in a way that takes latitude
% into account. See the article ``The Problems of House Division'' by
% Deborah Houlding, available online at
-% \url{http://www.skyscript.co.uk/houprob_print.html}, for more discussion
+% \changes{v1.0}{2020/07/20}{Upgrade links to HTTPS}
+% \url{https://www.skyscript.co.uk/houprob_print.html}, for more discussion
% of this issue. In some future version \textsf{horoscop} may be extended
% to provide more options for handling of this kind of thing.
%
@@ -995,6 +1102,7 @@
% that would be created by |\horocalculate| simply need to be created
% directly, as in the example below.
%
+% \changes{v1.0}{2020/07/20}{Correct macro names for manual position example}
% \begin{verbatim}
% \def\horoSunPos{267.5002492}\def\horoSunVel{1.0185515}
% \def\horoMoonPos{229.2067659}\def\horoMoonVel{11.9237313}
@@ -1008,18 +1116,18 @@
% \def\horoPlutoPos{133.0955746}\def\horoPlutoVel{-0.0150157}
% \def\horoNorthNodePos{70.7814892}\def\horoNorthNodeVel{-0.0529425}
% \def\horoLilithPos{265.3475147}\def\horoLilithVel{0.1108368}
-% \def\horoCuspI{207.9120843}
-% \def\horoCuspII{236.5553269}
-% \def\horoCuspIII{267.6976404}
-% \def\horoCuspIV{300.5365877}
-% \def\horoCuspV{332.9973490}
-% \def\horoCuspVI{2.5292853}
-% \def\horoCuspVII{27.9120843}
-% \def\horoCuspVIII{56.5553269}
-% \def\horoCuspIX{87.6976404}
-% \def\horoCuspX{120.5365877}
-% \def\horoCuspXI{152.9973490}
-% \def\horoCuspXII{182.5292853}
+% \def\horoCuspPosI{207.9120843}
+% \def\horoCuspPosII{236.5553269}
+% \def\horoCuspPosIII{267.6976404}
+% \def\horoCuspPosIV{300.5365877}
+% \def\horoCuspPosV{332.9973490}
+% \def\horoCuspPosVI{2.5292853}
+% \def\horoCuspPosVII{27.9120843}
+% \def\horoCuspPosVIII{56.5553269}
+% \def\horoCuspPosIX{87.6976404}
+% \def\horoCuspPosX{120.5365877}
+% \def\horoCuspPosXI{152.9973490}
+% \def\horoCuspPosXII{182.5292853}
% \end{verbatim}
%
% A few less obvious macros also need to be set for manually-entered
@@ -1185,6 +1293,20 @@
% |\horowheelVancouver|, as in the birth chart for John Lennon shown in
% Figure~\ref{fig:basic-wheel}.
%
+% \changes{v1.0}{2020/07/21}{Emphasize that template names do not determine
+% geographic locations of charts}
+% Please note that the standard templates are named after Canadian cities,
+% but these names are only \emph{thematic names for the visual styles of the
+% charts}\footnote{I was inspired to use this naming theme by Ruskey and
+% Weston's work on Venn diagrams; see
+% \url{https://www.combinatorics.org/files/Surveys/ds5/ds5v3-2005/VennEJC.html}.}
+% and the names of the templates have no connection with the geographic
+% locations the charts refer to. You can plot a chart for any location in
+% Vancouver style, and you can plot a chart that does happen to be for
+% Vancouver (any of the multiple places in the world with that name) using any
+% template. The geographic location for the chart must be specified by
+% latitude and longitude, independently of the template name.
+%
% \begin{figure}
% \horocalcparms{1940}{10}{9}{17:30:0}{W2:55:0}{N53:25:0}
% \horocalculate
@@ -2081,7 +2203,8 @@
% exist \emph{even in theory}. He was probably joking, but so might I be.
% See \emph{``Real'' Analysis is a Degenerate Case of Discrete Analysis},
% D.~Zeilberger,
-% \url{http://www.math.rutgers.edu/~zeilberg/mamarim/mamarimhtml/real.html}.}
+% \changes{v1.0}{2020/07/20}{Upgrade links to HTTPS}
+% \url{https://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimhtml/real.html}.}
% so the decision on how to represent truly exact cusps seems not to be of
% much practical consequence anyway.
%
@@ -2552,7 +2675,7 @@
%
% Note that the spring strength settings are for adjusting
% the {\em relative} strengths of the different kind of adjustments. It
-% will not work to increase or decrese all three uniformly to make
+% will not work to increase or decrease all three uniformly to make
% the overall layout looser or tighter, because the system will simply make
% more or fewer iterations and end up with substantially the same solution.
% Overall looser-tighter control should instead be exercised by changing
@@ -2878,12 +3001,15 @@
%
% These can all be turned on and off independently.
%
+% \changes{v1.0}{2020/07/20}{\texttt{unicode} option}
% \begin{macrocode}
\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}
@@ -2935,14 +3061,25 @@
%
% \begin{macrocode}
\ifhoro@textsym\else
- \ifhoro@wasysym\else
- \ifhoro@marvosym\else
- \horo@starfonttrue
+ \ifhoro@unicode\else
+ \ifhoro@wasysym\else
+ \ifhoro@marvosym\else
+ \horo@starfonttrue
+ \fi
\fi
\fi
\fi
% \end{macrocode}
%
+% Because \textsf{iftex} defines conditionals, we must load it
+% unconditionally. Otherwise the parse of our style file (when it skims
+% over not-taken conditional bodies) fails.
+%
+% \changes{v1.0}{2020/07/02}{Require \textsf{iftex}}
+% \begin{macrocode}
+\RequirePackage{iftex}%
+% \end{macrocode}
+%
% Load other packages as needed by the selected options. Since
% there are some name conflicts between macros defined by in different
% packages and we want to retain access to both versions, we save each
@@ -3150,12 +3287,195 @@
\horotextsym
% \end{macrocode}
%
+% \subsubsection{Unicode astrological symbols}
+%
+% \changes{v1.0}{2020/07/20}{\texttt{unicode} option}
+% As with |textsym|, the actual setting of the symbol macros is all inside a
+% |unicode|-specific macro so that we can switch back to it easily
+% after using other symbol sets. The macro |\horounicode@| contains the
+% actual code points in caret notation, which traditional \TeX\ engines
+% cannot process; this macro is called by |\horounicode| conditionally
+% on its detecting a Unicode-compatible engine.
+%
+% \begin{macro}{\horounicode@}
+% \begin{macrocode}
+\ifhoro@unicode\newcommand{\horounicode@}{%
+% \end{macrocode}
+%
+% Signs of the Zodiac:
+% \begin{macrocode}
+\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}%
+% \end{macrocode}
+%
+% Traditional planets and luminaries:
+% \begin{macrocode}
+\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}%
+% \end{macrocode}
+%
+% Minor planets:
+% \begin{macrocode}
+\gdef\ChironSymbol{^^^^26b7}%
+\gdef\CeresSymbol{^^^^26b3}%
+\gdef\PallasSymbol{^^^^26b4}%
+\gdef\JunoSymbol{^^^^26b5}%
+\gdef\VestaSymbol{^^^^26b6}%
+% \end{macrocode}
+%
+% Derived points:
+% \begin{macrocode}
+\gdef\NorthNodeSymbol{^^^^260a}%
+\gdef\SouthNodeSymbol{^^^^260b}%
+\gdef\LilithSymbol{^^^^26b8}%
+% \end{macrocode}
+%
+% Direction:
+% \begin{macrocode}
+\gdef\horoRetrogradeSymbol{^^^^211e}%
+% \end{macrocode}
+%
+% Aspects:
+% \begin{macrocode}
+\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}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% This helper macro typesets a notation that describes a code point in text:
+%
+% \begin{macro}{\horounicode@point}
+% \begin{macrocode}
+\newcommand{\horounicode@point}[1]{\ensuremath{\langle\mbox{U+#1}\rangle}}
+% \end{macrocode}
+% \end{macro}
+%
+% The |\horounicode| driver can either call |\horounicode@| to really
+% use Unicode, or display text-based descriptions of the Unicode code points
+% it wants, depending on the engine. Factoring |\horounicode@| into a
+% separate macro reduces repetition, since |\horounicode| wants to call it in
+% two different places.
+%
+% \begin{macro}{\horounicode}
+% \changes{v1.0}{2020/07/20}{New macro}
+% \begin{macrocode}
+\newcommand{\horounicode}{%
+% \end{macrocode}
+%
+% Call |\horounicode@| if it is safe to do so:
+% \begin{macrocode}
+\ifxetex\horounicode@\else
+\ifluatex\horounicode@\else
+% \end{macrocode}
+%
+% Now define all the code points, as above, but in text notation.
+%
+% Signs of the Zodiac:
+% \begin{macrocode}
+\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}}%
+% \end{macrocode}
+%
+% Traditional planets and luminaries:
+% \begin{macrocode}
+\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}}%
+% \end{macrocode}
+%
+% Minor planets:
+% \begin{macrocode}
+\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}}%
+% \end{macrocode}
+%
+% Derived points:
+% \begin{macrocode}
+\gdef\NorthNodeSymbol{\horounicode@point{260A}}%
+\gdef\SouthNodeSymbol{\horounicode@point{260B}}%
+\gdef\LilithSymbol{\horounicode@point{26B8}}%
+% \end{macrocode}
+%
+% Direction:
+% \begin{macrocode}
+\gdef\horoRetrogradeSymbol{\horounicode@point{211E}}%
+% \end{macrocode}
+%
+% Aspects:
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Now invoke |\horounicode| to make these symbols default at the start of
+% the document, except for the few (house cusps, and quintiles) that
+% don't exist in Unicode.
+% \begin{macrocode}
+\horounicode
+\fi
+% \end{macrocode}
+%
% \subsubsection{Symbols from \textsf{wasysym}}
%
% \begin{macro}{\horowasysym}
-% As with |textsym|, the actual setting of the symbol macros is all inside a
-% \textsf{wasysym}-specific macro so that we can switch back to it easily
-% after using other symbol sets.
+% These, too, are inside a macro specific to the package so that we can
+% switch among multiple symbol sets when more than one is loaded.
% \begin{macrocode}
\ifhoro@wasysym\newcommand{\horowasysym}{%
% \end{macrocode}