1% -*-texinfo-*-
2\def\niceracronym#1{#1}
3%\def\rmdefault{ppl}\def\ne{\mathrel{\not{}\mskip-8mu=}}\input pstexinfo
4\input texinfo
5@c@let@acronym@niceracronym
6
7@c 	$Id: pp3.texi,v 1.46 2004/03/21 14:33:43 bronger Exp $
8
9@c======================================================================@>
10@c    pp3.texi - Part of the PP3 Program                                @>
11@c    Copyright 2002--2004 Torsten Bronger                              @>
12@c                         <bronger@users.sourceforge.net>              @>
13@c                                                                      @>
14@c  This program may be distributed and/or modified under the           @>
15@c  conditions of the MIT licence with the following constraint:        @>
16@c  If you copy or distribute a modified version of this Software, the  @>
17@c  entire resulting derived work must be given a different name and    @>
18@c  distributed under the terms of a permission notice identical to     @>
19@c  this one.                                                           @>
20@c                                                                      @>
21@c  Permission is hereby granted, free of charge, to any person         @>
22@c  obtaining a copy of this software and associated documentation      @>
23@c  files (the ``Software''), to deal in the Software without           @>
24@c  restriction, including without limitation the rights to use, copy,  @>
25@c  modify, merge, publish, distribute, sublicense, and/or sell copies  @>
26@c  of the Software, and to permit persons to whom the Software is      @>
27@c  furnished to do so, subject to the following conditions:            @>
28@c                                                                      @>
29@c      The above copyright notice and this permission notice shall be  @>
30@c      included in all copies or substantial portions of the           @>
31@c      Software.                                                       @>
32@c                                                                      @>
33@c      If you copy or distribute a modified version of this Software,  @>
34@c      the entire resulting derived work must be given a different     @>
35@c      name and distributed under the terms of a permission notice     @>
36@c      identical to this one.                                          @>
37@c                                                                      @>
38@c  The Software is provided ``as is'', without warranty of any kind,   @>
39@c  express or implied, including but not limited to the warranties of  @>
40@c  merchantability, fitness for a particular purpose and               @>
41@c  noninfringement.  In no event shall the authors or copyright        @>
42@c  holders be liable for any claim, damages or other liability,        @>
43@c  whether in an action of contract, tort or otherwise, arising from,  @>
44@c  out of or in connection with the Software or the use or other       @>
45@c  dealings in the Software.                                           @>
46@c======================================================================@>
47
48@c %**start of header
49@setchapternewpage odd
50@setfilename pp3.info
51
52@set VERSION 1.3.2
53@set SHORTVERSION 132
54
55@settitle PP3 @value{VERSION}
56@documentencoding ISO-8859-1
57@documentlanguage en
58@c %**end of header
59
60@defindex kw
61@syncodeindex kw cp
62
63@macro PPTHREE {}
64@acronym{PP3}
65@end macro
66
67@macro s {}
68@tex
69@kern0.1667em%
70@end tex
71@end macro
72
73@macro xmarksthespot {}
74@tex
75`@math{@times{}}'@ignorespaces
76@end tex
77@ifnottex
78`x'@c
79@end ifnottex
80@end macro
81
82@copying
83This manual is for @PPTHREE{} (version @value{VERSION}),
84which is a celestial charts drawing tool.
85
86Copyright @copyright{} 2002--2004 Torsten Bronger
87@t{<}@email{bronger@@users.sourceforge.net}@t{>}.
88
89
90@quotation
91This documentation is free software; you can redistribute it and/or
92modify it under the terms of the @acronym{MIT} licence.  Please see the
93@t{COPYING} file of the @PPTHREE{} distribution for further information.
94@end quotation
95@end copying
96
97@finalout
98@titlepage
99@title PP3
100@subtitle typesetting beautiful celestial maps
101@subtitle version @value{VERSION}
102@sp 2
103@image{title,10cm,,Constellation map of Orion and its neighbours}
104@author Torsten Bronger
105@page
106@vskip 0pt plus 1filll
107@insertcopying
108@end titlepage
109
110@dircategory Individual utilities
111@direntry
112* PP3: (PP3).           Drawing celestial maps.
113@end direntry
114
115@iftex
116@hyphenation{ca-ta-logue ca-ta-logues}
117@end iftex
118
119
120@ifnottex
121@node Top
122@top The PP3 program for drawing celestial maps.
123
124@PPTHREE{} generates celestial charts of high (typo)graphical quality.
125It uses @LaTeX{} + pstricks for this, so the end formats are
126@acronym{EPS} and @acronym{PDF} (in contrast to mere bitmaps).
127
128The program automatically avoids labels that overlap, and you can change
129many parameters.  You can place arbitrary text on the map using the
130flexibility of the LaTeX language.
131
132@menu
133* Introduction::                The ideas behind it.
134* Installation::                Some ways to set PP3 up.
135* Basic astronomical terms::    Rectascension, declination, and such.
136* Usage::                       How to invoke PP3.
137* Input scripts::               Telling PP3 what to do.
138* Keywords reference::          List of all PP3 keywords.
139* PP3 and LaTeX::               LaTeX in labels, and LaTeX preambles.
140* Known problems::              List of known shortcomings and bugs.
141* Data file formats::           Internal structure of the database files.
142* List of all constellations::  All 88 official constellations with
143                                  their abbreviations and coordinates.
144* Index::                       General index.
145@end menu
146@end ifnottex
147
148@ifhtml
149This manual exists as a
150@uref{http://pp3.sourceforge.net/manual/,multiple HTML} (also in
151@uref{http://pp3.sourceforge.net/pp3man.zip,@acronym{ZIP} form}) and
152@uref{http://pp3.sourceforge.net/manual/pp3.html,single HTML page} and a
153@uref{http://pp3.sourceforge.net/manual/pp3.pdf,PDF file}.
154@end ifhtml
155
156@c Output the table of the contents at the beginning.
157@contents
158
159@ifnottex
160@insertcopying
161@end ifnottex
162
163
164@node Introduction
165@chapter Introduction
166
167@menu
168* What it is::                  Features of PP3.
169* What it is not::              Limitations of PP3.
170* Online resources::            Where to find PP3 on the Internet.
171* Successful use of PP3::       Things that have been done using PP3.
172@end menu
173
174
175@node What it is
176@section What it is
177
178There are many programs that can create stellar maps.  But none of them
179reaches @PPTHREE{}'s typographic and graphical quality.  In contrast to
180other programs @PPTHREE{} produces vector images
181(e.@s{}g.@:@tie{}@acronym{PDFs}) rather than mere bitmaps.  Therefore it
182is perfectly suited for creating illustrations for books or other print
183media.  But even converted to bitmaps for web pages, it exceeds usual
184quality.
185
186@PPTHREE{} is optimised for the semi-automatic generation of large sets
187of sky maps.  It has decent default behaviour, however it can be
188customised very flexibly.  It tries to take as much fine-tuning work
189away from you as possible.
190
191
192@node What it is not
193@section What it is not
194
195But I must also point out what @PPTHREE{} is @emph{not}.  It cannot help
196you to professionally prepare your next observation night, nor is
197@PPTHREE{} a visualisation tool for astronomical databases, with pop-up
198window information for every sky object on the screen.
199
200In fact, @PPTHREE{} not even has a graphical user interface.  So don't
201expect any windows at all, and your mouse will be useless.  Instead,
202@PPTHREE{} reads from one file and writes to another file.  (This is
203done not only because its author was lazy but because it increases
204efficiency, too.)  So, the program itself is quite stinted, but its
205results are worth it!
206
207
208@node Online resources
209@section Online resources
210
211Further information about @PPTHREE{} beyond this manual and downloads on
212the Internet:
213
214@table @asis
215@item @uref{http://pp3.sourceforge.net}
216@cindex homepage
217@PPTHREE{}'s homepage.
218
219@item @uref{http://sourceforge.net/projects/pp3}
220@cindex download
221@PPTHREE{}'s project page with quick links to downloads.
222
223@item @uref{http://sourceforge.net/project/showfiles.php?group_id=71469,Download area}
224List of all downloadable files, also for older versions.
225
226@item @uref{http://sourceforge.net/tracker/?atid=531401&group_id=71469,Bug data base}
227@cindex bugs
228Here you can see open bugs, make comments, and report new bugs that
229you've found.
230
231@item @uref{http://sourceforge.net/forum/?group_id=71469,Discussion forums}
232@cindex support
233@cindex help
234Ask questions about @PPTHREE{} here.
235
236@item @uref{http://sourceforge.net/tracker/?atid=531404&group_id=71469,Feature requests}
237@cindex feature requests
238Suggest new features and improvements here.
239@end table
240
241Please login when you use one of the services on Sourceforge.  It makes
242responding easier.
243
244
245@node Successful use of PP3
246@section Successful use of PP3
247
248@PPTHREE{} has been used in real life already and has proven its
249helpfulness.
250
251@unnumberedsubsec Wikipedia
252@cindex Wikipedia
253
254@PPTHREE{} has created the celestial maps of all 88 constellations on
255@uref{http://www.wikipedia.org,Wikipedia}, the free encyclopedia.  Feel
256free to browse through a
257@uref{http://wikipedia.org/w/wiki.phtml?title=List_of_constellations,list
258of all constellations}.
259
260@cindex Bitmaps
261@cindex Gimp
262@cindex @acronym{PNG}
263
264This is a web page, so you need bitmaps@footnote{as long as we don't
265have @acronym{SVG}}, and a short @uref{http://www.gimp.org,Gimp}
266script@footnote{which is included into the distribution} helped me to
267convert @PPTHREE{}'s @acronym{EPS} vector output to @acronym{PNG}
268bitmaps.  Additionally, this script creates smaller thumbnail version
269for all charts that exceed a certain width.
270
271The result is that one can create all maps plus their thumbnails with
272one simple command call:
273
274@example
275make
276@end example
277
278@noindent
279Surely it can't become simpler.  You may retort ``Well, but creating the
280maps must have been the actual work''.  Of course it was, but first it
281took only 10--15 minutes per map, because much work is done by the
282default behaviour of @PPTHREE{} itself.  And secondly:
283
284@unnumberedsubsec French Wikipedia
285@cindex Wikipedia
286
287Several months later the @uref{http://fr.wikipedia.org,French division
288of Wikipedia} wanted to translate the maps to French.  They wanted
289another background colour and French labels and constellation names.
290They provided me with a translation table.  It took me three hours to
291adjust the scripts, to run @file{make} again, and to upload the
292@acronym{ZIP} file with all the demanded bitmaps.  See for example the
293@uref{http://fr.wikipedia.org/wiki/Scorpion_(constellation),Scorpius
294entry}.
295
296@unnumberedsubsec h2g2
297@cindex h2g2
298
299Originally @PPTHREE{} was written for a project on
300@uref{http://www.bbc.co.uk/h2g2/guide/,h2g2}, an @emph{edited} Internet
301encyclopedia.  Unfortunately the BBC editors wanted very small bitmaps
302that would not have been helpful, and they were too lazy to include all
303the 88@tie{}bitmaps.  So the project died, but on a smaller scale (for
304ten constellations or so), it indeed motivated authors to contribute
305articles about constellations.  The maps were externally linked.
306
307
308@node Installation
309@chapter Installation
310@cindex installation
311@cindex downloads
312@cindex distribution
313
314You can get the latest @PPTHREE{} file releases from
315@uref{http://sourceforge.net/projects/pp3,@PPTHREE{}'s project page on
316Sourceforge}.  The main @PPTHREE{} distribution comes as several files,
317namely
318
319@table @file
320@item pp3-@var{version}-win.zip
321is the complete Windows distribution.
322
323@item pp3-@var{version}-1tb.i386.rpm
324is the complete Linux RPM distribution.  (There is also the
325corresponding source RPM called @file{pp3-@var{version}-1tb.src.rpm}.)
326
327@item pp3-@var{version}.tar.bz2
328is the complete source distribution.
329
330@item pp3-@var{version}-cripple.tar.gz
331is a partial source distribution.  Milky Way, Nebulae, and the
332@acronym{CWEB} source code are omitted.
333
334@end table
335
336@noindent
337Obviously you need only @emph{one} of these files.
338
339@menu
340* Windows::                     Installation on Windows.
341* Linux::                       Installation on Linux.
342* Increase TeX's memory::       If you want to see the Milky Way.
343@end menu
344
345
346@node Windows
347@section Installation on Windows
348@cindex Windows
349
350Although @PPTHREE{} runs independently of other programs, it is not
351useful when it's alone.  It needs two external tools in order to work
352properly: @TeX{} and Ghostscript.
353
354@center @emph{You need not know how to use @TeX{} and Ghostscript!}
355
356On most Unix/Linux systems @TeX{} and Ghostscript are already installed.
357But on Windows, you have to install them yourself.  Fortunately this is
358not difficult, and both programs may be useful for other purposes, too.
359
360@menu
361* Getting TeX::                 Installing the TeX typesetting engine.
362* Getting Ghostscript::         Installing Ghostscript for Postscript
363                                  handling.
364* Installing PP3::              Finally installing PP3 itself.
365@end menu
366
367
368@node Getting TeX
369@subsection Getting @TeX{}
370@cindex @TeX{}
371@cindex PSTricks
372
373@TeX{} is a mighty typesetter.  @PPTHREE{} calls @TeX{} in order to
374actually create the stellar map.  The result is a Postscript file.
375
376There are two major @TeX{} variants for Windows, namely
377@uref{http://www.miktex.org,Mik@TeX{}} and
378@uref{http://www.tug.org/texlive/,@TeX{}@tie{}Live}.  Both are rather
379similar in their functionality, and both come with a nice installation
380tool.  Please assure that the PSTricks package as part of @TeX{} is
381installed, however this is highly probable anyway.
382
383
384@node Getting Ghostscript
385@subsection Getting Ghostscript
386@cindex Ghostscript
387@cindex Postscript
388
389The best tool for dealing with Postscript files is
390@uref{http://www.cs.wisc.edu/~ghost/doc/AFPL/get811.htm,Ghostscript}.
391In particular, if you've installed Ghostscript, PP3 is able to generate
392@acronym{PDF} files for you.  It is wise (although not necessary) to
393install @uref{http://www.cs.wisc.edu/~ghost/gsview/get45.htm,GSView},
394too.  It lets you view arbitrary Postscript files on screen.
395
396
397@node Installing PP3
398@subsection Installation of PP3 itself
399
400When @TeX{} and Ghostscript are in the right place, you finish the
401installation by unpacking the @PPTHREE{} @acronym{ZIP} file and copying
402its content in the proper directories:
403
404@enumerate
405@item
406@cindex environment variables
407@cindex @env{PATH}
408Copy @file{pp3.exe} to an arbitrary directory that is in your
409@env{PATH}.
410
411@item
412@cindex @env{PP3DATA}
413Copy all the other files to @emph{one single} arbitrary directory.  Then
414set the environment variable @env{PP3DATA} to this directory.
415
416@end enumerate
417
418For the sake of simplicity, I recommend to copy everything to
419@file{C:\Programs\pp3} and to set your @env{PATH} environment variable
420to
421
422@display
423@code{@var{old PATH};C:\Programs\pp3}
424@end display
425
426@noindent
427and to set the @env{PP3DATA} environment variable to
428@file{C:\Programs\pp3}.  That's it.
429
430
431@node Linux
432@section Installation on Linux
433@cindex Linux
434
435@menu
436* RPM installation::            The simple way.
437* Building from sources::       The hard way.
438@end menu
439
440Before you install @PPTHREE{}, ensure that @TeX{} and Ghostscript are
441installed.
442
443
444@node RPM installation
445@subsection @acronym{RPM} installation
446@cindex @acronym{RPM}
447
448You should consider to use the @acronym{RPM} file, because it is the
449simplest installation.  It works for SuSE Linux and probably also for
450Red@s{}Hat.  Just enter (as root)
451
452@display
453@code{rpm -i @var{RPM-file-name}}
454@end display
455
456@noindent
457That's it.
458
459
460@node Building from sources
461@subsection Building from sources
462@cindex sources
463@cindex @acronym{CWEB}
464
465(Actually you can compile the sources on Windows, too (of course), but
466since most people who do compile are Linux users, I dare to put it in
467the Linux section.)
468
469@PPTHREE{} is written in @acronym{CWEB}@.  This is special form of C++
470and can be transformed to real C++ trivially.  You only need the
471@uref{http://www-cs-faculty.stanford.edu/~knuth/cweb.html,@acronym{CWEB}
472programs} installed.  For your convenience the C++ code of @PPTHREE{} is
473included into the source distribution, so you need @acronym{CWEB} only
474if you want to modify the program.
475
476There is no @file{configure} script.  Just call @code{make} and (as
477root) @code{make install}.  Before that, you may want to adjust some
478paths in the @file{Makefile}.
479
480@cindex @env{PP3DATA}
481@cindex environment variables
482
483@PPTHREE{} looks for its data files (all files with the @file{.dat}
484extension) in a special directory that is pre-compiled in the
485executable.  The Makefile assures that this is the correct one, but you
486can override that at runtime with the environment variable
487@env{PP3DATA}.
488
489
490@node Increase TeX's memory
491@section Increase @TeX{}'s memory
492@cindex @TeX{}
493@cindex pool size (@TeX{})
494@cindex te@TeX{}
495
496There is exactly one object that can need a lot of memory: the Milky
497Way.  Therefore it's switched off by default.  But if you want to see
498the Milky Way on your maps, you probably should set the main memory size
499of your @TeX{} distribution to its maximal value.  This is very
500implementation specific.  With te@TeX{} (Linux) you have to find the
501file @file{texmf.cnf} and set `@code{main_memory.latex}' to 7500000.
502Then call (as root)
503
504@example
505fmtutil --byfmt latex
506@end example
507
508@cindex fp@TeX{}
509@cindex @TeX{}@s{}Live
510
511@noindent
512With fp@TeX{}/@TeX{}@s{}Live (Windows) it's the same.
513
514@cindex Mik@TeX{}
515
516Mik@TeX{} however (Windows too) is different.  Look for a directory
517called @file{localtexmf}.  Then create the file@footnote{It may be
518necessary to create the sub directories, too.}
519@file{localtexmf\miktex\config\miktex.ini} and write
520
521@example
522mem_max=7500000
523@end example
524
525@noindent
526in it.
527
528Alternatively (albeit not cleanly), look for an existing file called
529@file{miktex.ini} and change the line with @code{mem_max} to the above.
530
531@sp 1
532These are the most common @TeX{} variants.  For others please have a
533look in the manual of your @TeX{} distribution for definitive
534information.
535
536
537@node Basic astronomical terms
538@chapter Basic astronomical terms
539
540The following is a mere crash course.  It is supposed to enable you to
541use @PPTHREE{} even if you didn't know how astronomers describe the sky.
542
543Readers competent in astronomy may skip it, although
544@ref{Constellations} and @ref{Catalogues} contain minor program
545peculiarities, too.
546
547@menu
548* Celestial coordinate system::  Rectascension and declination.
549* Magnitudes::                  Stellar brightnesses.
550* Constellations::              Constellations and their boundaries.
551* Catalogues::                  How to name one particular sky
552                                  object properly.
553@end menu
554
555
556@node Celestial coordinate system
557@section Celestial coordinate system
558@cindex coordinates, celestial
559
560On a sheet of paper, every point has an @math{x} and a @math{y}
561coordinate.  On planet Earth, every location has a @emph{longitude} and
562a @emph{latitude}.
563
564@cindex rectascension
565@cindex declination
566
567With a very similar system astronomers give the coordinates of every
568point in the sky.  The sky longitude is called @emph{rectascension} and
569the sky latitude is called @emph{declination}.  There is a sky North
570Pole (near the Polar Star), a sky South Pole, and a sky equator.  You
571can make globes of the sky like of the Earth, with the only difference
572that you must imagine being @emph{inside} the globe.
573
574So, in a way, the rectascension is the @math{x} coordinate.  It is given
575in `hours' (h) from 0@dmn{h} to 24@dmn{h}.  Since the sky is circular,
576both 0@dmn{h} and 24@dmn{h} are the same rectascension, and 12@dmn{h} is
577the opposite to it.
578
579Usually the fraction of the rectascension that is smaller than 1@dmn{h}
580is given in minutes and seconds, however in @PPTHREE{} the rectascension
581is one decimal fraction number.
582
583The declination corresponds to the @math{y} coordinate.  It is measured
584from @math{-90^\circ} (South Pole) over @math{0^\circ} (equator) to
585@math{+90^\circ} (North Pole).
586
587
588@node Magnitudes
589@section The system of magnitudes
590@cindex magnitudes
591@cindex brightness, astronomical
592
593Theoretically you could measure the brightness of stars in candela like
594the brightness of a light bulb.  But this is rather awkward.  Instead,
595astronomers use the system of @emph{magnitudes}@tie{}(m).
596
597The brighter a star, the smaller is its magnitude.  Sirius is the
598brightest star in the sky, and its brightness is @math{-1.6}@dmn{m}.
599Vega has a brightness of @math{0.0}@dmn{m}, and Polaris, the Pole Star,
600of @math{2.0}@dmn{m}.  The faintest stars that you can see with the
601naked eye in a very clear sky have @math{6}@dmn{m}.
602
603The faintest stars in the standard catalogue of @PPTHREE{} are of
604approx.@tie{}@math{7}@dmn{m}, however extremely good terrestrial
605telescopes can see up to @math{22}@dmn{m}.
606
607
608@node Constellations
609@section Constellations
610@cindex constellations
611
612Since the 1930s, the sky is officially divided into 88 constellations.
613At that time, the boundaries between the constellations were clearly
614defined, too: namely by the coordinates of sky points that, when
615connected with their respective neighbours, create the boundaries.
616
617Every constellation has a Latin name and a three letter abbreviation.
618For example ``Orion -- Ori'', or ``Ursa Major -- UMa'' (Great Bear), or
619``Hydrus -- Hyi'' (Male Water Snake).  This abbreviation plays a big
620role in @PPTHREE{} because it's the only way to denote a constellation.
621You must use only uppercase letters in the abbreviation: @samp{ORI},
622@samp{UMA}, @samp{HYI}.
623
624One constellation, the snake or ``Serpens'', is divided into two parts,
625``Serpens Caput'' (Head) and ``Serpens Cauda'' (Tail).  They are
626abbreviated @code{SER1} and @code{SER2} in @PPTHREE{}.  If you say
627@code{SER} only, you mean both parts.
628
629
630@node Catalogues
631@section Catalogues: Flamsteed, Henry Draper, NGC/IC and Messier
632
633When you use @PPTHREE{} you have to tell the program e.@s{}g.@: which
634star you want to delete from the map or which nebula shall get a
635different label.  For this, every sky object must have a distinct name
636in @PPTHREE{}.
637
638By and large there are two kinds of objects in the sky: stars and
639nebulae.  Astronomers have created many catalogues of them.  There are
640two star catalogues and three nebulae catalogues supported in
641@PPTHREE{}.
642
643@menu
644* Denoting stars::              How stars get a name in PP3.
645* Denoting nebulae::            How nebulae get a name in PP3.
646@end menu
647
648
649@node Denoting stars
650@subsection Denoting stars
651@cindex @acronym{HD}
652@cindex Henry Draper
653@cindex Flamsteed
654@cindex stars
655
656The two star catalogues are the Flamsteed and the Henry Draper
657(@acronym{HD}) numbers.  Flamsteed gave numbers beginning with `1' to
658stars in each constellation.  The Flamsteed catalogue is small and
659doesn't contain the complete southern sky.  In contrast to that, the
660@acronym{HD} catalogue doesn't distinguish between constellations, it
661covers the whole sky, and also contains faint stars.  However the
662@acronym{HD} names are harder to read.
663
664For example Rigel, @math{\beta}@tie{}Ori, can be identified in
665@PPTHREE{} with either
666
667@example
668ORI 19
669@end example
670
671@noindent
672where `@code{ORI}' is Rigel's constellation (Orion) and `@code{19}' the
673Flamsteed number; or with
674
675@example
676HD 34085
677@end example
678
679@noindent
680where `@code{34085}' is Rigel's Henry Draper catalogue number.  Both are
681totally equivalent.  The free program
682@uref{http://www.shatters.net/celestia/,Celestia} is very useful
683for finding Flamsteed or @acronym{HD} numbers.
684
685
686@node Denoting nebulae
687@subsection Denoting nebulae
688@cindex @acronym{NGC}
689@cindex @acronym{IC}
690@cindex Messier
691@cindex nebulae
692
693The two nebula catalogues @acronym{NGC} and @acronym{IC} are
694complementary, i.@s{}e.@: they don't have@footnote{well, shouldn't have}
695any nebulae in common.  For example, the North America Nebula is called
696`@code{NGC 7000}' and the Orion Nebula is '@code{NGC 1976}'.  The
697@acronym{IC} catalogue usually contains fainter objects.
698
699Parallel to that there is the much older and much smaller Messier
700catalogue, abbreviated@tie{}`M'.  For example, the Orion Nebula can also
701be called '@code{M 42}', whereas the North America Nebula isn't included
702in Messier's catalogue.
703
704Pay attention to
705
706@itemize
707@item
708the catalogue abbreviation in all uppercase and
709
710@item
711the space between the catalogue abbreviation and the number.
712@end itemize
713
714
715@node Usage
716@chapter Usage
717
718@menu
719* Invocation::                  Starting PP3.
720* Using pipes::                 If you really need pipes for some
721                                  reason.
722@end menu
723
724
725@node Invocation
726@section Starting PP3
727@cindex Invocation
728@cindex command line syntax
729@cindex syntax, invocation
730
731Invoking @PPTHREE{} is very straightforward.  Since it is a command line
732program you only have to call it somehow and give a so-called input
733script as the parameter, see @ref{Input scripts}.  For example, entering
734
735@example
736pp3 orion.pp3
737@end example
738
739@noindent
740on the command line starts @PPTHREE{} and lets it generate the file
741@file{orion.pdf}, which is a @acronym{PDF} file with a star map of
742Orion.  You can view this @acronym{PDF} with Acrobat Viewer, convert it
743to a bitmap, or you can embed it into a text of yours.
744
745Actually there are three possible output formats.  By default,
746@PPTHREE{} generates a @LaTeX{} file in the current directory.  But most
747people cannot do much with it, therefore certain commands in the input
748script trigger @acronym{EPS} or @acronym{PDF} output, see @ref{Output
749control}.
750
751@PPTHREE{} can't generate bitmaps.  If you need bitmaps you must use an
752appropriate program (e.@s{}g.@: GSView or the
753@uref{http://www.gimp.org,Gimp}) for converting the vector data to
754bitmaps.
755
756
757@node Using pipes
758@section Using pipes
759@cindex pipes
760
761Especially on Unix it is very common to read from standard input and to
762write to standard output.  I don't think that this is sensible for
763@PPTHREE{}, but anyway, I included this facility.  If you give
764`@code{-}' as the only parameter, @PPTHREE{} reads the input script from
765standard input, and if you don't give an output filename in the input
766script (@pxref{Input scripts}), @PPTHREE{} writes to standard output.
767
768
769@node Input scripts
770@chapter Writing input scripts
771@cindex scripts
772@cindex input scripts
773
774Input scripts are the most important part of @PPTHREE{}, at least for
775the user.  They contain some sort of wishlist about the map that you
776want @PPTHREE{} to create.
777
778@menu
779* Minimal example::             The first four PP3 lines.
780* More bells and wistles::      How to make it look nicer.
781* Dimensions and scale::        Set size and magnification of the map.
782* Parameters and commands::     The two parts of an input script.
783* Labels::                      Changing implicitly created labels.
784* Deleting and adding objects::  Remove or insert stars and nebulae.
785* Penalty scheme::              How PP3 avoids overlaps of labels.
786@end menu
787
788
789@node Minimal example
790@section Minimal example input script
791@cindex example input script
792
793The minimal @PPTHREE{} input script is -- well -- the empty file.  Then
794@PPTHREE{}'s default values create a dark blue star map of Orion:
795
796@image{orion,10cm,,Constellation map of Orion}
797
798You can override these defaults step by step.  Let's do so: Write
799
800@example
801# Cygnus, the Swan
802
803filename output swan.tex
804switch pdf_output on
805
806set center_rectascension  19.95
807set center_declination    40.8
808@end example
809
810@noindent
811to the file @file{swan.pp3} and call
812
813@cindex invocation
814
815@example
816pp3 swan.pp3
817@end example
818
819@noindent
820The result of these only four lines of input is a file @file{swan.pdf}
821in the current directory with a star map of the Swan.
822
823@cindex comments
824@kwindex #
825
826The lines of @file{swan.pp3} are not difficult to explain:  The very
827first line is a comment.  Everything that starts with a @code{#} is a
828comment.  You can write descriptive text in them to make the file more
829readable.
830
831@kwindex filename
832@kwindex output
833
834The line
835
836@example
837filename output swan.tex
838@end example
839
840@noindent
841makes @PPTHREE{} write the generated map to the file @file{swan.tex}.
842But such a file is rarely the desired output.  Therefore the next line
843
844@kwindex switch
845@kwindex pdf_output
846
847@example
848switch pdf_output on
849@end example
850
851@cindex @acronym{PDF}
852
853@noindent
854tells @PPTHREE{} that we want to have a @acronym{PDF} file.  So
855@PPTHREE{} does everything necessary for that.  And finally,
856
857@kwindex set
858@kwindex center_rectascension
859@kwindex center_declination
860
861@example
862set center_rectascension  19.95
863set center_declination    40.8
864@end example
865
866@noindent
867denotes the area of the sky that we want to be displayed.  Both values
868indicate the celestial point that we want to have in the centre of the
869map.  In this case, 19.95@dmn{h} rectascension and @math{+40.8^\circ}
870declination which is the centre of the constellation Swan.  @xref{List
871of all constellations}, for a complete list of all constellations, along
872with their coordinates and more.
873
874
875@node More bells and wistles
876@section More bells and wistles
877
878Let's continue with our Swan example of the previous section.
879
880@cindex Milky Way
881@kwindex switch
882@kwindex milky_way
883
884Normally the Milky Way is switched off, because it consumes a lot of
885memory, see @ref{Increase TeX's memory}.  However it looks rather nice,
886so let's switch it on:
887
888@example
889switch milky_way on
890@end example
891
892@cindex colour
893@kwindex color
894
895Maybe you want to use the map in a book that is supposed to be printed
896in black and white.  Then the current colour scheme is disadvantageous.
897The following lines redefine it:
898
899@smallexample
900color nebulae                 0    0    0
901color background              1    1    1
902color grid                    0.5  0.5  0.5
903color ecliptic                0.3  0.3  0.3
904color constellation_lines     0.7  0.7  0.7
905color labels                  0    0    0
906color boundaries              0.8  0.8  0.8
907color highlighted_boundaries  0    0    0
908color milky_way               0.5  0.5  0.5
909@end smallexample
910
911@noindent
912Colours are given as red--green--blue values, for further information
913see @ref{Colours}.  With these redefinitions, all elements on the map
914are printed either in black or in shades of grey.
915
916@cindex spectral class
917@cindex B@minus{}V brightness
918@cindex colour of stars
919@kwindex stars
920@kwindex colored_stars
921
922A special problem are stars.  With
923
924@example
925color stars 0 0 0
926@end example
927
928@noindent
929stars are printed in black colour, one could think.  But this is not
930always true.  By default, stars get their `real' colour according to
931their B@minus{}V brightness.  For example, Saiph in Orion is a little
932bit blue, while Antares in Scorpius is known to be red.  Therefore
933@PPTHREE{} ignores any `@code{color}' directive for stars, unless you
934also say
935
936@example
937switch colored_stars off
938@end example
939
940@cindex constellation, highlighted
941@cindex highlighted constellation
942@kwindex constellation
943
944Last but not least you should change the @emph{highlighted
945constellation}.  By default, it's Orion.  But we want to highlight the
946Swan, so we say
947
948@example
949set constellation CYG
950@end example
951
952@noindent
953because ``Cyg'' is the astronomical abbreviation of the Swan (``Cygnus''
954in Latin).  Highlighting means that its borderline gets another colour.
955
956This is the map that results from all this (I removed the Milky Way from
957this figure in order to keep the @acronym{PDF} manual small):
958
959@image{swan,10cm,,Constellation map of the Swan}
960
961
962@node Dimensions and scale
963@section Dimensions and scale
964@cindex size of the map
965@cindex dimensions of the map
966@cindex width
967@cindex height
968
969When you include a map in a text of yours, usually you can scale the
970graphics to fit your needs.  The exact procedure depends on the program
971you use of course.  Such additional scaling is helpful, but actually it
972should be superfluous since @PPTHREE{} can deliver the map with the
973desired size.
974
975@kwindex box_width
976@kwindex box_height
977@kwindex grad_per_cm
978
979The parameters
980
981@example
982set box_width 10
983set box_height 5
984@end example
985
986@noindent
987set the width of the map to 15@dmn{cm} and the height to 10@dmn{cm}.
988(By the way, all dimensions are given in centimetres in @PPTHREE{}.)
989The only thing that's still missing is the scale of the map.  It is set
990with
991
992@example
993set grad_per_cm 6
994@end example
995
996@cindex map projection
997@cindex projection
998@cindex azimuthal projection
999@cindex equidistant azimuthal projection
1000
1001@noindent
1002which sets it to 6 degrees per centimetre.  With the current projection
1003method@footnote{the equidistant azimuthal projection}, the given scale
1004is only exactly true for the centre of the map.  Towards the rim there
1005is a slight magnification (and distortion).
1006
1007
1008@node Parameters and commands
1009@section Parameters and Commands
1010@cindex parameters
1011@cindex commands
1012@kwindex objects_and_labels
1013
1014Every @PPTHREE{} file can contain @emph{parameters} and
1015@emph{commands}.  So far, we've had parameters only.  Both types of
1016keywords must be neatly separated in the input script.  First come the
1017parameters, then the special keyword
1018
1019@example
1020objects_and_labels
1021@end example
1022
1023@noindent
1024and then the commands.  The purpose of the commands is adding and
1025deleting objects and their labels, to reposition the labels, and to add
1026arbitrary text on the map.  You can also change the contents of
1027automatically generated labels.
1028
1029
1030@node Labels
1031@section Labels
1032
1033My personal experience is that the most difficult part of writing input
1034scripts is to fiddle about with labels.  Although @PPTHREE{} does most
1035of the labelling work on its own, it is not perfect (yet).  Thus you
1036will value the features described in this section.
1037
1038@menu
1039* Changing label texts::        Set another text for a certain label.
1040* Deleting and adding labels::  Delete or add implicitly created labels.
1041* Reposition labels::           Reposition a text label.
1042* Text labels::                 How to put arbitrary text on the map.
1043* Using flexes::                Labels that are curved.
1044* Tic labels::                  Automatically generated tic mark labels.
1045@end menu
1046
1047Please note how the texts themselves must be given: Either they don't
1048contain any spaces or line breaks.  Then you can just enter them.  But
1049if they do contain such white space, you must enclose them with
1050quotes@tie{}@code{"..."}.  For example, you say
1051
1052@example
1053set_label_text HD 128620 Toliman
1054@end example
1055
1056@noindent
1057but
1058
1059@example
1060set_label_text HD 128620 "Rigil Kent"
1061@end example
1062
1063If you (must) use quotes, and only then, you have to enter two symbols
1064in a special way, namely the backslash@tie{}@samp{\} and the
1065quotes@tie{}@samp{"}:
1066
1067@example
1068set_label_text HD 128620 "\\footnotesize Toliman"
1069@end example
1070
1071@noindent
1072prints @samp{Toliman} with small letters, see @ref{LaTeX in labels}.
1073Quotes must be entered as @samp{\"}.
1074
1075
1076@node Changing label texts
1077@subsection Changing label texts
1078@cindex labels
1079@kwindex set_label_text
1080
1081I change the label for Deneb, the alpha star in the Swan.  At the
1082moment, its label is a simple `@math{\alpha}'.  But Deneb has a real
1083name, and with
1084
1085@example
1086set_label_text CYG 50 Deneb
1087@end example
1088
1089@noindent
1090I change the label text to ``Deneb''.  This `@code{CYG 50}' is the
1091astronomical name for Deneb, see @ref{Denoting stars}.
1092
1093You can use that also for changing the label for a nebula:
1094
1095@example
1096set_label_text NGC 7000 "N. America Neb."
1097@end example
1098
1099@noindent
1100As said, please note that you have to enclose the label text in
1101quotation marks if it contains spaces.
1102
1103Now we get (only the changed part printed):
1104
1105@image{swan1,,,Map of North America Nebula and Deneb}
1106
1107@PPTHREE{} takes star names from a file.  @PPTHREE{}'s standard file
1108contains only the astronomical symbols for the stars (Bayer's Greek
1109letters and Flamsteed numbers), so if you want to have real star names,
1110you must use `@code{set_text_label}' as above.  Or you use another star
1111data file with @PPTHREE{}, see @ref{Stars data file}.
1112
1113
1114@node Deleting and adding labels
1115@subsection Deleting and adding labels
1116
1117@PPTHREE{} decides which labels are printed on the map by itself.  But,
1118of course, you can configure this behaviour, and you can delete or add
1119any label.
1120
1121For example, the command
1122
1123@example
1124delete_labels NGC 884  NGC 869  TAU 27 ;
1125@end example
1126
1127@noindent
1128deletes the labels for the nebulae @acronym{NGC}@s{}884 and
1129@acronym{NGC}@s{}869, and for the star 27@s{}Tau from the map.  The
1130nebulae and the star themselves remain on it of course.
1131Correspondingly,
1132
1133@example
1134add_labels CNC 65  CNC 47  CNC 43  CNC 48 ;
1135@end example
1136
1137@noindent
1138adds the currently set labels texts for the stars 65, 47, 43, and
113948@s{}Cnc.  All of them are too faint to get their labels implicitly.
1140
1141But you can also influence labels globally in the parameters section of
1142the input script.  If you don't want to have any labels at all, simply
1143say
1144
1145@example
1146switch labels off
1147@end example
1148
1149@noindent
1150in the parameters section.  Another parameter keyword is
1151
1152@example
1153set faintest_star_with_label_magnitude 2.0
1154@end example
1155
1156@noindent
1157which means that only stars of brightness of at least 2.0@dmn{m} get an
1158implicit (automatic) label.
1159
1160@node Reposition labels
1161@subsection Reposition labels
1162@cindex reposition labels
1163@cindex labels, repositioning
1164@kwindex reposition
1165@kwindex at
1166@kwindex towards
1167
1168If you think that @PPTHREE{} mispositioned a label you can change that
1169with `@code{reposition}':
1170
1171@example
1172reposition M 39  S ;
1173@end example
1174
1175@noindent
1176This puts the label for the nebula M@s{}39 @emph{below} the nebula.
1177`@code{S}'@tie{}means `south'.  The following table shows all possible
1178values, however you know it by and large from the windrose probably:
1179
1180@cindex windrose
1181
1182@table @samp
1183@item E
1184prints the label to the right.
1185
1186@item NE
1187prints the label to the upper right.
1188
1189@item N
1190prints the label to the top.
1191
1192@item NW
1193prints the label to the upper left.
1194
1195@item W
1196prints the label to the left.
1197
1198@item SW
1199prints the label to the lower left.
1200
1201@item S
1202prints the label to the bottom.
1203
1204@item SE
1205prints the label to the lower right.
1206
1207@end table
1208
1209@noindent
1210(@xref{The keyword `towards'}, for a figure visualising these
1211abbreviations.  But be careful since this figure is actually intended
1212for the @samp{towards} keyword.)
1213
1214Using `@code{reposition}' is also necessary if @PPTHREE{} has suppressed
1215a label because it hadn't found a good place for it.
1216`@code{reposition}' forces a label to be printed.
1217
1218
1219@node Text labels
1220@subsection Text labels
1221@cindex text labels
1222@cindex labels
1223
1224Changing existing labels is a nice thing to do, however sometimes you
1225want to add arbitrary text on the map, e.@s{}g.@: `Pleiades' or `Virgo
1226galaxy cluster'.  For all user defined text there is the keyword
1227`@code{text}'.  For example,
1228
1229@example
1230text "Virgo galaxy cluster" at 12.7 10
1231  color 0.0 0.0 0.9333 towards SE ;
1232@end example
1233
1234@noindent
1235This places the text `Virgo galaxy cluster' at the celestial coordinates
123612.7@dmn{h} rectascension and @math{+10^\circ} declination in blue
1237colour.  @xref{Colours}, for how to denote colours in @PPTHREE{}.
1238
1239@menu
1240* The keyword `towards'::       Setting the labels' relative position.
1241@end menu
1242
1243
1244@node The keyword `towards'
1245@subsubheading The keyword `@code{towards}'
1246@kwindex towards
1247@cindex windrose
1248
1249In a text label, after the keyword @samp{towards}, you can say in which
1250direction, seen from the celestial coordinates given after the @samp{at}
1251keyword, the label should be printed.  The following figure illustrates
1252the ten possible values after @samp{towards}:
1253
1254@image{pp3rose,,,Possible values for `reposition' and `towards'}
1255
1256@ifinfo
1257@noindent
1258The `X' marks the spot that lies @emph{exactly} on the celestial
1259coordinates given after the `@code{at}' keyword.  Actually there are two
1260other possible values, namely `@code{W_}' and `@code{E_}' that can be
1261seen only in the printed or HTML version of this manual.  They are like
1262`@code{W}' and `@code{E}' except that the X lies on the text baseline
1263rather than the centre of the vertical edge.
1264@end ifinfo
1265
1266@ifnotinfo
1267@noindent
1268The red point marks the spot that lies @emph{exactly} on the celestial
1269coordinates given after the `@code{at}' keyword.
1270@end ifnotinfo
1271
1272The default value for @samp{towards} is @code{NE}, so if you don't use
1273@samp{towards}, @PPTHREE{} places the text label to the upper right.  In
1274particular, @PPTHREE{} does not perform any algorithm for finding the
1275best position for the label as it does with automatically generated
1276labels.
1277
1278For some nice tricks with text lables and @samp{towards}, see @ref{LaTeX
1279in labels}.
1280
1281
1282@node Using flexes
1283@subsection Using flexes
1284@cindex flex labels
1285
1286But the `@code{text}' keyword can do more.  When you include the
1287keywords `@code{along declination}' the label becomes a @emph{flex}.
1288This is printed along a declination circle as a curved text.  It's
1289especially nice for constellation names.  So let's try it out:
1290
1291@example
1292text "\\bfseries Swan" at 20.05 49.8 along declination towards SW ;
1293@end example
1294
1295@noindent
1296This `@code{\\bfseries}' tells the typesetter to print it in @b{bold
1297face}, see @ref{LaTeX in labels}.  The result is the following:
1298
1299@image{swan2,,,Map of Swan with a flex label}
1300
1301
1302@node Tic labels
1303@subsection Tic mark labels
1304@cindex tic mark labels
1305
1306But `@code{text}' can do even more.  With
1307
1308@example
1309text "$#3$" at 0 20 along declination
1310            tics rectascension 1 towards N ;
1311text "$#5$" at 11 0 along declination
1312            tics declination 10 towards S ;
1313@end example
1314
1315@noindent
1316you create automatic tic mark labels at the @math{+20^\circ} declination
1317circle and the 11@dmn{h} rectascension circle.  @xref{Tic mark labels},
1318for more information about these placeholders like@tie{}@code{#3}.
1319Typically you will embed the placeholders in @code{$...$}, because this
1320tells the underlying @TeX{} typesetting engine to typeset the number as
1321a formula.  This makes it look nicer.
1322
1323
1324@node Deleting and adding objects
1325@section Deleting and adding stars and nebulae
1326@kwindex add
1327@kwindex delete
1328
1329Sometimes you have to remove stars or nebulae from the map, especially
1330because they collide with other objects.  If you've already read how to
1331change labels, this is very straightforward.  You remove sky objects
1332with `@code{delete}' and add them with `@code{add}'.  Both commands take
1333a list of objects that is ended with a semicolon@tie{}@samp{;}:
1334
1335@example
1336delete LEO 63  HD 97605 ;
1337add NGC 6992 ;
1338@end example
1339
1340@noindent
1341The `@code{add}' command is useful mostly for nebulae, because by
1342default, @PPTHREE{} only includes all objects of the Messier catalogue,
1343but only other objects with a minimal brightness, see @ref{Filtering by
1344brightness}.
1345
1346
1347@node Penalty scheme
1348@section Penalty scheme
1349
1350It is a tricky task to place labels on a dotty star map without creating
1351to many overlaps, and especially overlaps with other labels are very
1352annoying.  Therefore @PPTHREE{} tries to avoid that.
1353
1354It does so by using a penalty algorithm: It tests the eight windrose
1355positions around the respective object, and calculates the resulting
1356overlaps for each position.  The overlaps are counted as
1357@emph{penalties}.  The position with the smallest penalty value is
1358chosen.  In very bad cases when the penalties exceed a certain
1359threshold, the label is not printed at all.
1360
1361All of this can be overruled by the user, but normally the standard
1362behaviour is good enough.  So read this section only if you are really
1363keen to know how it works.
1364
1365@menu
1366* Basics about penalties::      How PP3 calculates penalties.
1367* The rim::                     Avoiding objects coming too close to
1368                                  labels.
1369* Overlaps with line objects::  Labels coming close to boundaries and
1370                                  constellation lines.
1371* Penalty threshold::           When automatic labels are suppressed.
1372@end menu
1373
1374
1375@node Basics about penalties
1376@subsection Basics about penalties
1377@cindex penalties
1378
1379@PPTHREE{} calculates overlaps with all objects on the map: stars,
1380nebulae, constellation lines, boundary lines, and -- last but not least
1381-- other labels.  All overlaps are weighted, and their sum is the
1382penalty value.  You can influence the weighting.  By default, it's
1383@samp{1000} for all objects.  But with
1384
1385@example
1386penalties stars 2000
1387@end example
1388
1389@noindent
1390you double the significance of stars.  Thus you make overlaps of labels
1391with stars less probable.  In contrast,
1392
1393@example
1394penalties boundaries 0
1395@end example
1396
1397@noindent
1398tells @PPTHREE{} that printing a label on a boundary line isn't bad at
1399all.@footnote{Avoid negative values, although @PPTHREE{} doesn't reject
1400them.  They wouldn't make sense anyway.}
1401
1402
1403@node The rim
1404@subsection The rim
1405@cindex rim
1406@cindex core
1407@kwindex rim
1408
1409Each label has a @emph{core area}, which is the text area itself, and a
1410@emph{rim}, which is an area around the text area.  Both are rectangles,
1411separated by a @emph{skip} that is the same as the one that separates
1412labels and their respective celestial object, see @ref{Other layout
1413parameters}.
1414
1415@image{betelg,,,Diagram of core and rim of a label}
1416
1417@PPTHREE{} takes both rim and core into account.  The relative
1418significance of the rim can be set with e.@s{}g.@:
1419
1420@example
1421penalties rim 2000
1422@end example
1423
1424@noindent
1425which doubles the default value of @samp{1000}.  With
1426
1427@example
1428penalties rim 0
1429@end example
1430
1431@noindent
1432the rim loses its effect completely.  Notice that @PPTHREE{} adds rim
1433penalties also for the whole core area, so that the core is always more
1434significant than the rim, no matter how you set the penalty values.
1435
1436What's the point in the rim?  The core avoids overlaps, but the rim is
1437supposed to make @emph{approximations} of labels with other things on
1438the map less probable.
1439
1440You may have noticed that the rim overlaps with the object (star or
1441nebula) itself.  Usually this only adds some sort of bias to the penalty
1442values of the diagonal positions, but this direct contact is
1443particularly useful for double stars: There both components get
1444``their'' label on ``their'' side due to the small rim overlaps with the
1445respectively other component.
1446
1447
1448@node Overlaps with line objects
1449@subsection Overlaps with line objects
1450
1451``Line objects'' means constellation lines and boundary lines.
1452@PPTHREE{} treats both of them in a special way: When they collide with
1453the @emph{rim} of a label, it's less bad than for non-line objects.  The
1454reason is that lines are so different from labels visually, that it's
1455not fatal if they are rather close together.
1456
1457The two new penalties that are used for the rim are
1458@samp{constellation_lines_rim} and @samp{boundaries_rim}.  Their default
1459value is @samp{1000} as usual.  For example, with
1460
1461@example
1462penalties boundaries_rim 0
1463@end example
1464
1465@noindent
1466you tell @PPTHREE{} that a label directly next to a boundary line is
1467totally okay for you.
1468
1469
1470@node Penalty threshold
1471@subsection Penalty threshold
1472
1473Sometimes a certain region of the map is so much crowded with stars,
1474nebulae, labels, and more, that there simply is no space left for yet
1475another label.  In this case the penalty value reaches a very high
1476number.  If it exceeds a given threshold, @PPTHREE{} suppresses that
1477label.  You can still override this, see @ref{Reposition labels}.
1478
1479You can set this threshold with
1480
1481@example
1482penalties threshold 3000
1483@end example
1484
1485@noindent
1486Again, @samp{1000} is the default value.
1487
1488
1489@node Keywords reference
1490@chapter Keywords reference
1491@cindex keywords
1492
1493On @uref{http://sourceforge.net/projects/pp3,@PPTHREE{}'s project page}
1494you can download a neat reference card.  If you fold it twice it is a
1495handy zigzag.
1496
1497@menu
1498* General structure::           The outline of a PP3 input script.
1499* Parameters::                  First part:  parameters.
1500* Commands::                    Second part: stars, nebulae and labels.
1501@end menu
1502
1503
1504@node General structure
1505@section General structure
1506@cindex example input script
1507
1508The outline of a @PPTHREE{} input script is:
1509
1510@example
1511# Some introductory comments,
1512# i.e. what the file is about to do.
1513
1514@var{Section I: Parameters: Output format and global style.}
1515
1516objects_and_labels
1517
1518@var{Section II: Commands: Delete/add/modify objects and/or labels}
1519@end example
1520
1521
1522@node Parameters
1523@section Setting Parameters
1524@cindex parameters
1525
1526All keyword here are @emph{parameters}.  This means that they are
1527allowed only in the @emph{first} part of an input script, i.@s{}e.@:
1528before the @code{objects_and_labels} command (if there is one).
1529
1530@menu
1531* Essential parameters::        What probably all your input scripts
1532                                  will need.
1533* Switching things on or off::  How to remove e.g. all nebulae easily.
1534* Filtering by brightness::     Removing too faint objects.
1535* Colour and line style and other layout::  Miscellaneous layout.
1536* Implementing a global style::  Global PP3 file and LaTeX preamble.
1537* Penalties::                   Finetune the overlap avoiding
1538                                  algorithm.
1539* Filenames::                   Setting filenames for database files.
1540@end menu
1541
1542
1543@node Essential parameters
1544@subsection Essential parameters
1545
1546@menu
1547* View control::                Map view, scale, and size.
1548* Output control::              Output filename and file format.
1549* Highlighted constellation::   Highlight one constellation.
1550@end menu
1551
1552
1553@node View control
1554@subsubsection Map view, scale, and size
1555@kwindex set
1556
1557@deffn Parameter {set center_rectascension} rectascension
1558@kwindex center_rectascension
1559@deffnx Parameter {set center_declination} declination
1560@kwindex center_declination
1561Set the rectascension and declination of the centre of the map to
1562@var{rectascension} (in hours) and @var{declination} (in degrees)
1563respectively.
1564
1565Defaults: 5.8 (@var{rectascension}), 0.0 (@var{declination})
1566@end deffn
1567
1568
1569@deffn Parameter {set box_width} width
1570@kwindex box_width
1571@deffnx Parameter {set box_height} height
1572@kwindex box_height
1573Set the width and height of the resulting map to @var{width} and
1574@var{height} (in centimetres) respectively.
1575
1576Defaults: 15 (@var{width}), 15 (@var{height})
1577@end deffn
1578
1579
1580@deffn Parameter {set grad_per_cm} scale
1581@kwindex grad_per_cm
1582Set the scale of the resulting map to @var{scale} (in degrees per
1583centimetre).
1584
1585Default: 4.0
1586@end deffn
1587
1588
1589@node Output control
1590@subsubsection Setting what file should be created
1591@kwindex switch
1592@kwindex filename
1593
1594@deffn Parameter {filename output} filename
1595@kwindex output
1596The resulting map will be written to the file @var{filename} in @LaTeX{}
1597format.  It must have the file extension @file{.tex}.  If @var{filename}
1598is empty the map will be written to standard out.
1599
1600Default: @code{""} (empty)
1601@end deffn
1602
1603
1604@deffn Parameter {switch eps_output} on/off
1605@kwindex eps_output
1606If on, @PPTHREE{} creates a @acronym{PDF} file.  (Additionally to the
1607@LaTeX{} and @acronym{EPS} files that you then can ignore.)
1608
1609Default: off
1610@end deffn
1611
1612
1613@deffn Parameter {switch pdf_output} on/off
1614@kwindex pdf_output
1615If on, @PPTHREE{} creates an @acronym{EPS} file.  (Additionally to the
1616@LaTeX{} file that you then can ignore.)
1617
1618Default: off
1619@end deffn
1620
1621
1622@node Highlighted constellation
1623@subsubsection The highlighted constellation
1624@kwindex set
1625
1626@deffn Parameter {set constellation} abbreviation
1627@kwindex constellation
1628Highlight the constellation that is given by @var{abbreviation} (given
1629with all-uppercase letters).  If you don't want to hightlight anything,
1630set it to @code{""} or to an invalid abbreviation.
1631
1632At the moment, highlighting means that the boundaries of the respective
1633constellation get another colour, see @ref{Colours}.
1634
1635Default: @code{ORI}
1636@end deffn
1637
1638
1639@node Switching things on or off
1640@subsection Switching things on or off
1641@kwindex switch
1642
1643@deffn Parameter {switch milky_way} on/off
1644@kwindex milky_way
1645@deffnx Parameter {switch nebulae} on/off
1646@kwindex nebulae
1647@deffnx Parameter {switch grid} on/off
1648@kwindex grid
1649@deffnx Parameter {switch ecliptic} on/off
1650@kwindex ecliptic
1651@deffnx Parameter {switch boundaries} on/off
1652@kwindex boundaries
1653@deffnx Parameter {switch constellation_lines} on/off
1654@kwindex constellation_lines
1655@deffnx Parameter {switch labels} on/off
1656@kwindex labels
1657Print or don't print the respective (class of) object(s) on the map.
1658`Grid' means the coordinate grid, `boundaries' are the borderlines of
1659the constellations, and `constellation lines' denote the lines between
1660the brightest stars that are supposed to help to see the shape of a
1661constellation.
1662
1663Defaults: off (Milky Way), on (all others)
1664@end deffn
1665
1666
1667@deffn Parameter {switch colored_stars} on/off
1668@kwindex colored_stars
1669If switched on, all stars get a colour that represents their real colour
1670according to their spectral class.  This may be unsuitable on a bright
1671background since most stars are pretty white.
1672
1673If switched off, all stars get the colour given by `@code{color stars}',
1674see @ref{Colours}.
1675
1676Default: on
1677@end deffn
1678
1679
1680@node Filtering by brightness
1681@subsection Filtering stars and nebulae by their brightness
1682@kwindex set
1683
1684@deffn Parameter {set faintest_cluster_magnitude} magnitude
1685@kwindex faintest_cluster_magnitude
1686Don't print open star clusters that are fainter than @var{magnitude}.
1687
1688Default: 4.0
1689@end deffn
1690
1691
1692@deffn Parameter {set faintest_diffuse_nebula_magnitude} magnitude
1693@kwindex faintest_diffuse_nebula_magnitude
1694Don't print nebulae that are fainter than @var{magnitude}.  In this
1695case, `nebulae' is meant in the narrower sense, i.@s{}e.@: no stellar
1696clusters.
1697
1698Default: 8.0
1699@end deffn
1700
1701
1702@deffn Parameter {set faintest_star_magnitude} magnitude
1703@kwindex faintest_star_magnitude
1704Don't print stars that are fainter than @var{magnitude}.
1705
1706Default: 7.0
1707@end deffn
1708
1709
1710@deffn Parameter {set faintest_star_with_label_magnitude} magnitude
1711@kwindex faintest_star_with_label_magnitude
1712Only stars that have a brightness of at least @var{magnitude} get an
1713automatically generated label.
1714
1715Default: 3.7
1716@end deffn
1717
1718
1719@deffn Parameter {set faintest_star_disk_magnitude} magnitude
1720@kwindex faintest_star_disk_magnitude
1721Only stars that have a brightness of at least @var{magnitude} will be
1722printed as more than just dots.
1723
1724Default: 4.5
1725@end deffn
1726
1727
1728@deffn Parameter {set minimal_star_radius} radius
1729@kwindex minimal_star_radius
1730Set the @var{radius} (in centimetres) of the dots that are used for the
1731faintest stars.
1732
1733Default: 0.015
1734@end deffn
1735
1736
1737@node Colour and line style and other layout
1738@subsection Colour, line style, and other layout
1739
1740@menu
1741* Colours::                     How to change colour.
1742* Line styles and widths::      How to change lines appearance.
1743* Other layout parameters::     Miscellaneous stuff.
1744@end menu
1745
1746
1747@node Colours
1748@subsubsection Colours
1749@cindex colour
1750@kwindex color
1751
1752In @PPTHREE{}, colours are given by their red--green--blue values (also
1753called the @acronym{RGB} colour scheme).  Every value is between 0
1754and@tie{}1.  For example, `@code{1 0 0}' is red, `@code{0 0 1}' is blue,
1755`@code{0 0 0}' is black and `@code{1 1 1}' is white.
1756
1757For shades of grey all three values must be the same.  So a medium grey
1758is `@code{0.5 0.5 0.5}'.  For further examples have a look at the
1759following default values.
1760
1761@deffn Parameter {color background} red green blue
1762@kwindex background
1763Set the background colour of the map to the given colour.
1764
1765Default: 0 @ 0 @ 0.4 @ (dark blue)
1766@end deffn
1767
1768
1769@deffn Parameter {color grid} red green blue
1770@kwindex grid
1771Set the coordinate grid colour to the given colour.
1772
1773Default: 0 @ 0.298 @ 0.447 @ (dark blue-grey)
1774@end deffn
1775
1776
1777@deffn Parameter {color ecliptic} red green blue
1778@kwindex ecliptic
1779Set the ecliptic line colour to the given colour.
1780
1781Default: 1 @ 0 @ 0 @ (red)
1782@end deffn
1783
1784
1785@deffn Parameter {color boundaries} red green blue
1786@kwindex boundaries
1787Set the ordinary constellation boundaries colour to the given colour.
1788
1789Default: 0.5 @ 0.5 @ 0 @ (dark yellow)
1790@end deffn
1791
1792
1793@deffn Parameter {color highlighted_boundaries} red green blue
1794@kwindex highlighted_boundaries
1795Set the highlighted constellation boundaries colour to the given colour.
1796See @ref{Highlighted constellation}.
1797
1798Default: 1 @ 1 @ 0 @ (yellow)
1799@end deffn
1800
1801
1802@deffn Parameter {color constellation_lines} red green blue
1803@kwindex constellation_lines
1804Set the constellation lines colour to the given colour.
1805
1806Default: 0 @ 1 @ 0 @ (green)
1807@end deffn
1808
1809
1810@deffn Parameter {color milky_way} red green blue
1811@kwindex milky_way
1812The Milky Way is printed in shades of different colour, representing its
1813brightness.  The darkest areas of the Milky Way get the background
1814colour, and the brightest the colour that you give here.
1815
1816The Milky way must be switched on of course in order to savour it, which
1817is not the case by default, see @ref{Switching things on or off}.
1818
1819Default: 0 @ 0 @ 1 @ (blue)
1820@end deffn
1821
1822
1823@deffn Parameter {color nebulae} red green blue
1824@kwindex nebulae
1825Set the colour of the nebulae circles to the given colour.
1826
1827Default: 1 @ 1 @ 1 @ (white)
1828@end deffn
1829
1830
1831@deffn Parameter {color stars} red green blue
1832@kwindex stars
1833Set the colour of all stars to the given colour.  Please note that this
1834only has effect if the switch `@code{colored_stars}' is off, see
1835@ref{Switching things on or off}.
1836
1837Default: 1 @ 1 @ 1 @ (white)
1838@end deffn
1839
1840
1841@deffn Parameter {color labels} red green blue
1842@kwindex labels
1843Set the colour of automatically generated labels to the given colour.
1844
1845Default: 0 @ 1 @ 1 @ (cyan)
1846@end deffn
1847
1848
1849@deffn Parameter {color text_labels} red green blue
1850@kwindex text_labels
1851Set the colour of user defined labels to the given colour.
1852
1853Default: 1 @ 1 @ 0 @ (yellow)
1854@end deffn
1855
1856
1857@node Line styles and widths
1858@subsubsection Line styles and widths
1859@kwindex line_style
1860
1861@deffn Parameter {line_style grid} style
1862@kwindex grid
1863@deffnx Parameter {line_style ecliptic} style
1864@kwindex ecliptic
1865@deffnx Parameter {line_style boundaries} style
1866@kwindex boundaries
1867@deffnx Parameter {line_style highlighted_boundaries} style
1868@kwindex highlighted_boundaries
1869@deffnx Parameter {line_style nebulae} style
1870@kwindex nebulae
1871@deffnx Parameter {line_style constellation_lines} style
1872@kwindex constellation_lines
1873Set the line style of the respective object to @var{style}.  Possible
1874values are @code{none}, @code{solid}, @code{dashed}, and @code{dotted}.
1875
1876Defaults: solid (grid, nebulae, constellation lines), dashed (ecliptic,
1877boundaries)
1878@end deffn
1879
1880@kwindex line_width
1881
1882@deffn Parameter {line_width grid} width
1883@kwindex grid
1884@deffnx Parameter {line_width ecliptic} width
1885@kwindex ecliptic
1886@deffnx Parameter {line_width nebulae} width
1887@kwindex nebulae
1888@deffnx Parameter {line_width boundaries} width
1889@kwindex boundaries
1890@deffnx Parameter {line_width highlighted_boundaries} width
1891@kwindex highlighted_boundaries
1892@deffnx Parameter {line_width constellation_lines} width
1893@kwindex constellation_lines
1894Set the line width of the respective object to @var{width} (in
1895centimetres).
1896
1897Defaults: 0.025 (grid), 0.018 (ecliptic, nebulae), 0.035 (boundaries,
1898constellation lines)
1899@end deffn
1900
1901
1902@node Other layout parameters
1903@subsubsection Other layout parameters
1904@kwindex set
1905
1906@deffn Parameter {set shortest_constellation_line} length
1907@kwindex shortest_constellation_line
1908Set the length of the shortest constellation line that is printed to
1909@var{length} (in centimetres).  All constellation lines shorter than
1910@var{length} are suppressed.
1911
1912Default: 0.1
1913@end deffn
1914
1915
1916@deffn Parameter {set label_skip} length
1917@kwindex label_skip
1918Set the distance between the outer rim of the celestial object and its
1919label to @var{length} (in centimetres).
1920
1921Default: 0.06
1922@end deffn
1923
1924
1925@deffn Parameter {set minimal_nebula_radius} radius
1926@kwindex minimal_nebula_radius
1927All nebulae that would be smaller than @var{radius} centimetres are
1928printed with a radius of exactly @var{radius}@dmn{cm}.
1929
1930Default: 0.1
1931@end deffn
1932
1933
1934@deffn Parameter {set star_scaling} factor
1935@kwindex star_scaling
1936Make all star circles @var{factor} times bigger than normal.
1937
1938Default: 1
1939@end deffn
1940
1941
1942@deffn Parameter {set fontsize} size
1943@kwindex fontsize
1944Set the default font size to @var{size}@dmn{pt}.  @var{size} may be 10,
194511, or@tie{}12.
1946
1947Default: 10
1948@end deffn
1949
1950
1951@node Implementing a global style
1952@subsection Implementing a global style
1953@kwindex filename
1954
1955@deffn Parameter {filename include} filename
1956@kwindex include
1957If non-empty, the file @var{filename} is interpreted as a @PPTHREE{}
1958input script and read before the keywords in the current script are
1959interpreted.  This enables you to enforce global style parameters and
1960other commands for all maps in a set of maps.  The included script must
1961not include yet another file.
1962
1963Please note that @PPTHREE{} looks for the included file in the current
1964directory, and not in the directory where the main input script is.
1965
1966Default: @code{""} (empty)
1967@end deffn
1968
1969
1970@deffn Parameter {filename latex_preamble} filename
1971@kwindex latex_preamble
1972If non-empty, the contents of the file @var{filename} is included at an
1973appropriate position in the resulting @LaTeX{} file.  This enables you
1974to use arbitrary @LaTeX{} macros to customise the map, see @ref{LaTeX
1975preamble}.
1976
1977Default: @code{""} (empty)
1978@end deffn
1979
1980
1981@node Penalties
1982@subsection Penalties
1983@kwindex penalties
1984
1985
1986@deffn Parameter {penalties stars} penalties
1987@kwindex stars
1988@deffnx Parameter {penalties labels} penalties
1989@kwindex labels
1990@deffnx Parameter {penalties nebulae} penalties
1991@kwindex nebulae
1992@deffnx Parameter {penalties boundaries} penalties
1993@kwindex boundaries
1994@deffnx Parameter {penalties constellation_lines} penalties
1995@kwindex constellation_lines
1996Set the penalties for an overlap of a label with the respective object
1997to @var{penalties}.
1998
1999Defaults: 1000 (all)
2000@end deffn
2001
2002
2003@deffn Parameter {penalties rim} penalties
2004@kwindex rim
2005Set the significance of an overlap with the label's rim relatively to
2006the label's core to @var{penalties}.
2007
2008Note that the rim can never become more significant than the core,
2009because the rim penalties add to the core penalties while calculating
2010the core.
2011
2012Default: 1000
2013@end deffn
2014
2015
2016@deffn Parameter {penalties boundaries_rim} penalties
2017@kwindex boundaries_rim
2018@deffnx Parameter {penalties constellation_lines_rim} penalties
2019@kwindex constellation_lines_rim
2020Set the penalties for an overlap of the label's rim with the respective
2021object to @var{penalties}.
2022
2023These two objects get their own rim penalties because approximation of a
2024label with a line object is not so bad usually.
2025
2026Defaults: 1000 (all)
2027@end deffn
2028
2029
2030@deffn Parameter {penalties threshold} penalties
2031@kwindex threshold
2032If the penalties for a label exceed @var{penalties}, the label is
2033suppressed.
2034
2035Default: 1000
2036@end deffn
2037
2038
2039@node Filenames
2040@subsection Filenames
2041@kwindex filename
2042
2043
2044@deffn Parameter {filename stars} filename
2045@kwindex stars
2046@deffnx Parameter {filename nebulae} filename
2047@kwindex nebulae
2048@deffnx Parameter {filename label_dimensions} filename
2049@kwindex label_dimensions
2050@deffnx Parameter {filename constellation_lines} filename
2051@kwindex constellation_lines
2052@deffnx Parameter {filename boundaries} filename
2053@kwindex boundaries
2054@deffnx Parameter {filename milky_way} filename
2055@kwindex milky_way
2056This lets @PPTHREE{} look for the respective data in the given file.
2057The filenames must be full paths from the current directory.
2058
2059Defaults: @file{stars.dat} (stars), @file{nebulae.dat} (nebulae),
2060@file{labeldims.dat} (label dimensions), @file{lines.dat} (constellation
2061lines), @file{boundaries.dat} (boundaries), @file{milkway.dat} (Milky
2062Way)
2063@end deffn
2064
2065
2066@node Commands
2067@section Setting or deleting celestial objects and their labels
2068
2069All keyword here are @emph{commands}.
2070
2071@deffn Command objects_and_labels
2072@kwindex objects_and_labels
2073This keyword splits the input script in two parts.  The first part must
2074contain @emph{parameters} only, whereas the second contains
2075@emph{commands} only.
2076
2077This keyword must occur either once or never in a @PPTHREE{} input
2078script.  If never, the whole script consists of parameters.
2079@end deffn
2080
2081@menu
2082* Changing sky objects::        Adding and deleting stars and nebulae.
2083* Changing labels::             Add, delete, or reposition labels, or
2084                                  change their text.
2085* Arbitrary text::              How to place arbitrary text on the map.
2086@end menu
2087
2088
2089@node Changing sky objects
2090@subsection Adding and deleting stars and nebulae
2091
2092@deffn Command add objects @dots{} @code{;}
2093@kwindex add
2094Add the @var{objects} to the map, even if @PPTHREE{}'s implicit
2095behaviour would have excluded them.  This is sensible for nebulae
2096mostly.
2097@end deffn
2098
2099
2100@deffn Command delete objects @dots{} @code{;}
2101@kwindex delete
2102@end deffn
2103
2104
2105@node Changing labels
2106@subsection How to add, delete, and reposition labels
2107
2108@deffn Command add_labels objects @dots{} @code{;}
2109@kwindex add_labels
2110@end deffn
2111
2112
2113@deffn Command delete_labels objects @dots{} @code{;}
2114@kwindex delete_labels
2115@end deffn
2116
2117
2118@deffn Command reposition object @code{towards} direction @code{;}
2119@kwindex reposition
2120@kwindex towards
2121@end deffn
2122
2123
2124@deffn Command set_label_text object @code{"}{label-text}@code{"}
2125@kwindex set_label_text
2126@end deffn
2127
2128
2129@node Arbitrary text
2130@subsection How to place text on the map
2131
2132@deffn Command text {label-text} @code{at} rectascension declination [@code{color} red green blue] [@code{towards} direction] @code{;}
2133@kwindex text
2134@kwindex at
2135@kwindex color
2136@kwindex towards
2137@end deffn
2138
2139All user defines texts on the map are generated with the keyword
2140`@code{text}'.  However there are two sub-variants, namely @emph{flexes}
2141and @emph{tic mark labels}.  Note that they can have the @code{color}
2142and @code{towards} keywords as well.
2143
2144@menu
2145* Flexes::                      Labels on a declination circle.
2146* Tic mark labels::             Labels for the coordinate grid.
2147@end menu
2148
2149
2150@node Flexes
2151@subsubsection Flexes
2152@cindex flex labels
2153
2154@deffn Command text {label-text} @code{at} rectascension declination @code{along declination} @code{;}
2155Create a flex label at the given coordinates.  A flex label follows the
2156respective declination circle.
2157@end deffn
2158
2159@noindent
2160For further options see @ref{Arbitrary text}.
2161
2162
2163@node Tic mark labels
2164@subsubsection Tic mark labels
2165@cindex tic mark labels
2166
2167@deffn Command text {label-text} @code{at} rectascension declination @code{tics} (@code{rectascension} | @code{declination}) step @code{;}
2168@end deffn
2169
2170@noindent
2171With the keyword @code{rectascension}, one rectascension circle gets tic
2172marks, analogously with @code{declination}.  The celestial position
2173after `@code{at}' denotes the starting point of the labelling, and
2174@var{step} is the step skip (in hours or degrees respectively) for the
2175subsequent tic mark labels.
2176
2177The label should contain one of the following special expressions:
2178
2179@table @code
2180@item #1
2181Rectascension in hours.
2182
2183@item #2
2184Declination in degrees.
2185
2186@item #3
2187Rectascension in integer hours (truncated, not rounded).
2188
2189@item #4
2190Rectascension fraction of hour in minutes (truncated, not rounded).
2191
2192@item #5
2193Declination in rounded integer degrees.
2194
2195@end table
2196
2197For further options see @ref{Arbitrary text}.  Tic mark labels can also
2198be flexes, see @ref{Flexes}.
2199
2200
2201@node PP3 and LaTeX
2202@chapter PP3 and @LaTeX{}
2203@cindex @LaTeX{}
2204
2205We're entering now the phase of sophistication.  Here you learn how to
2206customise the graphical appearance of all text on your sky map almost
2207arbitrarily.  You also learn how to achieve special text effects using
2208the @LaTeX{} language.
2209
2210I can't explain @LaTeX{} itself though.  So I must assume that you've
2211been taught the basics elsewhere.  On the other hand, the @LaTeX{}
2212snippets that I will give in this chapter may be enough for many
2213purposes.
2214
2215It is @emph{not} necessary to use the features described here, so it's
2216still true that you needn't know about @LaTeX{} in order to use
2217@PPTHREE{}.  However if you want to have full control, @LaTeX{}
2218competence is unavoidable.
2219
2220@menu
2221* LaTeX in labels::             Using LaTeX in labels.
2222* LaTeX preamble::              Total style freedom with LaTeX.
2223* LaTeX hooks::                 Changing label style globally.
2224@end menu
2225
2226
2227@node LaTeX in labels
2228@section Using @LaTeX{} in labels
2229@cindex PSTricks
2230@kwindex text
2231@cindex labels with @LaTeX{}
2232
2233You can use all @LaTeX{} macros in @PPTHREE{} labels that are allowed in
2234horizontal boxes (like @samp{\mbox@{...@}}).  Additionally, you can use
2235many commands from the @uref{http://www.pstricks.de/docs.phtml,PSTricks
2236package}.
2237
2238The most important pitfall is the backslash@tie{}@samp{\}, because when
2239using quotes as string delimiters, you have to write is as `@code{\\}'.
2240
2241@cindex \small (@LaTeX{})
2242@cindex \hskip (@LaTeX{})
2243@cindex \psdots (PSTricks)
2244@cindex dotstyle (PSTricks)
2245@cindex dotangle (PSTricks)
2246@kwindex towards
2247
2248Let's have a look at a more complex example:
2249
2250@example
2251text "\\small Wolf 359\\hskip0.3em
2252      \\psdots[dotstyle=+,dotangle=45](0,0)"
2253     at 10.902 7.32 color 0.3 0.3 0.9333 towards W_ ;
2254@end example
2255
2256@noindent
2257This prints an @xmarksthespot{} at the position of the star
2258Wolf@tie{}359 and prints the label `Wolf@tie{}359' at the top left next
2259to it:
2260
2261@image{leo1,,,Constellation map Wolf 359 in Leo}
2262
2263@noindent
2264The row of @LaTeX{} macros consists of the following elements:
2265
2266@table @code
2267@item \small
2268This prints the whole label in a small typeface.  Please note that such
2269commands only apply to the current label, since the label will be
2270typeset within a box.  In effect, the next label will be big again,
2271unless you say `@code{\small}' there, too.
2272
2273@item \hskip0.3em
2274This adds a horizontal skip at its position.  Its width is 0.3@dmn{em},
2275where `em' is the width of the letter@tie{}`M'@.  In this case, it
2276creates a little bit of space between the `Wolf@tie{}359' and
2277the@tie{}@xmarksthespot{}.
2278
2279@item \psdots[dotstyle=+,dotangle=45](0,0)
2280This is a PSTricks command.  Normally it prints a dot at the current
2281position on the text baseline.  However the `@code{dotstyle=+}' option
2282makes it a@tie{}`@math{+}', and the `@code{dotangle=45}' option turns it
2283by 45@tie{}degree, which makes it an@tie{}@xmarksthespot{} effectively.
2284
2285The clever bit is the fact that this macro is the very last one in the
2286row.  Since it says `@code{towards W_}' (towards left, on baseline) in
2287the @PPTHREE{} command, this means that the@tie{}@xmarksthespot{} lies
2288@emph{exactly} on the celestial coordinates given after the `@code{at}'
2289option.
2290@end table
2291
2292
2293@node LaTeX preamble
2294@section @LaTeX{} preamble
2295@cindex @LaTeX{} preamble
2296@cindex preamble, @LaTeX{}
2297
2298Providing a @LaTeX{} preamble is the most elegant, mighty, but also --
2299if you know @LaTeX{} -- the easiest way to adjust the map layout
2300according to your taste and needs.  There is a default preamble that
2301defines the standard map layout.  This you can override in a user
2302preamble as much as you want.
2303
2304@menu
2305* Default preamble::            Hooks and fonts if you don't change
2306                                  anything.
2307* User preamble::               Applying your own hooks, fonts, and
2308                                  other style.
2309@end menu
2310
2311
2312@node Default preamble
2313@subsection Default preamble
2314@cindex @LaTeX{} preamble, default
2315@cindex preamble, @LaTeX{}, default
2316
2317By default, the @LaTeX{} document that @PPTHREE{} creates begins with
2318
2319@smallexample
2320@r{01 @ @ }\documentclass[10pt]@{article@}
2321@r{02 @ @ }
2322@r{03 @ @ }\nofiles\usepackage[dvips]@{color@}
2323@r{04 @ @ }\usepackage@{pstricks,pst-text@}
2324@r{05 @ @ }\newcommand*@{\DP@}@{.@}
2325@r{06 @ @ }\newcommand*@{\TicMark@}[1]@{#1@}
2326@r{07 @ @ }\newcommand*@{\Label@}[1]@{#1@}
2327@r{08 @ @ }\newcommand*@{\TextLabel@}[1]@{#1@}
2328@r{09 @ @ }\newcommand*@{\FlexLabel@}[1]@{#1@}
2329@r{10 @ @ }\newcommand*@{\Starname@}[1]@{#1@}
2330@r{11 @ @ }\newcommand*@{\Messier@}[1]@{M\,#1@}
2331@r{12 @ @ }\newcommand*@{\NGC@}[1]@{NGC\,#1@}
2332@r{13 @ @ }\newcommand*@{\IC@}[1]@{IC\,#1@}
2333@r{14 @ @ }
2334@r{15 @ @ }\usepackage@{mathptmx@}
2335@r{16 @ @ }\usepackage@{helvet@}
2336@r{17 @ @ }\AtBeginDocument@{\sffamily@}
2337@r{18 @ @ }
2338@r{19 @ @ }@emph{[optional input of user provided file]}
2339@end smallexample
2340
2341@emph{The above is not provided by you}, it is the @LaTeX{} code that
2342@PPTHREE{} generates every time.  If you don't look at its @LaTeX{}
2343output file, you never see it.  But it may be helpful to know what
2344happens here, so let's skim through it line by line:
2345
2346@table @asis
2347@item Line 1
2348The @samp{10pt} in the first line defines the standard font size in
2349points.  You can change that with the input script parameter
2350
2351@example
2352set fontsize 12
2353@end example
2354
2355@noindent
2356which changes it to 12@dmn{pt}.  Possible values are @samp{10},
2357@samp{11}, and @samp{12}.
2358
2359@item Lines 5--13
2360All the so-called hooks of @PPTHREE{}, see @ref{LaTeX hooks}.
2361
2362@item Lines 15--17
2363They set the standard font for @PPTHREE{}'s maps: The Helvetica for all
2364the Latin letters, and the Symbol for all the Greek ones.
2365
2366@item Line 19
2367Here your own preamble is included, if you have provided one.
2368@end table
2369
2370
2371@node User preamble
2372@subsection User preamble
2373@cindex @LaTeX{} preamble
2374@cindex preamble, @LaTeX{}
2375@cindex preamble, user provided
2376@cindex user preamble
2377
2378You tell @PPTHREE{} where your own preamble is with the filename
2379parameter `@code{latex_preamble}' in the input script, for example:
2380
2381@example
2382filename latex_preamble mypreamble.tex
2383@end example
2384
2385@noindent
2386The file @file{mypreamble.tex} contains your @LaTeX{} preamble macros
2387and must reside in the current directory, or in another directory where
2388@TeX{} looks for its files.
2389
2390The following is the contents of the file @file{wiki.tex} of the
2391@PPTHREE{} distribution.  It is the original user @LaTeX{} preamble that
2392was used for the Wikipedia Project, see @ref{Successful use of PP3}.
2393
2394@smallexample
2395@r{01 @ @ }\usepackage@{amsmath@}
2396@r{02 @ @ }\usepackage[T1]@{fontenc@}
2397@r{03 @ @ }\IfFileExists@{eulervm.sty@}@{\usepackage@{eulervm@}@}@{@}
2398@r{04 @ @ }\usepackage@{relsize@}
2399@r{05 @ @ }\IfFileExists@{t1pmy.fd@}@{
2400@r{06 @ @ }  \renewcommand*@{\sfdefault@}@{pmy@}
2401@r{07 @ @ }@}@{
2402@r{08 @ @ }  \renewcommand*@{\sfdefault@}@{phv@}
2403@r{09 @ @ }@}
2404@r{10 @ @ }\renewcommand@{\Messier@}[1]@{\footnotesize@{\scriptsize M@}\,#1@}
2405@r{11 @ @ }\renewcommand@{\NGC@}[1]@{\footnotesize@{\scriptsize NGC@}\,#1@}
2406@r{12 @ @ }\renewcommand@{\IC@}[1]@{\footnotesize@{\scriptsize IC@}\,#1@}
2407@r{13 @ @ }\renewcommand@{\FlexLabel@}[1]@{@{\bfseries #1@}@}
2408@r{14 @ @ }\renewcommand@{\TicMark@}[1]@{@{\mdseries\scriptsize\mathversion@{normal@} #1@}@}
2409@r{15 @ @ }\AtBeginDocument@{\sffamily\boldmath@}
2410@end smallexample
2411
2412@noindent
2413And this is what it does:
2414
2415@table @asis
2416@item Line 1
2417includes the AMSMath package which provides additional macros that can
2418be useful in text labels.  You can include almost arbitrary @LaTeX{}
2419packages.
2420
2421@item Line 2
2422activates the so-called T1 font encoding.  It's not important to know
2423what this means, but it is recommended and doesn't do any harm.
2424
2425@item Line 3
2426activates nicer Greek letters.  Well, your taste may be different.  This
2427@samp{\IfFileExists} thing tests whether the package is available on the
2428current computer.  The package is included only if it exists.
2429
2430@item Line 4
2431enables the macro @samp{\smaller} which can be very useful in text
2432labels.  It reduces the current font size.  For example I can say
2433
2434@example
2435set_label_text LEO 32 "\\smaller Regulus"
2436@end example
2437
2438@item Lines 5--9
2439test whether the font Myriad is available on the current computer, and
2440if it does, it makes it the new standard sans-serif font.  Else it uses
2441Helvetica for that.
2442
2443@item Lines 10--14
2444re-defines various @LaTeX{} hooks in order to have nicer looking
2445automatic labels, see @ref{LaTeX hooks}.
2446
2447@item Line 15
2448switches to sans-serif font (Myriad/Helvetica) with @samp{\sffamily} and
2449to bold Greek letters with @samp{\boldmath}.
2450
2451@end table
2452
2453Please note that you have to delete the file @file{labeldimens.dat} in
2454the current directory if you have changes the font setup with a new own
2455@LaTeX{} preamble.  This forces @PPTHREE{} to recalculate the dimensions
2456of all labels -- and since the fonts have changed, this is necessary.
2457
2458
2459@node LaTeX hooks
2460@section @LaTeX{} hooks
2461@cindex @LaTeX{} hooks
2462@cindex hooks, @LaTeX{}
2463
2464First of all -- what is a hook?  A hook in general is a macro or command
2465that can be re-defined by the user, and that is called implicitly.
2466Thus, by re-defining a hook, the user can modify the behaviour of the
2467program at certain points.
2468
2469In @PPTHREE{}, hooks are called for printing text of various kinds.  For
2470example, every implicit (i.@s{}e.@: automatically generated) star name
2471is printed by @samp{\Starname} as in @samp{\Starname@{$\gamma$@}}.  By
2472default, this macro does nothing more than printing its argument:
2473
2474@example
2475\newcommand*@{\Starname@}[1]@{#1@}
2476@end example
2477
2478@noindent
2479But if you re-define it, you can make every (implicit!)@: star label a
2480little bit larger:
2481
2482@example
2483\renewcommand*@{\Starname@}[1]@{\larger #1@}
2484@end example
2485
2486@noindent
2487Notice that the macro @samp{\larger} is provided by the `relsize'
2488package that must be loaded before, see @ref{User preamble}.  So, just
2489write the lines
2490
2491@example
2492\usepackage@{relsize@}
2493\renewcommand*@{\Starname@}[1]@{\larger #1@}
2494@end example
2495
2496@noindent
2497in the file @file{mypreamble.tex}, say
2498
2499@example
2500set latex_preamble mypreamble.tex
2501@end example
2502
2503@noindent
2504in the @PPTHREE{} input script, and voil@`a -- all star labels are
2505larger.
2506
2507@sp 1
2508
2509@PPTHREE{} knows nine hard-wired @LaTeX{} hooks:
2510
2511@table @samp
2512@item \Label
2513@cindex Label (@LaTeX{} hook)
2514Argument: the label text.  It applies to all labels, @emph{before} any
2515specific hook of the following is applied.
2516
2517@item \TextLabel
2518@cindex TextLabel (@LaTeX{} hook)
2519Argument: the label text.  It applies to all labels that the user
2520creates with @samp{text}.
2521
2522@item \FlexLabel
2523@cindex FlexLabel (@LaTeX{} hook)
2524Argument: the label text.  It applies to all flexes.
2525
2526@item \Starname
2527@cindex Starname (@LaTeX{} hook)
2528Argument: the star name.  It applies to all automatically generated star
2529names, in particular @emph{not} to user-defined names given by
2530@samp{set_label_text}.
2531
2532@item \Messier
2533@itemx \NGC
2534@itemx \IC
2535@cindex Messier (@LaTeX{} hook)
2536@cindex @acronym{NGC} (@LaTeX{} hook)
2537@cindex @acronym{IC} (@LaTeX{} hook)
2538Argument: the respective catalogue number.  This generates the labels
2539for nebulae.  Notice that you must provide the catalogue name, or you
2540can leave it as well.  For example, many people prefer @acronym{NGC}
2541numbers as plain numbers without an `NGC' before it.  You achieve this
2542effect with
2543
2544@example
2545\renewcommand*@{\NGC@}[1]@{#1@}
2546@end example
2547
2548@item \TicMark
2549@cindex TicMark (@LaTeX{} hook)
2550Argument: the tic mark label text.  It applies to all tic mark labels,
2551see @ref{Tic labels}.
2552
2553@item \DP
2554@cindex DP (@LaTeX{} hook)
2555@cindex decimal point (DP, @LaTeX{} hook)
2556@cindex point, decimal (DP, @LaTeX{} hook)
2557No argument.  This generates the decimal point.  By default, it's a `.',
2558however in many countries a `,' is used instead.  You get this with
2559
2560@example
2561\renewcommand@{\DP@}@{,@}
2562@end example
2563
2564@end table
2565
2566
2567@node Known problems
2568@appendix Known problems
2569@cindex bugs
2570
2571The following issues are known to the maintainer of @PPTHREE{}.  If you
2572find another one, please report it on
2573@uref{http://sourceforge.net/projects/pp3,@PPTHREE{}'s project page}.
2574
2575@itemize
2576@item
2577Unknown stars in constellation line data files (the default is the file
2578@file{lines.dat}) result in an error message, which is good, but the
2579error message may include another -- probably valid -- star name, which
2580is bad.  Fortunately the actually wrong star and the printed star are
2581within the same constellation line, the printed star coming first.
2582
2583@item
2584The usage of semicolons in @PPTHREE{} input scripts is not
2585consistent. For example, a `@code{reposition}' needs one, but a
2586`@code{set_label_text}' not.
2587
2588@cindex Milky Way
2589
2590@item
2591If you print a large portion of the sky, e.@s{}g.@: a hemisphere, and a
2592pole-near region of the Milky Way (e.@s{}g.@tie{}Southern Cross) is at
2593the very rim of the map, the Milky Way dots are printed a little bit too
2594coarsely, leaving tiny gaps between the dots.
2595
2596@item
2597The declination circles have slight kinks at 0@dmn{h} rectascension.
2598Except for the @math{\pm 80^\circ} circles they are mostly invisible
2599though.
2600
2601@kwindex ecliptic
2602@kwindex grid
2603@kwindex coordinate grid
2604@kwindex penalty scheme
2605
2606@item
2607Ecliptic and grid don't take part in @PPTHREE{}'s penalty scheme yet.
2608
2609@cindex Small Magellanic Cloud
2610
2611@item
2612Large nebulae are drawn as ellipses representing their approximative
2613shape in the sky.  However, the algorithm doing that is mathematically
2614flawed and doesn't work for polar-near regions.  Fortunately this only
2615affects the Small Magellanic Cloud, the actual shape of which is, by a
2616curious coincidence, rendered very well by that algorithm.
2617@end itemize
2618
2619
2620@menu
2621* Wishlist::                    PP3's todo list.  Feel free to contribute!
2622@end menu
2623
2624
2625@node Wishlist
2626@section Wishlist
2627@cindex wishlist
2628
2629It would be nice to have the following things in @PPTHREE{}.  Please
2630contact @uref{mailto:bronger@@users.sourceforge.net,Torsten Bronger} if
2631you want to contribute.
2632
2633@itemize
2634@item
2635Very faint stars, i.@s{}e.@: stars fainter than
2636@samp{faintest_star_disk_magnitude}, should be removed from the map
2637automatically, if they overlap with a label.  It shouldn't matter
2638whether the label was implicitly created or user-defined.
2639
2640@item
2641An ephemerides module that allows to insert the Sun, the Moon, and the
2642planets on the map, for a given date, time, and observation location on
2643Earth.  By the way, the C++ module itself is already existing, but its
2644integration into @PPTHREE{} is not done yet.
2645
2646@item
2647More map projections, in particular a real isogonal one.
2648
2649@item
2650The resolution of the Milky Way should be determined in a way that
2651@TeX{}'s memory doesn't overflow.  Maybe one should switch to contour
2652plots instead of dot patterns for the Milky Way.
2653
2654@item
2655Create little bitmaps of all labels in order to determine kerning
2656parameters for them.
2657
2658@item
2659@PPTHREE{} should become able to deal with large data bases.
2660
2661@item
2662The
2663@uref{http://cvs.sourceforge.net/viewcvs.py/celestia/celestia/data/starnames.dat,
2664star names list of Celestia} or something like that should be used for
2665identifying stars in input scripts.
2666@end itemize
2667
2668Besides that, I'd like to re-structure the internals of @PPTHREE{}
2669because in some respect the code is not well maintainable and
2670expandable.  For the long-term future it may be worth thinking about
2671using Guile as the scripting language.
2672
2673
2674@node Data file formats
2675@appendix Data file formats
2676@cindex data file formats
2677@cindex file formats
2678@cindex formats of data files
2679
2680Maybe you want to use your own data bases with @PPTHREE{}.  If they are
2681not too large@footnote{Unfortunately @PPTHREE{} still has the
2682disadvantageous behaviour of reading the @emph{whole} data base file.}
2683you may well do so.  Of course, then you need to know the internal
2684structure of the files.  Although they are so simple that reverse
2685engineering should be almost trivial, you find here a complete
2686description of all of them.
2687
2688Additionally I will give information where the original data of
2689@PPTHREE{}'s standard distribution came from.
2690
2691The last point, the ``label dimensions file'', isn't a real data base
2692file, but an internal temporary file.  It is mentioned here just for
2693completeness.
2694
2695@menu
2696* Stars data file::             The stars database.
2697* Nebulae data file::           Galaxies, dust clouds, and such.
2698* Lines data file::             The purely subjective constellation
2699                                  lines.
2700* Boundaries data file::        The boundaries between constellations.
2701* Milky Way data file::         The Milky Way brightness bitmap.
2702* Label dimensions file::       Typographic dimensions of all labels.
2703@end menu
2704
2705
2706@node Stars data file
2707@section Stars data file
2708
2709This is a text file usually called @file{stars.dat}.  Four consecutive
2710lines belong together and refer to one particular star.  There is no
2711header.
2712
2713@table @asis
2714@item Line 1
2715A row with seven fields separated by whitespace:
2716
2717@enumerate
2718@item
2719Henry Draper Catalogue number (`@code{0}' if unknown),
2720
2721@item
2722BSC catalogue number (`@code{0}' if unknown),
2723
2724@item
2725rectascension in hours,
2726
2727@item
2728declination in degrees,
2729
2730@item
2731visual brightness in magnitudes,
2732
2733@item
2734B@minus{}V brightness in magnitudes (`@code{99.0}' if unknown), and
2735
2736@item
2737Flamsteed number (`@code{0}' if unknown).
2738
2739@end enumerate
2740
2741@item Line 2
2742The label (astronomical name) for the star, as a @LaTeX{}-ready string,
2743e.@s{}g.@: ``@code{$\alpha$}'', ``@code{$\phi^@{2@}$}'', or simply
2744``@code{$23$}''.  May be the empty string.
2745
2746@item Line 3
2747The astronomical abbreviation of the constellation.  It must be all
2748uppercase.
2749
2750@item Line 4
2751The spectral class.  It must start with the spectral class letter,
2752followed by the fraction digit, followed by the luminosity class as a
2753Roman number, e.@s{}g.@: ``@code{F5III}''.  Anything may follow as in
2754``@code{K2-IIICa-1}'', however the mandatory parts must not contain any
2755whitespace.
2756
2757@end table
2758
2759@subheading Example
2760
2761@smallexample
2762358 15 0.139805 29.0906 2.06 -0.11 21
2763$\alpha$
2764AND
2765B8IVpMnHg
276611636 553 1.91067 20.8081 2.64 0.13 6
2767$\beta$
2768ARI
2769A5V
2770886 39 0.220611 15.1836 2.83 -0.23 88
2771$\gamma$
2772PEG
2773B2IV
2774@end smallexample
2775
2776
2777@subheading PP3's star data origin
2778@cindex @acronym{BSC}
2779@cindex Cartes du Ciel
2780
2781It's the Bright Stars Catalogue (@acronym{BSC}) as distributed with the
2782program @uref{http://www.stargazing.net/astropc/,Cartes du Ciel}.  It
2783contains almost 10,000@tie{}stars.  I corrected minor mistakes and let
2784all double stars collapse, i.@s{}e.@: their visual brightnesses were
2785summed up and the respective minor partner was removed from the file.
2786
2787
2788@node Nebulae data file
2789@section Nebulae data file
2790
2791This is a text file usually called @file{nebulae.dat}.  There is no
2792header.  The file is just a whitespace separated stream of numbers and
2793constellation abbreviations.  In order to make it more readable though,
2794the standard @PPTHREE{} nebulae file has every nebula on one single line
2795of its own.
2796
2797Each dataset has the following eleven fields:
2798
2799@enumerate
2800@item
2801@acronym{NGC} catalogue number (`@code{0}' if not listed there),
2802
2803@item
2804@acronym{IC} catalogue number (`@code{0}' if not listed there),
2805
2806@item
2807Messier Catalogue number (`@code{0}' if not listed there),
2808
2809@item
2810The astronomical abbreviation of the constellation.  It must be all
2811uppercase.
2812
2813@item
2814rectascension in hours,
2815
2816@item
2817declination in degrees,
2818
2819@item
2820visual brightness in magnitudes,
2821
2822@item
2823large diameter in degree minutes,
2824
2825@item
2826small diameter in degree minutes (must be equal to the large diameter if
2827unknown),
2828
2829@item
2830the horizontal angle if the large diameter in degrees (`@code{720.0}' if
2831unknown), and
2832
2833@item
2834the type of the nebula: 0:@tie{}unknown, 1:@tie{}galaxy,
28352:@tie{}emission nebula, 3:@tie{}reflection nebula, 4:@tie{}open star
2836cluster, and 5:@tie{}globular star cluster.
2837
2838@end enumerate
2839
2840@subheading Example
2841
2842@smallexample
28431 0 0 PEG 0.121083 27.7089 13.6 0.0283333 0.02 -30 1
28442 0 0 PEG 0.121417 27.6786 15 0.0166667 0.01 -22 1
28453 0 0 PSC 0.121333 8.30139 14.4 0.0183333 0.01 -21 1
28464 0 0 PSC 0.123472 8.37389 16.9 0.01 0.005 55 1
28475 0 0 AND 0.130222 35.3628 14.8 0.02 0.0116667 -25 1
28486 0 0 AND 0.159056 33.3089 14.1 0.0283333 0.0266667 -50 1
2849
28501976 0 42 ORI 5.58808 -5.39028 4 1.08333 1 720 2
28513034 0 82 UMA 9.93167 69.6831 9.2 0.186667 0.0716667 25 1
28527000 0 0 CYG 20.9806 44.5167 4 2 1.66667 720 2
2853@end smallexample
2854
2855@subheading PP3's nebulae data origin
2856@cindex Steinicke, Wolfgang
2857
2858It's the @acronym{NGC}/@acronym{IC} catalogues as compiled by
2859@uref{http://www.ngcic.com/steinicke/,Wolfgang Steinicke}.
2860
2861
2862@node Lines data file
2863@section Constellation lines data file
2864@cindex lines between stars
2865@cindex constellation lines
2866
2867This is a text file usually called @file{lines.dat}.  It has no header.
2868You can define paths of constellation lines by lists of stars that are
2869ended with a semicolon@tie{}`@code{;}'.  You can insert superfluous
2870whitespace as you wish, and comments after every@tie{}`@code{#}'.
2871
2872Stars are given in the usual way: Either by a pair of constellation
2873abbreviation and Flamsteed number, as in
2874
2875@example
2876ORI 19
2877@end example
2878
2879@noindent
2880(Rigel), or by `@code{HD}' and the Henry Draper catalogue number, as in
2881
2882@example
2883HD 108248
2884@end example
2885
2886@noindent
2887(Acrux).
2888
2889@subheading Example
2890
2891@smallexample
2892# Orion
2893
2894ORI 19  ORI 34  ORI 24 ;
2895ORI 53  ORI 50  ORI 46  ORI 34 ;
2896ORI 50  ORI 58 ;
2897
2898# Southern Cross
2899
2900HD 111123  # beta Cru
2901HD 106490 ; # delta Cru
2902
2903HD 108248  # alpha Cur
2904HD 108903 ;  # gamma Cru
2905@end smallexample
2906
2907@subheading PP3's constellation lines origin
2908@cindex Karkoschka, Erich
2909@cindex Atlas f@"ur Himmelsbeobachter
2910
2911I created the lines after my fancy.  The @cite{Atlas f@"ur
2912Himmelsbeobachter}@footnote{by Erich Karkoschka, in German;
2913@acronym{ISBN}@tie{}3440074889} was an important source of inspiration
2914though.
2915
2916
2917@node Boundaries data file
2918@section Boundaries data file
2919
2920It doesn't make much sense to use an own boundaries file, unless you
2921want to use a different equinox, but anyway.  This is a text file
2922usually called @file{boundaries.dat}.  It has no header.
2923
2924The file is a sequence of elementary line segments.  Every segment is a
2925whitespace separated sequence of entries.  The entries for each segment
2926are:
2927
2928@enumerate
2929@item
2930Number of points @math{n_1} in the segment.
2931
2932@item
2933Repeated @math{n_1} times:
2934
2935@enumerate
2936@item
2937rectascension of point in hours,
2938@item
2939declination of point in
2940degrees.
2941@end enumerate
2942
2943@item
2944Number of constellations @math{n_2} touching this border line (is
2945always@tie{}2, however it hasn't always been due to flawed raw data).
2946
2947@item
2948Repeated @math{n_2} times: All uppercase astronomical abbreviation of
2949the adjacent constellation. It may distinguish between @code{SER1} and
2950@code{SER2} for Serpens Caput and Serpens Cauda.
2951
2952@end enumerate
2953
2954@subheading Example
2955
2956@smallexample
29573 20.63865 2.43608 20.63929 1.43613 20.63992 0.43617 2 AQL AQR
295810 20.63992 0.43617 20.64055 -0.56377 20.64118 -1.56373
2959  20.64181 -2.56368 20.64245 -3.56364 20.64308 -4.56359 20.64372 -5.56355
2960  20.64435 -6.56350 20.64500 -7.56346 20.64564 -8.56341 2 AQL AQR
29619 17.71838 -67.57110 17.65152 -67.58319 17.58465 -67.59526
2962  17.51772 -67.60731 17.45076 -67.61933 17.38378 -67.63130 17.31676 -67.64324
2963  17.24970 -67.65515 17.21616 -67.66108 2 ARA APS
2964@end smallexample
2965
2966@subheading PP3's boundary data origin
2967
2968It's the @uref{ftp://cdsarc.u-strasbg.fr/cats/VI/49/,Catalogue of
2969Constellation Boundary Data} by Davenhall and Leggett.  I had to fix
2970some bugs though, because the Ophiuchus/Serpens region was flawed.
2971Additionally, the original data has peculiarities because it tries to be
2972useful for bounded maps, e.@s{}g.@: in Mercator projection.  I removed
2973the resulting spurious lines.
2974
2975
2976@node Milky Way data file
2977@section Milky Way data file
2978@cindex Milky Way
2979
2980This is a text file usually called @file{milkyway.dat}.
2981
2982Its header is extremely simple: It consists of only one number which is
2983the maximal (=@tie{}equatorial) diagonal half distance of two pixels in
2984degrees. This value is used as the radius for the milky way pixels.  Of
2985course it must be the minimal radius for which there are no gaps between
2986the pixels.
2987
2988What follows are the Milky Way pixels themselves.  Each consists of tree
2989entries, separated by white space:
2990
2991@enumerate
2992@item
2993The rectascension in hours,
2994
2995@item
2996the declination in degrees, and
2997
2998@item
2999the grey value of the pixel from 1@tie{}to@tie{}255.  Zero is not used
3000because zero-value pixels are not included into the data file anyway.
3001@end enumerate
3002
3003
3004@subheading Example
3005
3006@smallexample
30070.212
300811.885 0.259 1
300911.962 0.295 5
301011.974 0.298 5
3011
301217.982 -26.999 136
301317.982 -27.299 158
301417.982 -27.599 169
301517.982 -27.899 199
301617.981 -28.199 235
3017@end smallexample
3018
3019
3020@subheading PP3's boundary data origin
3021@cindex Mellinger, Axel
3022
3023I used the
3024@uref{http://home.arcor-online.de/axel.mellinger/,@emph{All-Sky Milky
3025Way Panorama}} by Axel Mellinger.  His bitmap with the two hemispheres
3026in equidistant azimuthal projection was greyscaled and smoothed with the
3027Gimp, and then transformed to @PPTHREE{}'s format with a small
3028hand-written C program.
3029
3030
3031@node Label dimensions file
3032@section Label dimensions file
3033@cindex label dimensions
3034
3035The default name of this file is @file{labeldimens.dat}.  This file is
3036never user provided but generated by @PPTHREE{} itself in order to store
3037typographic dimensions of all labels.  Highly probably you needn't know
3038its structure.
3039
3040Every labels has two lines in the file:
3041
3042@table @asis
3043@item Line 1
3044The label itself in @LaTeX{} form.
3045
3046@item Line 2
3047The typographic width, height, and depth of the label in centimetres,
3048separated by whitespace.
3049
3050@end table
3051
3052@subheading Example
3053
3054@smallexample
3055$10$~\footnotesize UMa
30560.97106 0.23043 0.00253
3057$\omega$
30580.34197 0.17081 0.00000
305910 UMa
30601.11657 0.23389 0.00316
306147 Tuc
30620.94506 0.23389 0.00316
3063Pleiades
30641.20865 0.24777 0.00316
3065\FlexLabel@{Andromeda@}
30661.86061 0.25076 0.00316
3067\FlexLabel@{Antlia@}
30680.93945 0.25076 0.00316
3069@end smallexample
3070
3071
3072@node List of all constellations
3073@appendix List of all constellations
3074@cindex constellations
3075@cindex list of constellations
3076@cindex coordinates of constellations
3077
3078@table @asis
3079@item first column
3080Latin name
3081
3082@item second column
3083astronomical abbreviation, ready for being used -- in its all-uppercase
3084form -- with @samp{set constellation}
3085
3086@item third column
3087English name
3088
3089@item fifth column
3090rectascension of constellation centre, in hours, ready for being used
3091with @samp{center_rectascension}
3092
3093@item sixth column
3094declination of constellation centre, in degrees, ready for being used
3095with @samp{center_declination}
3096
3097@item last column
3098@iftex
3099recommended scale for a 9@dmn{cm}@tie{}@math{\times}@tie{}9@dmn{cm} map,
3100in degrees per centimetre, ready for being used
3101with @samp{grad_per_cm}
3102@end iftex
3103@ifnottex
3104recommended scale for a 9@dmn{cm}@tie{}x@tie{}9@dmn{cm} map,
3105in degrees per centimetre, ready for being used
3106with @samp{grad_per_cm}
3107@end ifnottex
3108
3109@end table
3110
3111
3112The values are taken from the input scripts used for the Wikipedia
3113Project, see @ref{Successful use of PP3}.
3114
3115@sp 2
3116
3117@multitable {Triangulum Australe} {MMM} {Water Serpent (male)} {88.88} {@minus{}88.8} {88.8}
3118@item @emph{Latin} @tab @emph{ab.} @tab @emph{English}
3119      @tab @emph{rec.} @tab @emph{dec.} @tab @emph{sc.}
3120@item Andromeda @tab And @tab Andromeda                    @tab 1 @tab @math{+}38 @tab 4
3121@item Antlia @tab Ant @tab Air Pump                        @tab 10.2 @tab @minus{}35 @tab 3
3122@item Apus @tab Aps @tab Bird of Paradise                  @tab 16 @tab @minus{}75 @tab 3
3123@item Aquarius @tab Aqr @tab Water Carrier                 @tab 22.3 @tab @minus{}8 @tab 6
3124@item Aquila @tab Aql @tab Eagle                           @tab 19.7 @tab @math{+}3 @tab 4
3125@item Ara @tab Ara @tab Altar                              @tab 17.5 @tab @minus{}53 @tab 4
3126@item Aries @tab Ari @tab Ram                              @tab 2.8 @tab @math{+}18.8 @tab 4
3127@item Auriga @tab Aur @tab Charioteer                      @tab 5.6 @tab @math{+}38 @tab 4
3128@item Bo@"otes @tab Boo @tab Herdsman                      @tab 14.7 @tab @math{+}34 @tab 4
3129@item Caelum @tab Cae @tab Chisel                          @tab 4.8 @tab @minus{}38 @tab 3
3130@item Camelopardalis @tab Cam @tab Giraffe                 @tab 5.5 @tab @math{+}75 @tab 5
3131@item Cancer @tab Cnc @tab Crab                            @tab 8.7 @tab @math{+}20 @tab 4
3132@item Canes Venatici @tab CVn @tab Hunting Dogs            @tab 13 @tab @math{+}40 @tab 4
3133@item Canis Major @tab CMa @tab Big Dog                    @tab 6.5 @tab @minus{}20 @tab 4
3134@item Canis Minor @tab CMi @tab Little Dog                 @tab 7.5 @tab @math{+}12 @tab 4
3135@item Capricornus @tab Cap @tab Goat                       @tab 21 @tab @minus{}16 @tab 4
3136@item Carina @tab Car @tab Keel                            @tab 8.5 @tab @minus{}64 @tab 5
3137@item Cassiopeia @tab Cas @tab Cassiopeia                  @tab 0.5 @tab @math{+}60.5 @tab 4
3138@item Centaurus @tab Cen @tab Centaur                      @tab 13.6 @tab @minus{}45 @tab 5
3139@item Cepheus @tab Cep @tab Cepheus                        @tab 23 @tab @math{+}75 @tab 4
3140@item Cetus @tab Cet @tab Whale                            @tab 1.7 @tab @minus{}7 @tab 6
3141@item Chamaeleon @tab Cha @tab Chameleon                   @tab 11 @tab @minus{}79 @tab 4
3142@item Circinus @tab Cir @tab Compasses                     @tab 14.8 @tab @minus{}62 @tab 4
3143@item Columba @tab Col @tab Dove                           @tab 5.8 @tab @minus{}35 @tab 4
3144@item Coma Berenices @tab Com @tab Berenice's Hair         @tab 12.4 @tab @math{+}22.5 @tab 4
3145@item Corona Australis @tab CrA @tab Southern Crown        @tab 18.6 @tab @minus{}42 @tab 3
3146@item Corona Borealis @tab CrB @tab Northern Crown         @tab 15.8 @tab @math{+}33 @tab 4
3147@item Corvus @tab Crv @tab Crow                            @tab 12.4 @tab @minus{}18 @tab 4
3148@item Crater @tab Crt @tab Cup                             @tab 11.4 @tab @minus{}16 @tab 4
3149@item Crux @tab Cru @tab Southern Cross                    @tab 13.2 @tab @minus{}60.8 @tab 4
3150@item Cygnus @tab Cyg @tab Swan                            @tab 19.95 @tab @math{+}40.8 @tab 5
3151@item Delphinus @tab Del @tab Dolphin                      @tab 20.5 @tab @math{+}12 @tab 3
3152@item Dorado @tab Dor @tab Goldfish                        @tab 5.1 @tab @minus{}60 @tab 4
3153@item Draco @tab Dra @tab Dragon                           @tab 16.5 @tab @math{+}72 @tab 5
3154@item Equuleus @tab Equ @tab Little Horse                  @tab 21.2 @tab @math{+}8 @tab 3
3155@item Eridanus @tab Eri @tab River                         @tab 3.8 @tab @minus{}30 @tab 6
3156@item Fornax @tab For @tab Furnace                         @tab 2.7 @tab @minus{}32 @tab 4
3157@item Gemini @tab Gem @tab Twins                           @tab 7 @tab @math{+}20 @tab 4
3158@item Grus @tab Gru @tab Crane                             @tab 22.5 @tab @minus{}44 @tab 4
3159@item Hercules @tab Her @tab Hercules                      @tab 17.55 @tab @math{+}30 @tab 5
3160@item Horologium @tab Hor @tab Clock                       @tab 3.3 @tab @minus{}53 @tab 4
3161@item Hydra @tab Hya @tab Hydra (Sea Serpent)              @tab 11.15 @tab @minus{}15 @tab 10
3162@item Hydrus @tab Hyi @tab Water Serpent (male)            @tab 2.5 @tab @minus{}70 @tab 4
3163@item Indus @tab Ind @tab Indian                           @tab 21.5 @tab @minus{}60 @tab 4
3164@item Lacerta @tab Lac @tab Lizard                         @tab 22.5 @tab @math{+}46 @tab 4
3165@item Leo @tab Leo @tab Lion                               @tab 10.8 @tab @math{+}20 @tab 4
3166@item Leo Minor @tab LMi @tab Smaller Lion                 @tab 10.3 @tab @math{+}32 @tab 4
3167@item Lepus @tab Lep @tab Hare                             @tab 5.6 @tab @minus{}18 @tab 4
3168@item Libra @tab Lib @tab Balance                          @tab 15.2 @tab @minus{}17 @tab 4
3169@item Lupus @tab Lup @tab Wolf                             @tab 15.3 @tab @minus{}41 @tab 4
3170@item Lynx @tab Lyn @tab Lynx                              @tab 8.2 @tab @math{+}47 @tab 4
3171@item Lyra @tab Lyr @tab Lyre                              @tab 18.8 @tab @math{+}37 @tab 3
3172@item Mensa @tab Men @tab Table                            @tab 5.7 @tab @minus{}77 @tab 4
3173@item Microscopium @tab Mic @tab Microscope                @tab 21.15 @tab @minus{}37 @tab 3
3174@item Monoceros @tab Mon @tab Unicorn                      @tab 6.7 @tab @minus{}3.5 @tab 4
3175@item Musca @tab Mus @tab Fly                              @tab 12.6 @tab @minus{}70 @tab 4
3176@item Norma @tab Nor @tab Square                           @tab 16 @tab @minus{}50 @tab 4
3177@item Octans @tab Oct @tab Octant                          @tab 22 @tab @minus{}85 @tab 4
3178@item Ophiucus @tab Oph @tab Serpent Holder                @tab 17.3 @tab @minus{}9 @tab 6
3179@item Orion @tab Ori @tab Orion                            @tab 5.8 @tab @math{+}0 @tab 4
3180@item Pavo @tab Pav @tab Peacock                           @tab 19.5 @tab @minus{}67 @tab 4
3181@item Pegasus @tab Peg @tab Winged Horse                   @tab 22.7 @tab @math{+}20 @tab 6
3182@item Perseus @tab Per @tab Perseus                        @tab 3.6 @tab @math{+}47 @tab 4
3183@item Phoenix @tab Phe @tab Phoenix                        @tab 0.7 @tab @minus{}49 @tab 5
3184@item Pictor @tab Pic @tab Easel                           @tab 5.6 @tab @minus{}54 @tab 4
3185@item Pisces @tab Psc @tab Fishes                          @tab 0.5 @tab @math{+}14 @tab 6
3186@item Pisces Austrinus @tab PsA @tab Southern Fish         @tab 22.3 @tab @minus{}31 @tab 4
3187@item Puppis @tab Pup @tab Stern                           @tab 7.6 @tab @minus{}31 @tab 4
3188@item Pyxis @tab Pyx @tab Compass                          @tab 8.95 @tab @minus{}30 @tab 4
3189@item Reticulum @tab Ret @tab Reticle                      @tab 3.9 @tab @minus{}60 @tab 3
3190@item Sagitta @tab Sge @tab Arrow                          @tab 19.6 @tab @math{+}15 @tab 4
3191@item Sagittarius @tab Sgr @tab Archer                     @tab 18.5 @tab @minus{}27 @tab 4
3192@item Scorpius @tab Sco @tab Scorpion                      @tab 16.8 @tab @minus{}30 @tab 4
3193@item Sculptor @tab Scl @tab Sculptor                      @tab 0.5 @tab @minus{}32 @tab 5
3194@item Scutum @tab Sct @tab Shield                          @tab 18.7 @tab @minus{}10 @tab 3
3195@item Serpens @tab Ser @tab Serpent                        @tab 17.1 @tab @math{+}2 @tab 6.5
3196@item Sextans @tab Sex @tab Sextant                        @tab 10.2 @tab @minus{}1 @tab 4
3197@item Taurus @tab Tau @tab Bull                            @tab 4.6 @tab @math{+}18 @tab 4
3198@item Telescopium @tab Tel @tab Telescope                  @tab 19.3 @tab @minus{}52 @tab 4
3199@item Triangulum @tab Tri @tab Triangle                    @tab 2.2 @tab @math{+}33 @tab 4
3200@item Triangulum Australe @tab TrA @tab Southern Triangle  @tab 16 @tab @minus{}65 @tab 3
3201@item Tucana @tab Tuc @tab Toucan                          @tab 23.7 @tab @minus{}67 @tab 4
3202@item Ursa Major @tab UMa @tab Great Bear                  @tab 11.5 @tab @math{+}55 @tab 6
3203@item Ursa Minor @tab UMi @tab Little Bear                 @tab 15 @tab @math{+}78 @tab 4
3204@item Vela @tab Vel @tab Sails                             @tab 9.6 @tab @minus{}48 @tab 4
3205@item Virgo @tab Vir @tab Virgin                           @tab 13 @tab @math{+}3 @tab 5
3206@item Volans @tab Vol @tab Flying Fish                     @tab 7.8 @tab @minus{}70 @tab 4
3207@item Vulpecula @tab Vul @tab Fox                          @tab 20.2 @tab @math{+}25 @tab 4
3208@end multitable
3209
3210
3211@node Index
3212@unnumbered Index
3213
3214@iftex
3215All @PPTHREE{} keywords are printed in @t{typewriter} style.
3216@end iftex
3217
3218@printindex cp
3219
3220@bye
3221
3222
3223@c  LocalWords:  texinfo def rmdefault ppl mathrel mskip pstexinfo texi bronger
3224@c  LocalWords:  Exp PPTHREE tex hbox vbox sevenrm vss ifnottex vskip filll EPS
3225@c  LocalWords:  leavevmode dircategory direntry iftex logue logues pstricks
3226@c  LocalWords:  PDF Rectascension PDFs emph uref noindent rectascension dmn
3227@c  LocalWords:  circ Ori UMa Hyi Cauda NGC Celestia itemize var Mik GSView SVG
3228@c  LocalWords:  exe env rpm dat pdf Corel pxref asis BSC IIICa IVpMnHg eps not
3229@c  LocalWords:  ARI Cartes Ciel PSC CYG Steinicke Himmelsbeobachter AQL AQR
3230@c  LocalWords:  Davenhall Leggett otnotesize Tuc FlexLabel Acrux Messier's cnf
3231@c  LocalWords:  cindex kwindex byfmt ini flexes xref ifinfo ifnotinfo tics Cyg
3232@c  LocalWords:  deffn deffnx ifhtml todo xmarksthespot miktex Cnc hskip psdots
3233@c  LocalWords:  leo nofiles pst TicMark TextLabel AtBeginDocument mypreamble
3234@c  LocalWords:  IfFileExists eulervm pmy phv riptsize mdseries atid betelg MMM
3235@c  LocalWords:  PSTricks AMSMath aller Australe dec Aps Aqr Aql Ari Aur Cae
3236@c  LocalWords:  Camelopardalis Venatici CVn CMa CMi Cas Cen Cet Cha Cir CrA
3237@c  LocalWords:  CrB Crv Crt Dra Equ Eri Gru Hor Hya Lac LMi Lep Lup Lyn Lyr
3238@c  LocalWords:  Mic Mus Oph Phe Psc Austrinus PsA Sge Sgr Sco Scl Sct TrA UMi
3239@c  LocalWords:  Vel Vir Vul wiki voil itemx otes
3240