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